默认情况下,root 用户仅允许本地连接数据库,不允许远程连接,需要修改权限才能开启远程访问。
一、检查当前 root 远程权限
1.
登录 MySQL(命令行执行)
输入密码登录
2.
直接查询用户权限
|
sql
mysql>
select host,user,password from mysql.user;
|
显示:
|
Plain Text
+-----------+------+-------------------------------------------+
| host | user | password |
+-----------+------+-------------------------------------------+
| localhost | root | *4A8FE3202A5DF5C5467898FC58AAB1D615029441 |
| 127.0.0.1 | root | *4A8FE3202A5DF5C5467898FC58AAB1D615029441 |
+-----------+------+-------------------------------------------+
|
结果说明:root 只能本地登录,无远程连接权限。
二、开启 root 远程权限并刷新
|
sql
mysql>
grant all privileges on *.* to 'root'@'%' identified by '你的root密码' with grant option; -- 允许root从任意IP远程登录
mysql> flush privileges;
-- 刷新权限生效
|
三、验证是否开启成功
|
sql
mysql>
select host,user,password from mysql.user;
|
显示:
|
Plain Text
+-----------+------+-------------------------------------------+
| host | user | password |
+-----------+------+-------------------------------------------+
| localhost | root | *4A8FE3202A5DF5C5467898FC58AAB1D615029441 |
| 127.0.0.1 | root | *4A8FE3202A5DF5C5467898FC58AAB1D615029441 |
| % | root |
*4A8FE3202A5DF5C5467898FC58AAB1D615029441 |
+-----------+------+-------------------------------------------+
|
出现 % 表示 root 远程连接已开启成功。
⚠️重要安全提醒
root 远程权限风险极高,仅建议临时使用!测试 / 使用完成后,请立即关闭 root 远程授权,避免数据库被暴力破解、数据泄露。
四、关闭 root 远程授权(必做)
|
sql
mysql>
drop user 'root'@'%'; -- 删除允许远程登录的root用户
mysql> flush privileges;
-- 刷新权限,立即生效
|
验证关闭是否成功
|
sql
mysql>
select host,user,password from mysql.user;
|
显示:
|
Plain Text
+-----------+------+-------------------------------------------+
| host | user | password |
+-----------+------+-------------------------------------------+
| localhost | root | *4A8FE3202A5DF5C5467898FC58AAB1D615029441 |
| 127.0.0.1 | root | *4A8FE3202A5DF5C5467898FC58AAB1D615029441 |
+-----------+------+-------------------------------------------+
|
结果中没有 % + root 这一行,代表关闭成功。