Хорошо, вот сделка. Я настраиваю базу данных MySQL в Rackspace и пытаюсь подключиться к ней. Я использую учебник Google Maps для создания магазина локатора с использованием MySQL. Строка кода в руководстве запрашивает имя хоста, и я указываю IP-адрес моего сервера в Rackspace. Я использую то, что считаю правильным, но оно не работает. Есть идеи?
Вот учебный код Google:
// Opens a connection to a mySQL server
$connection=mysql_connect (localhost, $username, $password);
if (!$connection) {
die("Not connected : " . mysql_error());
};
My code:
$connection=mysqli_connect ('THE IP ADDRESS OF MY RACKSPACE SERVER', 'MY USERNAME', 'MY PASSWORD');
Вот ссылка на учебник от Google: https://developers.google.com/maps/solutions/store-locator/clothing-store-locator
Я знаю, что у меня правильный IP-адрес сервера и правильное имя пользователя / пароль, так как я могу войти через SSH с терминала с этими учетными данными.
Когда я использую mysql> \ s, чтобы показать статус, он говорит: Connection: Localhost через сокет UNIX — это означает, что это локальный хост? Мне нужно, чтобы он размещался на IP для подключения правильно?
Я ожидаю, что ваш сервер MySQL по умолчанию упакован в ваш дистрибутив Linux и настроен на локальное прослушивание или только на файл сокета. Вы можете обновить конфигурацию вашей БД, чтобы прослушивать общедоступный IP-адрес вашего сервера, однако очевидно, что это может иметь некоторые последствия для безопасности.
Для этого отредактируйте файл /etc/mysql/mysqld.conf (он может находиться в немного другом месте в зависимости от используемого дистрибутива) и следующую строку как таковую …
От
#bind-address = 127.0.0.1
к
bind-address = 0.0.0.0
Теперь перезапустите службу MySQL с помощью команды systemctl или service.
service mysql restart
Ваш сервер MySQL теперь прослушивает ВСЕ IP-адреса хоста. Если вы хотите ограничить его до одного, вы должны ввести этот IP вместо 0.0.0.0. Теперь вы должны иметь возможность подключаться к своему серверу MySQL удаленно, однако вы, должно быть, уже настроили пользователя вашей базы данных для возможности входа с веб-сервера. Если вы еще не настроили пользователя, сделайте что-то подобное.
mysql
CREATE USER '<username>'@'<webserver ip address here>' INDENTIFIED BY '<password>';
GRANT ALL PRIVILEGES ON <database>.* TO '<username>'@'<webserver ip address>';
FLUSH PRIVILEGES;
Теперь вы сможете войти в систему под этим пользователем и просматривать / изменять / вставлять и т. Д. Данные в базу данных, указанную с указанного IP-адреса сервера. Вы можете проверить это с веб-сервера, используя клиент MySQL, как это …
mysql -u <username> -h <db server ip> -p
Других решений пока нет …