Из соображений безопасности мы не открываем доступ к базе данных с удаленных хостов.
Но тем не менее, вы можете проложить туннель и работать с базой удаленно. Туннель занимается тем, что перенаправляет внешние запросы на нужный порт 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-сервер.
Comments (4)
проблему решил. очень просто: на хостинге сделайте нового пользователя для mySQL и , соответсвенно, новый пароль. Имя БД можно оставить старым.
Добрый день .
Попытался следовать инструкции , но не вышло .
На локальной машине настроен 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>
Здравствуйте
У нас уже был тикет с подобной проблемой - и иследовав проблему нашли такие обсуждения 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 есть более детальное обсуждение проблемы.
Здравствуйте.
Техподдержка осуществляется через тикет систему, если у Вас есть вопросы, создайте, пожалуйста, тикет.
Alexander