IP-адрес базы данных MySQL из стойки или облака Google? - PullRequest
0 голосов
/ 04 ноября 2018

Хорошо, вот сделка. Я настраиваю базу данных 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 для подключения, верно?

1 Ответ

0 голосов
/ 14 января 2019

Я ожидаю, что ваш сервер 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
...