如何在 LAMP(Python) 堆栈上打开远程 MySQL 连接
Posted
技术标签:
【中文标题】如何在 LAMP(Python) 堆栈上打开远程 MySQL 连接【英文标题】:How to open remote MySQL connection at a LAMP(Python) stack 【发布时间】:2016-08-30 14:13:24 【问题描述】:我正在开发一个 django 应用程序,其中存在我的 mysql 数据库。 我的 django 应用程序和数据库设置在一台机器上。
现在我有 2 台其他机器正在运行一个脚本,需要远程连接到我的主机中的 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地址]
密码:我的密码
端口: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]
它给了我这个错误:Host '[my local ip address]' is not allowed to connect to this MySQL server
【问题讨论】:
【参考方案1】:不要做机器ip地址,允许任何主机'user'@'%'看看它是否有效。
如果是,请检查日志以查看您的主机名在服务器上显示的内容。
不需要更改绑定地址。
【讨论】:
以上是关于如何在 LAMP(Python) 堆栈上打开远程 MySQL 连接的主要内容,如果未能解决你的问题,请参考以下文章