bra*_*boy 14 mysql permissions
我正在尝试从本地机器连接到远程 mysql 数据库。最初我什至无法访问 mysql 数据库。但是在 my.cnf 文件中注释了 binding_address 并重新启动 mysql 服务器后,我现在可以点击它了。
但是现在,我收到拒绝访问错误
mysql -u root -h x.x.x.x -p
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'x.x.x.x' (using password: YES)
Run Code Online (Sandbox Code Playgroud)
我的IP被列入黑名单还是什么?我可以更改它,因为我对远程框有管理员权限。来人帮帮我。
ran*_*omx 22
首要任务是获得完全权限。如果不能,请将此行添加到 my.cnf 并重新启动 mysql:
skip-grant-tables
Run Code Online (Sandbox Code Playgroud)
我建议做一点侦察,看看你有哪些用户:
SELECT user,host,password FROM mysql.user WHERE user = 'root' ORDER BY host ASC;
Run Code Online (Sandbox Code Playgroud)
这将显示您的用户列表,例如:
mysql> SELECT user,host,password FROM mysql.user WHERE user = 'root' ORDER BY host ASC;
+------+------------+-------------------------------------------+
| user | host | password |
+------+------------+-------------------------------------------+
| root | 127.0.0.1 | |
| root | ::1 | |
| root | localhost | *E0AD777475E6713F9B04317EE38888D61042DAC1 |
| root | randym-mbp | |
+------+------------+-------------------------------------------+
4 rows in set (0.01 sec)
Run Code Online (Sandbox Code Playgroud)
您需要在列表中看到 localhost。如果没有,请按如下方式添加:
GRANT ALL PRIVILEGES ON *.* TO root@'localhost' IDENTIFIED BY 'your_password' WITH GRANT OPTION;
Run Code Online (Sandbox Code Playgroud)
否则只需像这样更新密码:
SET PASSWORD FOR root@'localhost' = PASSWORD('your_password');
FLUSH PRIVILEGES;
Run Code Online (Sandbox Code Playgroud)
然后从 my.cnf 中删除 skip-grant-tables 并重新启动 mysql。
小智 9
仔细检查以确保 root 可以从 localhost 以外的主机/IP 访问。
mysql> 使用 mysql;
mysql> SELECT host FROM user WHERE user = 'root';
如果它只返回带有“localhost”的一行,则您需要授予您正在连接的 IP 的权限。
mysql> GRANT SELECT, INSERT ON mydatabase.* TO 'root'@'10.0.0.1';
将 mydatabase 替换为您要访问的数据库(或放入通配符),然后将 IP 替换为您的客户端连接的地址或子网。
| 归档时间: |
|
| 查看次数: |
154392 次 |
| 最近记录: |