装完 ubuntu 后,使用命令安装 mysql 时一般默认安装的都是最新版本也即 mysql 8.0.27 ;针对 mysql 8.0.27 用户名和密码修改,我反复操作,在网上也搜集了大量的资料,最终都是无功而返,挣扎了一下午,最终解决了问题;
之所以浪费一下午时间,主要是因为我没有弄清 mysql 版本和修改语法的关系,然后在网上一通搜索、胡乱尝试,最终也没能解决问题;
二者关系:安装的 mysql 版本不同,在修改用户名和密码时使用的语法语句也会有所差别;所以在使用 ubuntu 命令安装好 mysql 后记得查看其版本;所以说解决问题还是要抓住问题的本质;
参考文章:mysql出现ERROR1698(28000):Access denied for user root@localhost错误解决方法 - 丹华抱一鷇音子 - 博客园
MySQL 彻底卸载:CSDN
下面针对 Ubuntu 20.04 + mysql 8.0.27 用户名和密码修改 整理出了一套教程:
1、安装服务器端;
sudo apt-get install mysql-server
2、安装客户端;
sudo apt-get install mysql-client
3、安装 mysql 相关库;
sudo apt-get install libmysqlclient-dev
4、安装成功后查看 MySQL 版本;
mysql -V; # 注意 V 是大写
5、修改 mysqld.cnf 配置文件
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
(1)在 [mysqld] 最后一行加入: # skip-grant-tables <-- add # here
(2)然后点击 ESC ,输入 ‘ :wq ’ 进行保存和退出;如下图所示;
说明:修改完配置文件后需要重新启动 mysql ,否则后续无法登录 mysql;
注:如果不修改 mysqld.cnf 配置文件,修改完 MySQL 的用户名和密码后,在进入 MySQL 时可能会有如下错误,即语法错误拒绝被访问:
6、查看默认安装的 MySQL 的用户名和密码;
sudo cat /etc/mysql/debian.cnf
7、登录 MySQL ;
mysql -u debian-sys-maint -p # 换行后输入上述查到的密码
8、进入 MySQL ;
use mysql;
9、刷新权限;
flush privileges;
10、修改用户名和密码;
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY '123456';
11、刷新权限;
flush privileges;
12、退出;
quit;
13、重启 MySQL ;
service mysql restart
14、进入 MySQL ;
mysql -u root -p # 回车后输入自己修改后的密码即可
至此,MySQL 用户名和密码修改成功;