Ubuntu Server 18 卸载MySQL5.*安装MySQL8.0,实现远程访问数据库

本文详细介绍了如何在Ubuntu18系统中卸载旧版MySQL并安装MySQL8.0,包括解决版本兼容问题,以及如何配置MySQL以允许远程访问,适合希望在Ubuntu环境下进行数据库管理的读者。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如果你在Ubuntu18直接用

sudo apt-get install mysql-client mysql-server

系统默认会安装MySQL会默认安装5.7,但是MySQL5.7版本最高只适配到Ubuntu17.04,而MySQL8.0最高适配到Ubuntu18.04。

强行安装5.7会有一堆的问题等着你处理,与其等着一个个坑出现然后花时间解决,不如卸载5.7安装8


一、卸载MySQL5.*

1.删除mysql程序

sudo apt-get remove mysql-*

2.清理残留的数据

dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P

它会跳出一个对话框,你选择yes就好了


二、安装MySQL8.0

1.更新文件

首先去 MySQL官网 下载一个文件

mysql-apt-config_0…***_all.deb
在这里插入图片描述

在文件夹中找到下载的具体文件(如果你的Ubuntu是虚拟机,则将这个文件上传到系统),并执行(下面的**是省略的意思,你自己要改)
sudo dpkg -i mysql-apt-config_0.*.****_all.deb

然后会出现一个紫色框界面。
它有四个选项。选择第一个,enter确定,
然后又会出现一个紫色框界面,选择8.0那个。enter确定,
会回到第一个紫色框,此时按上下键选择 ok,enter确定。

最后更新数据源
sudo apt-get update


2.安装MySQL

现在执行
sudo apt-get install mysql-server

安装过程中会询问,都选择yes
安装最后会出现紫色框,让你输入密码,输入完成之后,会再让你输入一遍。确定。
输入完成之后,会出现紫色框问你选择密码的加密方式。因为第一种加密方式Ubuntu不支持,所以我们选择第二个加密方式。enter确定。

此时启动MySQL:
service mysql start

进入MySQL:
mysql -uroot -p

最后附赠几个常用命令(最后三个很多教程都有提到,但是起码我写这篇文章这次,并没有正确生效,不过都有替代命令,所以就没有深究

命令说明
mysql -uroot -p启动MySQL服务
`sudo netstat -tapgrep mysql`
service mysql stop关闭MySQL服务
sudo /etc/init.d/mysql start启动服务
sudo /etc/init.d/mysql restart重启服务
sudo /etc/init.d/mysql stop关闭服务

三、授权远程访问

刚安装的MySQL只能在系统中本地访问,想用navicat等软件远程访问还需要授权账号远程访问。
作为学习用不考虑安全问题,你可以直接授权你的管理员账号远程访问。
如果考虑到安全问题,建议针对不同的数据库设置对应的远程访问账号,或者授权给指定的IP

1.简单授权

直接授权你的管理员账号(默认是root)远程访问:

update user set host = '%' where user ='root';
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '527653159';
FLUSH PRIVILEGES;

GRANT ALL ON 表示所有权限,% 表示通配所有 host,可以访问远程。

2.指定授权

下面是一个简单例子,授权用户test1admin远程访问数据库test1

2.1新建数据库

创建测试数据库test1:
create database test1;

2.2新建数据库用户

为数据库test1创建对应用户test1admin,密码123,
CREATE USER 'test1admin'@'%' IDENTIFIED BY '123';

下面是一些代码的说明:
CREATE USER 'username'@'host' IDENTIFIED BY 'password';

字段说明
username你将创建的用户名,
host指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost,,如果想让该用户可以从任意远程主机登陆,可以使用通配符%.
password该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器.
2.3授权用户

授权用户test1admin管理数据库testq1
GRANT ALL PRIVILEGES ON test1.* TO 'test1'@'%';

下面是一些代码示例
其中databaseNametableName都可以用通配符 *
host可以用指定IP或者localhost表示本地,**%**表示远程和本地

命令说明
GRANT ALL PRIVILEGES ON databaseName.tableName TO 'user'@'host';授权指定数据库给用户
GRANT SELECT, UPDATE ON databaseName.tableName TO 'user'@'host';授权指定数据库的select和update权限给用户
EVOKE ALL PRIVILEGES ON databaseName.tableName TO 'user'@'host';取消授权
2.4刷新权限

FLUSH PRIVILEGES;


本文一二步参考:https://blog.youkuaiyun.com/weixin_37946237/article/details/81634505
第一次使用markdown感谢:https://blog.youkuaiyun.com/tyyking/article/details/79682157

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值