MySQL8 重置改root密码及开放远程访问

时间:2024-02-29 12:52:43

1. 修改配置文件

先修改配置文件:vim /etc/my.conf

[mysqld] 下加上下面这行

skip-grant-tables

重启 mysql 服务:

service mysqld restart

2. 修改密码

先进入 mysql 命令行:

mysql -u root

切换数据库

use mysql;

修改密码:

alter user \'root\'@\'localhost\' identified with mysql_native_password by \'your_password\';
flush privileges;

请把 your_password 替换为你想要的密码。
注意这里我同时更改了密码的加密方式,在MySQL8中的加密方式已经改为caching_sha2_password了,这会导致在很多客户端连接的时候提示找不到模块。
后面一行是用来刷新权限的。

3. 开启远程访问

再打开配置文件/etc/my.conf,删除前面的跳过授权的一行即 skip-grant-tables
在其中增加一行:

bind_address=\'0.0.0.0\'

重启 mysql 服务:

service mysqld restart

进入 mysql :

mysql -uroot -p

这之后输入前面设置的新密码

选择 mysql 库:

use mysql;

user 表的 root 用户的那一行记录的 host 字段值改为 % 即可:

update user set host=\'%\' where user=\'root\'

当然如果你要开放其它用户就把上面的 root 换成其它用户名。