Я пытаюсь подключиться к серверу базы данных mysql с другого сервера. Ниже приведены конфигурации на обоих серверах.
Сервер 1: я установил xampp с услугами php и apache, и у него есть следующий ip 172.x1.x1.x1
- cURL и fopen медленнее в браузере, быстро через командную строку
- Как запускать скрипт PHP, если сервер вызывает его
- Как установить пакет Python для глобального использования всеми пользователями (включая www-data)
- PHP fopen () терпит неудачу в файлах даже с широко открытыми разрешениями
- Функциональный тестовый сервер Symfony2 с параметром SERVER_NAME
Сервер 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) или die ($ table_error); ?> теперь, когда я пытаюсь подключиться, я получаю следующую ошибку
Предупреждение: mysql_connect () [function.mysql-connect]: хосту 'hr1.saqa.co.za' не разрешено подключаться к этому серверу MySQL в C: \ xampp \ htdocs \ scripts \ functions \ database \ connect.php on строка 4
Неустранимая ошибка: вызов неопределенной функции handle_error () в C: \ xampp \ htdocs \ scripts \ functions \ database \ connect.php в строке 5
Это будет здорово, если вы сможете помочь мне, ребята.
Так как ваш сервер базы данных отличается от вашего сервера php / apache, вам нужно указать имя хоста как 172.x1.x1.x2
в строке подключения mysql-php.
Также убедитесь, что пользовательский root
mysql имеет разрешение удаленного подключения. Другой мудрый mysql-сервер не позволит вашему пользователю root
удаленно войти в систему. т.е. с вашего сервера1.
Вы можете убедиться, что из таблицы 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) Убедитесь, что брандмауэр разрешает MySQL.
2) Убедитесь, что разрешено удаленное подключение к MySQL.