此教程分为两部分:首先是重置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地址,并确保服务器的防火墙正确配置。