在Ubuntu系统上搭建MySQL的过程:
1、首先先将系统通过命令更新到最新,命令如下
sudo apt-get update
sudo apt-get upgrade
2、 执行命令行安装MySQL8
sudo apt-get install mysql-server
3、第一次进入需要用权限进入,可以跳过输入密码的过程,然后等进入MySQL以后通过命令修改
sudo mysql -uroot -p
4、进入MySQL以后,想通过命令去修改root账号的登录密码
alter user 'root'@'localhost' identified with mysql_native_password by '123456';
此时,发现该命令执行以后报错,通过对报错内容的翻译,会发现是因为MySQL安装数据初始的设置,设置的密码过于简单,此时,要么你将设置的密码改成符合他要求的规则
要么就是就是按照以下步骤进行:
a、通过命令查看校验密码的规则
show variables like 'validate_password%';
你会发现,展示的数据中,有两个对于修改密码比较重要,validate_password.policy和validate_password.length,其他的规则可以不用管,validate_password.policy应该展示是MEDIUM,validate_password.length是8,就是校验密码的规则是中等,并且密码的长度大于等于8
b、通过下面两个命令修改校验密码的策略和长度
修改校验密码策略:set global validate_password.policy = LOW;
修改校验密码长度:set global validate_password.length = 6;
修改完规则以后,执行修改密码的命令:
alter user 'root'@'localhost' identified with mysql_native_password by '123456';
PS:有的教程中说还需要通过命令刷新权限表,但是我没有执行,也不影响用户的登录,可能只是修改了root账号的密码,没有修改角色权限。
5、此时通过数据库可视化工具连接发现报错,”Connection refused: no further information“,因为服务器是自己搭建的,所以怀疑是3306端口没有开放
通过命令查询防火墙是否开启:sudo ufw status; (如果报系统中没有ufw命令,需要安装的话,可以通过命令sudo apt-get install ufw 安装防火墙)
发现状态是未激活
开启防火墙:sudo ufw enable(开启防火墙以后,一些默认的端口也会被关闭,如80、22等,需要通过命令将其开放)
开放3306端口:sudo ufw allow 3306
查看开放端口号:sudo ufw status
发现端口号已开启,继续通过DBeaver去连接数据库,发现仍然报错”Connection refused: no further information“,怀疑可能是数据库账号登陆权限问题
6、修改root账号允许任一主机登陆
-- 创建'root'@'%'账户
CREATE USER 'root'@'%' IDENTIFIED BY '123456';
-- 给'root'@'%'账户设置权限
GRANT ALL PRIVILEGES ON . TO 'root'@'%';
-- 刷新权限
flush privileges;
访问mysql数据库:use mysql;
执行 select host,name from user;发现host和name已经设置成功了
7、继续通过DBeaver去连接数据库,发现仍然报错”Connection refused: no further information“,此时进行百度发现,MySQL8以后默认不允许远程root登陆,所以可能需要通过修改MySQL8的配置文件,强制的允许非127.0.0.1主机调用
cd /etc/mysql/mysql.conf.d
sudo vim mysqld.conf (如果没有vim命令,可以通过命令去安装,sudo apt-get install vim)
找到bind-address,将原有的127.0.0.1改成0.0.0.0,即允许任一设备连接
然后重启MySQL8服务(没有尝试如果不重启会不会仍然不成功,但是习惯问题,一般修改配置以后重启服务)
service mysql restart
8、继续通过DBeaver去连接数据库,发现仍然报错”Public Key Retrieval is not allowed“(内心OS:终于!好了!),发现在该问题产生的原因是DBeaver的驱动属性设置问题,找到图中位置,该配置原先是false,改成true,然后测试连接,发现脸上了!!!!!!