Из соображений безопасности мы не открываем доступ к базе данных с удаленных хостов.

Но тем не менее, вы можете проложить туннель и работать с базой удаленно. Туннель занимается тем, что перенаправляет внешние запросы на нужный порт localhost.

При помощи SSH клиента Putty это делается так:

Создаем новое соединение.

В поле Host Name (or IP address) указываем ip адрес сервера, либо имя хоста

Port: 22

Далее в категории Connection/SSH/Tunnels в секции Add new forwarded port указать Source port: локальный_порт (например, 7777),

Destination: localhost:3306 (или mysql.server:3306, если используется таковой),

выбрать пункт Local и нажать кнопку добавить

Теперь соединяемся по SSH и вводим как обычно логин и пароль.

Теперь когда вы на вашей (клиентской) машине обращаетесь к порту 127.0.0.1:7777, ваши запросы будут переадресовываться порту 3306 на mysql-сервер.

Комментарии (4)

vaajnur #
11 лет 6 дней назад
гость

проблему решил. очень просто: на хостинге сделайте нового пользователя для mySQL и , соответсвенно, новый пароль. Имя БД можно оставить старым.

HydroBla... #
12 лет 8 недель назад
старейшина

Добрый день .

Попытался следовать инструкции , но не вышло .

На локальной машине настроен openserver .
Т.е. apache и php есть и копия проекта с сервера .

Настройки конфига "settings" перенесены с сервера в папку рабочего проекта .
Порт указан 7777 , в системе не используется .

Что ему не хватает ?

<code>

Warning: PDO::__construct() [pdo.--construct]: Premature end of data (mysqlnd_wireprotocol.c:553) in O:\domains\myhost\includes\database\database.inc on line 304

Warning: PDO::__construct() [pdo.--construct]: OK packet 1 bytes shorter than expected in O:\domains\myhost\includes\database\database.inc on line 304
Skip to main content
Error
The website encountered an unexpected error. Please try again later.
Error message

    Warning: PDO::__construct() [pdo.--construct]: Premature end of data (mysqlnd_wireprotocol.c:553) in DatabaseConnection->__construct() (line 304 of O:\domains\myhost\includes\database\database.inc).
    Warning: PDO::__construct() [pdo.--construct]: OK packet 1 bytes shorter than expected in DatabaseConnection->__construct() (line 304 of O:\domains\myhost\includes\database\database.inc).
    Warning: PDO::__construct() [pdo.--construct]: Premature end of data (mysqlnd_wireprotocol.c:553) in DatabaseConnection->__construct() (line 304 of O:\domains\myhost\includes\database\database.inc).
    Warning: PDO::__construct() [pdo.--construct]: OK packet 1 bytes shorter than expected in DatabaseConnection->__construct() (line 304 of O:\domains\myhost\includes\database\database.inc).
    Warning: PDO::__construct() [pdo.--construct]: Premature end of data (mysqlnd_wireprotocol.c:553) in DatabaseConnection->__construct() (line 304 of O:\domains\myhost\includes\database\database.inc).
    Warning: PDO::__construct() [pdo.--construct]: OK packet 1 bytes shorter than expected in DatabaseConnection->__construct() (line 304 of O:\domains\myhost\includes\database\database.inc).
    Warning: PDO::__construct() [pdo.--construct]: Premature end of data (mysqlnd_wireprotocol.c:553) in DatabaseConnection->__construct() (line 304 of O:\domains\myhost\includes\database\database.inc).
    Warning: PDO::__construct() [pdo.--construct]: OK packet 1 bytes shorter than expected in DatabaseConnection->__construct() (line 304 of O:\domains\myhost\includes\database\database.inc).
    Warning: Cannot modify header information - headers already sent by (output started at O:\domains\myhost\includes\database\database.inc:304) in drupal_send_headers() (line 1239 of O:\domains\myhost\includes\bootstrap.inc).
    PDOException: SQLSTATE[HY000] [2000] mysqlnd cannot connect to MySQL 4.1+ using the old insecure authentication. Please use an administration tool to reset your password with the command SET PASSWORD = PASSWORD('your_existing_password'). This will store a new, and more secure, hash value in mysql.user. If this user is used in other scripts executed by PHP 5.2 or earlier you might need to remove the old-passwords flag from your my.cnf file in lock_may_be_available() (line 167 of O:\domains\myhost\includes\lock.inc).
    Warning: PDO::__construct() [pdo.--construct]: Premature end of data (mysqlnd_wireprotocol.c:553) in DatabaseConnection->__construct() (line 304 of O:\domains\myhost\includes\database\database.inc).
    Warning: PDO::__construct() [pdo.--construct]: OK packet 1 bytes shorter than expected in DatabaseConnection->__construct() (line 304 of O:\domains\myhost\includes\database\database.inc).

</code>

annya #
12 лет 8 недель назад
гость

Здравствуйте

У нас уже был тикет с подобной проблемой - и иследовав проблему нашли такие обсуждения http://drupal.org/node/1306616
That's how PDO works. Nothing we can do about it.
Похоже, что Drupal 7 такого делать не умеет(вернее, это не заложено в PDO).

Тут http://stackoverflow.com/questions/6968792/pdo-and-ssh2-tunnel есть более детальное обсуждение проблемы.

sibero #
12 лет 8 недель назад
сисадмин

Здравствуйте.
Техподдержка осуществляется через тикет систему, если у Вас есть вопросы, создайте, пожалуйста, тикет.

С уважением,
Александр