apt命令安装MySQL, 过程中没有设置root密码。 安装完成后,无法登录root,因此修改root密码。
1、设置免密登录
修改文件/etc/mysql/mysql.conf.d/f,在[mysqld]这一块中加入skip-grant-tables这句话。
修改后重启服务生效,systemctl restart mysql.service
sudo vim /etc/mysql/mysql.conf.d/f[mysqld]## * Basic Settings#user = mysql...max_binlog_size = 100M# binlog_do_db= include_database_name# binlog_ignore_db= include_database_nameskip-grant-tables
2、登录root用户mysql -uroot -p,这个时候直接回车,不要密码。
3、修改root密码
use mysql;ALTER user 'root'@'localhost' IDENTIFIED BY '123456';flush privileges;
修改完后,退出就能用root新的密码登录了。 然后打开/etc/mysql/mysql.conf.d/f文件把skip-grant-tables删除。修改后重启服务生效,systemctl restart mysql.service。
PS:
步骤3,如果碰到以下报错,则先执行flush privileges;命令。
mysql> ALTER user 'root'@'localhost' IDENTIFIED BY '123456';ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
如果碰到以下报错。
ALTER user 'root'@'localhost' IDENTIFIED BY '123456';ERROR 1524 (HY000): Plugin 'auth_socket' is not loaded
先select user,plugin from user;查看plugin。 然后修改和其他的一样,update user set plugin='caching_sha2_password' where User ='root';
再执行flush privileges;命令。
处理了错误后,在执行步骤3.