我试图从另一台服务器连接到mysql数据库服务器。以下是两台服务器上的配置。
服务器1: 我用php和apache服务安装了xampp,它有以下ip 172.x1.x1.x1
服务器2: 我安装了mysql,它有以下ip 172.x1.x1.x2。
以下是我用来连接数据库的连接脚本
<?php
//Database connection constants
define("DATABASE_HOST", "172.x1.x1.x2");
define("DATABASE_USERNAME", "root");
define("DATABASE_PASSWORD", "");
define("DATABASE_NAME", "management");
?>
上面的脚本位于名为app_config.php的文件中,位于服务器1中 以下脚本位于名为connect.php的文件中,它也位于服务器1
中<?php
require 'app_config.php';
$connect_error = 'Sorry we\'experiencing connection problems.';
$table_error = 'Table not found';
mysql_connect(DATABASE_HOST, DATABASE_USERNAME, DATABASE_PASSWORD)
or die($connect_error);
mysql_select_db(DATABASE_NAME) 或者死($ table_error); ?&GT; 现在,当我尝试连接时,我收到以下错误
警告:mysql_connect()[function.mysql-connect]:主机'hr1.saqa.co.za'不允许连接到C:\ xampp \ htdocs \ scripts \ functions \ database \ connect中的MySQL服务器.php在第4行
致命错误:在第5行的C:\ xampp \ htdocs \ scripts \ functions \ database \ connect.php中调用未定义的函数handle_error()
如果你能帮助我们,那将是很棒的。
答案 0 :(得分:3)
由于您的数据库服务器与您的php / apache服务器不同,您需要在mysql-php连接字符串中将主机名指定为172.x1.x1.x2
。
还要确保mysql用户root
具有远程连接权限。其他明智的mysql-server将不允许您的root
用户远程登录。即从你的server1。
您可以确保来自mysql.user
表。
mysql> select Host,User from user where User = "root";
+------------+------+
| Host | User |
+------------+------+
| 127.0.0.1 | root |
| ::1 | root |
| localhost | root |
| sgeorge-mn | root |
| % | root |
+------------+------+
4 rows in set (0.01 sec)
%
表示任何主持人。
要创建具有远程连接权限的用户,请使用以下mysql
查询:
mysql> CREATE USER 'root'@'%' IDENTIFIED BY 'your_password';
答案 1 :(得分:2)
1)确保防火墙允许MySQL。
2)确保允许MySQL远程连接权限。