PHP 尝试连接到本地 mysql 数据库而不是指定的远程地址
PHP trying to connect to local mysql database instead of specified remote address
我正在尝试连接到远程 MySQL 数据库。 MySQL 用户可以从任何 IP 地址访问。我在尝试连接的 Centos 6.8 VM 上拥有 root 权限。
是的,我用谷歌搜索了这个问题,但到目前为止没有任何效果。我是 PHP 的新手,所以这可能很简单。它指的是“/var/lib/mysql/mysql.sock”的路径不存在,但我觉得它不应该寻找这个套接字,因为数据库不在本地主机上。我还仔细检查了我的 MySQL 用户是否有权限。
我的代码:index.php
<html>
<head>
<title>PHP Test</title>
</head>
<body>
<?php
$user="myUsername";
$password="myPW";
$database="myDB";
mysql_connect('xxx.x.xx.xx:xxxx',$user,$password);
@mysql_select_db($database) or die( mysql_error());
$query="SELECT * from myTable";
mysql_query($query);
mysql_close();
?>
</body>
</html>
我在页面上打印的错误:
Can't connect to local MySQL server through socket
'/var/lib/mysql/mysql.sock' (2)
我在 httpd/logs/error_log 中遇到的错误:
[Fri Jul 08 06:26:54 2016] [error] [client xxx.x.x.xxx] PHP Warning:
mysql_connect(): Can't connect to MySQL server on 'xxx.x.xx.xx' (13)
in /var/www/html/index.php on line 10
我可以通过禁用 selinux 来让它工作。这适合我的测试情况,但对于生产环境,实际配置 selinux 以允许 PHP 连接到 MySQL 可能会更好。
我正在尝试连接到远程 MySQL 数据库。 MySQL 用户可以从任何 IP 地址访问。我在尝试连接的 Centos 6.8 VM 上拥有 root 权限。
是的,我用谷歌搜索了这个问题,但到目前为止没有任何效果。我是 PHP 的新手,所以这可能很简单。它指的是“/var/lib/mysql/mysql.sock”的路径不存在,但我觉得它不应该寻找这个套接字,因为数据库不在本地主机上。我还仔细检查了我的 MySQL 用户是否有权限。
我的代码:index.php
<html>
<head>
<title>PHP Test</title>
</head>
<body>
<?php
$user="myUsername";
$password="myPW";
$database="myDB";
mysql_connect('xxx.x.xx.xx:xxxx',$user,$password);
@mysql_select_db($database) or die( mysql_error());
$query="SELECT * from myTable";
mysql_query($query);
mysql_close();
?>
</body>
</html>
我在页面上打印的错误:
Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
我在 httpd/logs/error_log 中遇到的错误:
[Fri Jul 08 06:26:54 2016] [error] [client xxx.x.x.xxx] PHP Warning: mysql_connect(): Can't connect to MySQL server on 'xxx.x.xx.xx' (13) in /var/www/html/index.php on line 10
我可以通过禁用 selinux 来让它工作。这适合我的测试情况,但对于生产环境,实际配置 selinux 以允许 PHP 连接到 MySQL 可能会更好。