vgu*_*anp 4 remote mysql azure virtual-machine
我有一台装有 Ubuntu 系统的 Azure 虚拟机,带有 MySQL 服务器,我想从 Web 应用程序访问数据库。当我安装 mysql-server 时,我执行了
$ iptables -I INPUT -p tcp --dport 3306 -m state --state NEW,ESTABLISHED -j ACCEPT
$ iptables -I OUTPUT -p tcp --sport 3306 -m state --state ESTABLISHED -j ACCEPT
Run Code Online (Sandbox Code Playgroud)
允许 tcp 连接。在/etc/mysql/my.cnf我添加的文件中bind-address = 168.63.178.87,这是 Azure 面板告诉我的“虚拟 IP 地址”。
在 mysql 中,我用来连接的用户拥有所需数据库的所有权限(我认为):
mysql> SHOW GRANTS FOR 'user'@'%';
+-------------------------------------------------------------------------------------------------------------------+
| Grants for user@% |
+-------------------------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'user'@'%' IDENTIFIED BY PASSWORD 'pass_ommited' |
| GRANT ALL PRIVILEGES ON `database`.* TO 'user'@'%' |
+-------------------------------------------------------------------------------------------------------------------+
Run Code Online (Sandbox Code Playgroud)
但是当应用程序尝试连接到数据库时,我收到错误:
CDbConnection failed to open the DB connection: SQLSTATE[HY000] [2003] Can't connect to MySQL server on '168.63.178.87' (4)
Run Code Online (Sandbox Code Playgroud)
(这是一个 Yii 框架应用程序,以防万一)。
我可以使用给定的 IP 地址和特定端口对虚拟机进行完全 SSH 访问。Azure 还告诉我“内部 IP 地址”,即10.78.28.85. 我曾尝试将 MySQL 服务器绑定到该地址并绑定到0.0.0.0,但没有成功。
我怀疑问题是为了访问服务器中的特定实例而进行的重定向,但我不知道如何解决。
我终于解决了。问题是我在 Azure 中没有端点。
我已经使用3306端口创建了端点并重新启动了 mysql-serversudo restart mysql
我遇到的另一个错误是我需要将绑定地址设置为服务器的内部 IP 地址。
| 归档时间: |
|
| 查看次数: |
6088 次 |
| 最近记录: |