MySQL-Ubuntu20.04安装MySQL8.0以及远程连接

本文最后更新于:September 12, 2022 pm

积土成山,风雨兴焉;积水成渊,蛟龙生焉;积善成德,而神明自得,圣心备焉。故不积跬步,无以至千里,不积小流无以成江海。齐骥一跃,不能十步,驽马十驾,功不在舍。面对悬崖峭壁,一百年也看不出一条裂缝来,但用斧凿,能进一寸进一寸,能进一尺进一尺,不断积累,飞跃必来,突破随之。

目录

安装MySQL

1
sudo apt install mysql-server

初始化

1
sudo mysql_secure_installation

设置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Enter current password for root (enter for none):<–初次运行直接回车

Set root password? [Y/n] <– 是否设置root用户密码,输入y并回车或直接回车

New password: <– 设置root用户的密码

Re-enter new password: <– 再输入一次你设置的密码

Remove anonymous users? [Y/n] <– 是否删除匿名用户,回车

Disallow root login remotely? [Y/n] <–是否禁止root远程登录,回车

Remove test database and access to it? [Y/n] <– 是否删除test数据库,回车

Reload privilege tables now? [Y/n] <– 是否重新加载权限表,回车

📢注意:如果在输入密码时报错: … Failed! Error: SET PASSWORD has no significance for user ‘root’@’localhost’ as the authenticati。则先退出不管,继续往后执行。当执行当修改root用户密码后,再返回回来继续执行初始化命令。

查看数据库状态

1
systemctl status mysql

进入数据库

阿里云:

1
mysql

腾讯云:

1
sudo mysql

如果出现:ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: NO)。表示需要使用上面设置的密码进入MySQL(初始化命令成功执行的前提下)。

两个提供商,进入数据库的另外一种方法

找到MySQL安装位置:

1
whereis mysql

ll查看所有文件,再进入

1
sudo cat /etc/mysql/debian.cnf

里面就有一个数据库账号的信息。包含用户名和密码,可以用他登录。 debian-sys-maint 账号是在安装MySQL自动产生的。可以使用它登录MySQL数据库。

查询root用户的状态

进入数据库mysql后,

1
select user,host from user; 

可以看到user为root,host为localhost的话,说明mysql只允许本机连接,那么外网,本地软件客户端就无法连接了。

设置

修改host:

1
update user set host='%' where user='root';

再连续执行两次一下命令 ,如果一次就可以成功,就不需要执行两次了。

1
Grant all privileges on test.* to 'root'@'%';

再次查看:

1
select user,host from user; 

给予root用户所有权限

1
GRANT ALL ON *.* TO 'root'@'%';

修改root用户密码及加密方式。(即需要用密码才能进入(连接)数据库)

1
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '你的密码';

再权限更新。

1
flush privileges;

设置配置文件

1
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

然后

1
2
修改bind-address = 127.0.0.1
为 bind-address = 0.0.0.0

或者将 bind-address 注释掉。

重启MySQL服务

1
sudo systemctl restart mysql.service