此教程分为两部分:首先是重置root用户的密码,然后是配置MySQL以允许root用户远程访问。

MySQL 8中重置Root密码

1. 停止MySQL服务

在服务器上,执行以下命令来停止MySQL服务:

sudo systemctl stop mysql

2. 启动MySQL的安全模式

以无密码模式启动MySQL,这样您就可以在没有密码的情况下登录。执行以下命令:

sudo mysqld_safe --skip-grant-tables &

这将启动MySQL的安全模式。

3. 登录MySQL

在安全模式下,您可以以root用户身份登录MySQL,而不需要密码。使用此命令登录:

mysql -u root

4. 重置密码

在MySQL命令行中,使用以下命令重置root用户的密码:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'your_new_password';

your_new_password替换为您希望使用的新密码。

5. 退出并重启MySQL

退出MySQL命令行:

quit

然后重启MySQL服务:

sudo systemctl start mysql

配置MySQL以允许远程访问

1. 登录MySQL

使用您刚设置的新密码登录MySQL:

mysql -u root -p

输入密码时,使用您在上一步中设置的新密码。

2. 更改root用户设置

如果您的MySQL root用户仅配置为从localhost访问,您需要更改这个设置以允许从任何主机连接。执行以下命令:

需要修改下面1.2行的your_new_password为你的root密码,然后执行这3行sql即可

ALTER USER 'root'@'localhost' IDENTIFIED WITH 'mysql_native_password' BY 'your_new_password';
CREATE USER 'root'@'%' IDENTIFIED WITH 'mysql_native_password' BY 'your_new_password';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;

在所有出现your_new_password的地方替换为您选择的密码。

3. 刷新权限

执行此命令以使更改生效:

FLUSH PRIVILEGES;

4. 修改MySQL配置文件

编辑MySQL配置文件以允许远程连接。配置文件通常位于/etc/mysql/mysql.conf.d/mysqld.cnf/etc/my.cnf。找到以下行:

bind-address = 127.0.0.1

将其更改为:

bind-address = 0.0.0.0

如果没有找到bind-address配置,那也是可以的

5. 重启MySQL服务

为了应用更改,请重启MySQL服务:

sudo systemctl restart mysql

完成以上步骤后,您的MySQL服务器应该允许root用户从远程位置进行连接。请记得在进行这些更改时考虑安全因素,如设置强密码、限制可访问的IP地址,并确保服务器的防火墙正确配置。

Last modification:December 29, 2023
如果觉得这篇技术文章对你有用,请随意赞赏