apt命令安装MySQL, 过程中没有设置root密码。 安装完成后,无法登录root,因此修改root密码。
1、设置免密登录
修改文件/etc/mysql/mysql.conf.d/mysqld.cnf,在[mysqld]这一块中加入skip-grant-tables这句话。
修改后重启服务生效,systemctl restart mysql.service
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
[mysqld]
#
# * Basic Settings
#
user = mysql
...
max_binlog_size = 100M
# binlog_do_db = include_database_name
# binlog_ignore_db = include_database_name
skip-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/mysqld.cnf文件把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.

当在Ubuntu上使用apt命令安装MySQL后忘记设置root密码,可以通过编辑配置文件添加skip-grant-tables选项实现免密登录,然后使用SQL命令修改root密码。首先在/etc/mysql/mysql.conf.d/mysqld.cnf文件中添加skip-grant-tables,重启MySQL服务。接着,无密登录MySQL,使用`use mysql`切换到mysql库,通过`ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';`命令修改密码。最后,移除skip-grant-tables,再次重启服务使更改生效。若遇到错误,可能需要检查或更新root用户的plugin。
2100

被折叠的 条评论
为什么被折叠?



