我正在开发一个django应用程序,其中有我的MySQL数据库。我的django应用程序和数据库设置在一台机器上。
现在我有另外两台运行脚本的机器,它们需要远程连接到我的主机中的MySQL数据库。
所以在我的主机里。我已经做到了:
sudo nano /etc/mysql/my.cnf
然后更改
bind-address = 127.0.0.1
至
bind-address = [my public ip address]
之后,我通过防火墙打开了对数据库端口的远程访问通过运行:
sudo ufw allow 3306/tcp
sudo service ufw restart
之后,我运行mysql并运行以下命令:
CREATE USER newuser@[main machine ip address] IDENTIFIED BY 'my password';
GRANT ALL PRIVILEGES ON * . * TO newuser@[main machine ip address];
FLUSH PRIVILEGES;
现在,当我尝试使用从桌面应用程序远程连接到我的数据库时
用户名:newuser@[我的公共ip地址]
密码:my_password
端口:3306
数据库:我的数据库名称
主机:[我的公共ip地址]
它没有连接,并给我们的错误"访问被拒绝"。我还有什么需要做的吗?知道吗?
更新:
我尝试通过命令行从我的另一台服务器连接到主服务器,使用:
mysql -u newuser -p -h [my main server ip address
]
和
mysql -u newuser@[my main server ip address] -p -h [my main server ip address]
它给了我这个错误:主机"[我的本地ip地址]"不允许连接到这个MySQL服务器
不做机器ip地址,而是允许任何主机'user'@'%',看看它是否有效。
如果是,请检查日志,查看您的主机名在服务器上显示为.
无需更改绑定地址。