我正在尝试从本地框连接到远程mysql数据库。一开始,我甚至无法访问mysql。但是,在对binding_address文件中的my.cnf进行注释并重新启动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)我的IP是不是被列入黑名单了?我可以改变这一点,因为我有远程框的管理权限。谁来帮帮我。
发布于 2011-01-31 22:55:49
进行双重检查,以确保root用户可以从本地主机以外的主机/IP访问。
mysql>使用mysql; mysql>从用户选择主机,其中user = 'root';
如果它只返回带有"localhost“的一行,则需要向正在连接的IP授予权限。
mysql>授予选择,插入我的数据库。*到‘根’@‘10.0.0.1’;
用您想要访问的数据库(或放入通配符)替换mydatabase,然后用客户端正在连接的地址或子网替换IP。
发布于 2011-02-01 00:54:00
第一件事是获得完全的许可。如果不能,请将这一行添加到my.cnf中并重新启动mysql:
skip-grant-tables我建议做一些调查,看看你有哪些用户:
SELECT user,host,password FROM mysql.user WHERE user = 'root' ORDER BY host ASC;这将显示用户列表,如下所示:
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)您需要在列表中看到localhost。如果没有,请按如下方式添加:
GRANT ALL PRIVILEGES ON *.* TO root@'localhost' IDENTIFIED BY 'your_password' WITH GRANT OPTION;否则,只需按以下方式更新密码:
SET PASSWORD FOR root@'localhost' = PASSWORD('your_password');
FLUSH PRIVILEGES;然后从my.cnf中删除跳过授予表并重新启动mysql。
发布于 2011-01-31 22:55:15
mysql中的密码是按IP设置的。通常,它们只被设置为仅通过本地主机访问,特别是对于根用户。验证权限表中是否存在root@%项设置。
如果您确实需要允许远程根访问,那么请考虑更改用户名,这样人们就不会轻易地猜测您的服务器超级用户帐户。
https://serverfault.com/questions/230012
复制相似问题