首页  编辑  

Ubuntu 20安装mysql后初始化密码及mysql 8.0 root用户登录问题

Tags: /MySQL/   Date Created:
Ubuntu 20.04 用sudo apt install mysql-server 后的初始化和root登录问题
安装后,默认密码和维护账户在这里:
sudo cat /etc/mysql/debian.cnf
可以看到 debian-sys-maint 的账户和密码。此外,root用户在8.0里面,默认不允许远程登录,需要修改密码和允许远程登录:
sudo mysql
可以直接连接本机mysql,然后使用指令
mysql> set password for root@localhost = '你的密码';
即可修改密码。最后要允许远程登录:
mysql> grant all privileges on *.* to 'root'@'localhost' identified by 'root';
MySQL 8.0已经不支持下面这种命令写法
grant all privileges on *.* to root@"%" identified by ".";
如果上述指令不能其作用,请使用以下指令修改:
grant all privileges on *.* to 'root'@'localhost';
如果没有root用户,你必须先创建root用户:
CREATE USER 'root'@'%' IDENTIFIED BY 'Hadoop3!';
另外用sqlyog 连 mysql 8 时,报错:plugin caching_sha2_password could not be loaded
原因是mysql8 的加密方法变了。mysql8 开始默认采用caching_sha2_password的加密方式
第三方客户端基本都不支持这种加密方式,只有自带的命令行支持,所以需要修改加密方式,换成老的 mysql_native_password 方式:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'xxxx' PASSWORD EXPIRE NEVER;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'xxxx';
FLUSH PRIVILEGES;