在Ubuntu上安装mysql就比较简单了
1、常规操作,更新软件包列表
apt update
至少安装之前看一眼版本吧
apt list mysql-server
嗯,是8.0.35版本的
2、安装mysql
apt install mysql-server
3、给root用户设置密码
# 第一次安装完无需密码,让你输入密码的时候按回车就行了
sudo mysql -uroot
# 进入mysql之后修改root的密码
alter user 'root'@'localhost' identified with mysql_native_password by '你的密码';
# 退出mysql
exit
可以看到,修改完之后再次登录,就需要输入密码了
3、创建新用户登录
如果你觉得使用root用户远程登录不安全,可以创建一个新的用户用于远程登录
# 先使用root账号登录mysql,然后创建新用户user1
CREATE USER 'user1'@'%' IDENTIFIED BY '新用户的密码';
# 给user1授予所有ip都可以登录
GRANT ALL PRIVILEGES ON *.* TO 'user1'@'%';
# 刷新
FLUSH PRIVILEGES;
4、远程登录
上来给我报了一个61的错误,应该是限制了ip的原因,登上mysql查了一下,之前已经给新添加的用于授予了所有host都可以登录的权限了呀
只能去看mysql的配置了
vi /etc/mysql/mysql.conf.d/mysqld.cnf
果然,bind-address被限制成了本机,改成0.0.0.0就可以了
再次登录,还是报错,不过报错内容变了
搜了一下,找到了原因
问题原因:mysql8版本之前的加密规则是mysql_native_password
,在mysql8版本之后,加密规则更换成了caching_sha2_password
。而我刚才创建新用户的时候并没有指定使用什么加密规则,默认就使用caching_sha2_password了,如果指定使用native的加密规则,就不会报这个错了
解决办法:
1、把mysql用户登录密码加密规则还原成mysql_native_password
2、升级自己的链接工具,我这个是mac上的SequelPro,不好升级,所以我选1
先看一下现在用户密码的情况,果然新添加的用户用加密规则是caching_sha2_password
修改起来也简单
#修改加密规则
ALTER USER 'user1'@'%' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
#更新一下用户的密码
ALTER USER 'user1'@'%' IDENTIFIED WITH mysql_native_password BY '你的密码';
#刷新权限
FLUSH PRIVILEGES;
修改成功,测试可以登录了
PS:如果以上步骤都操作了还是不行,估计是ECS服务器的安全组策略限制了3306端口的输入,配置一下规则就可以了