这应该很简单,但我不能让它为我的一生工作。我只是想远程连接到我的MySQL服务器。
连接方式:mysql-u根-h本地主机-p工作正常,但尝试:mysql-uroot-h'这里的任何ip地址'-p失败,错误为:错误1130(00000):主机“xxx.xx.xxx.xxx”不允许连接到此MySQL服务器
在mysql.user表中,主机为“localhost”的用户“root”的条目与主机为“%”的用户完全相同。
我束手无策,不知道该怎么办。欢迎提出任何想法。
这应该很简单,但我不能让它为我的一生工作。我只是想远程连接到我的MySQL服务器。
连接方式:mysql-u根-h本地主机-p工作正常,但尝试:mysql-uroot-h'这里的任何ip地址'-p失败,错误为:错误1130(00000):主机“xxx.xx.xxx.xxx”不允许连接到此MySQL服务器
在mysql.user表中,主机为“localhost”的用户“root”的条目与主机为“%”的用户完全相同。
我束手无策,不知道该怎么办。欢迎提出任何想法。
当前回答
简单方法:
Grant All Privileges ON *.* to 'USER_NAME'@'%' Identified By 'YOUR_PASSWORD';
then
FLUSH PRIVILEGES;
完成!
其他回答
我的错误消息类似,说“主机XXX不允许连接到此MySQL服务器”,即使我使用的是root。以下是如何确保root用户具有正确的权限。
我的设置:
Ubuntu 14.04 LTSMySQL v.5.37
解决方案
打开etc/mysql/my.cnf下的文件检查:端口(默认为端口=3306)绑定地址(默认情况下,这是绑定地址=127.0.0.1;如果您想向所有人打开,那么只需注释掉这一行。例如,我会说实际服务器在10.1.1.7上)现在在您的实际服务器上访问MySQL数据库(假设您的远程地址是123.123.123.123,端口3306为用户根,我想更改数据库“数据输入”的权限。请记住将IP地址、端口和数据库名称更改为您的设置)mysql-u根-p输入密码:<输入密码>mysql>GRANT ALL ON*.*to root@'123.123.123.123'IDENTIFIED BY'put your password';mysql>FLUSH特权;mysql>退出sudo服务mysqld重启现在您应该能够远程连接到数据库。例如,我使用MySQL Workbench并输入“主机名:10.1.1.7”、“端口:3306”、“用户名:root”
我也面临着同样的问题,它在2分钟内就解决了,我只是通过cpanel列出了白名单
假设您正在尝试从服务器A连接服务器B的数据库。转到服务器B Cpanel->远程MySQL->输入服务器A IP地址,就这样。
只需从主机控制面板找到更好的方法(我在这里使用的是DirectAdmin)
只需转到控制面板中的目标服务器DB,在我的情况下:MySQL管理->选择您的数据库->您会发现:“访问主机”,只需在此处添加远程主机并立即工作即可!
我想在其他C面板上也有类似的选项,比如plesk等。。
我希望这对你也有帮助。
简单的方法是使用root帐户登录phpmyadmin,然后转到mysql数据库并选择用户表,然后编辑root帐户并在host字段中添加%wildcard。然后通过ssh刷新权限
FLUSH PRIVILEGES;
这里的大多数答案显示您使用两个主机值创建用户:一个用于localhost,一个用于%。
请注意,除了内置的localhost用户(如root用户),您不需要这样做。如果您只是想创建一个可以从任何地方登录的新用户,可以使用
CREATE USER 'myuser'@'%' IDENTIFIED BY 'mypassword';
GRANT <whatever privileges are appropriate> ON <relevant tables> TO myuser;
它会工作得很好。(正如其他人所提到的,向来自任何域的用户授予管理权限是一个可怕的想法。)