这应该很简单,但我不能让它为我的一生工作。我只是想远程连接到我的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”的条目与主机为“%”的用户完全相同。
我束手无策,不知道该怎么办。欢迎提出任何想法。
当前回答
如果您恰好在Windows上运行;一个简单的解决方案是运行MySQL服务器实例配置向导。它位于开始菜单中的MYSQL组中。在倒数第二个屏幕上,单击“允许远程计算机的root访问”框。
其他回答
这适用于任何未来的远程mysql连接!
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
导航到以bind address指令开头的行。应该是这样的:
bind-address = 0.0.0.0
以root终端身份登录mysql
mysql -u root -p
-- root password
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost' WITH GRANT OPTION;
CREATE USER 'username'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;
最后,使用以下命令授予该计算机远程连接到数据库的独占权限。
sudo ufw allow from remote_IP_address to any port 3306
CPANEL溶液
转到Cpanel,查找远程MySQL。在输入字段中添加IP:
主机(允许使用%通配符)
注释以记住IP是什么。这就是对我来说的。
那么,您可以做的就是打开mysql.cfg文件,然后将Bind地址更改为
绑定地址=127.0.0.1
然后重新启动mysql,您将能够将该服务器连接到此服务器。
看这个,你可以从那个里得到想法。
这是真的溶胶
如果您恰好在Windows上运行;一个简单的解决方案是运行MySQL服务器实例配置向导。它位于开始菜单中的MYSQL组中。在倒数第二个屏幕上,单击“允许远程计算机的root访问”框。
这里的大多数答案显示您使用两个主机值创建用户:一个用于localhost,一个用于%。
请注意,除了内置的localhost用户(如root用户),您不需要这样做。如果您只是想创建一个可以从任何地方登录的新用户,可以使用
CREATE USER 'myuser'@'%' IDENTIFIED BY 'mypassword';
GRANT <whatever privileges are appropriate> ON <relevant tables> TO myuser;
它会工作得很好。(正如其他人所提到的,向来自任何域的用户授予管理权限是一个可怕的想法。)