2

Я хочу получить доступ к базе данных MySql на чужом хосте. У меня есть разрешение от владельца, но они ничего не знают о технологиях (и, похоже, я тоже).

Я просмотрел кодовую базу WordPress и, возможно, нашел учетные данные базы данных в файле с именем wp-config.php.default . Другие места выглядят невероятно.

define('DB_NAME', '[redacted]');
define('DB_USER', 'db_user');
define('DB_PASSWORD', '[redacted]');
define('DB_HOST', '[redacted]');

Попытка подключиться через командную строку не удалась.

$ mysql --host='[redacted]' --user='db_user' --password='[redacted]' '[redacted]'
ERROR 2003 (HY000): Can't connect to MySQL server on '[redacted]' (60)

У меня неправильные учетные данные? Если так, как я могу их найти? Там нет очевидного раздела настроек базы данных в интерфейсе супер администратора.

Мой IP-адрес заблокирован? Если так, как я могу настроить WordPress для его принятия? Большинство примеров в сети уже получили приглашение Sql.

3 ответа3

4

Вы должны предоставить доступ пользователю с удаленного хоста на сервере MySQL.

Из этого туториала Вы узнаете, как настроить пользователя на сервере MySQL для удаленного подключения.

Предполагается следующее:

You have access to login as the 'root' MySQL user

содержание

1 Getting your IP address
2 Granting Access
3 Testing Remotely
4 Notes

Получение вашего IP-адреса

Вам нужно будет знать, с какого IP-адреса вы подключаетесь. Чтобы найти это, вы можете перейти на один из следующих сайтов:

http://www.ipchicken.com
http://www.whatismyip.com

Предоставление доступа

Предоставление доступа пользователю с удаленного хоста довольно просто и может быть достигнуто всего за несколько шагов. Сначала вам нужно будет войти на свой сервер MySQL от имени пользователя root. Вы можете сделать это, введя следующую команду:

mysql -u root -p

Это запросит у вас пароль root для MySQL.

После входа в MySQL необходимо выполнить команду GRANT, которая разрешит доступ для вашего удаленного пользователя. В этом примере мы создадим нового пользователя (fooUser), который будет иметь полный доступ к базе данных fooDatabase.

Имейте в виду, что это утверждение не является полным и потребует изменения некоторых пунктов. Пожалуйста, измените 1.2.3.4 на IP-адрес, который мы получили выше. Вам также необходимо изменить my_password с паролем, который вы хотели бы использовать для fooUser.

mysql> GRANT ALL ON fooDatabase.* TO fooUser@'1.2.3.4' IDENTIFIED BY 'my_password';

Этот оператор предоставит ВСЕ разрешения вновь созданному пользователю fooUser с паролем «my_password» при подключении с IP-адреса 1.2.3.4.

Тестирование удаленно

Теперь вы можете проверить ваше соединение удаленно. Вы можете получить доступ к вашему серверу MySQL с другого сервера Linux:

mysql -u fooUser -p -h 44.55.66.77
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 17
Server version: 5.0.45 Source distribution

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> _

Обратите внимание, что IP-адрес нашего сервера MySQL в этом примере составляет 44.55.66.77.

Заметки

При настройке этих удаленных пользователей следует отметить несколько вещей:

При настройке пользователей локальный пользователь - это не то же самое, что удаленный пользователь. Например, fooUser @ localhost отличается от fooUser@1.2.3.4. Вам нужно будет дублировать разрешения, если вы хотите, чтобы у них были такие же разрешения.

Предоставление ВСЕХ разрешений не рекомендуется. Использование GRANT SELECT, INSERT, UPDATE, DELETE - мудрая альтернатива для обычного пользователя.

Если вы хотите предоставить доступ только к определенной таблице, вы можете использовать database.table вместо database.*. Что касается нашего примера выше, вы можете поместить fooDatabase.fooTable.

Если вы используете iptables, вам нужно будет сделать запись в брандмауэре для TCP-порта 3306. При создании правила брандмауэра вы можете просто использовать имя «mysql» для номера порта.

Источник: http://www.rackspace.com/knowledge_center/article/mysql-connect-to-your-database-remotely

0

Попробуй это

mysql -h(ip сервера mysql) -u(имя пользователя) -p(пароль)

надеюсь это поможет!

0

Не многие веб-хосты открывают входящие порты MySQL, поэтому вы должны быть уверены, что соединение с сервером возможно. Я предполагаю, что у вас есть веб-экземпляр, на котором запущен php, поэтому вы также можете загрузить phpMyAdmin (который в основном является программным обеспечением для администрирования MySQL) на их сервер, настроить его с использованием учетных данных вашей БД и получить к нему доступ через определенный URL-адрес.

Есть много способов установить phpMyAdmin, некоторые дистрибутивы Linux могут установить его с помощью простой команды. Проверьте, не установлен ли он на сервере, к которому вы пытаетесь получить доступ.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .