» Форма входа

»Мoy-weB ver.4.1

» Статистика

Главная » 2008 » Август » 14 » Настройка удаленного подключения к MySQL

Настройка удаленного подключения к MySQL
14.Авг.2008 | 17:49:59

Настройка удаленного подключения к MySQL




Автор: vasya


Эта статья для тех, кто впервые столкнулся с
необходимостью установить удаленное соединение с базой данных MySQL. В
статье рассказывается о сложностях, которые могут возникнуть при
настройке удаленного соединения и о методах их преодоления.


Как установить соединение с удаленной базой?


Для установления удаленного соединения нужно указать параметры, характеризующие устанавливаемое подключение. Это
  • --host
  • --protocol
  • --port

Из четырех возможных протоколов удаленное подключение позволяет
только TCP/IP, поэтому первым требованием является доступность
компьютера из сети по TCP/IP.
Далее необходимо добавить имя хоста (или ip адрес машины, на которой
расположена база) в строке подключения:

mysql --host=host_name
Обратите внимание, что указание в качестве имени хоста значения localhost (или же отсутствие такого параметра, что то же самое, так как это дефолтное значение) приводит к обращению на локальную машину.


Учтите, что параметры имеют две формы записи: длинную и короткую. В
свою очередь, если параметр имеет значение (как например, в случае
хоста необходимо указать имя хоста к которому нужно подключиться), то
короткая форма записи может использоваться с пробелом или без
(исключением из этого правила является пароль).
Таким образом, следующие три записи являются эквивалентными:

  • mysql --host=myhost.ru
  • mysql -h myhost.ru
  • mysql -hmyhost.ru

Как настроить соединение с удаленной базой?



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



Например, если я хочу создать юзера, который сможет коннектиться с
любого хоста с полными правами, то следует выполнить следующую команду:

GRANT ALL PRIVILEGES ON `имя_базы`.* TO myuser@% IDENTIFIED BY 'пароль';


Примечание. Обратите внимание, что данная команда дает доступ пользователю myuser со всех IP кроме 127.0.0.1, соответсвующего localhost.

Для пользователя myuser@localhost необходимо давать права отдельной командой GRANT.



Если вы решите обратиться к локальной машине как к удаленной, используя протокол TCP/IP, то не забывайте, что myuser@localhost и myuser@ip_собственного_компа это разные пользователи и каждому из них права нужно давать отдельной командой.



Второй пример показывает как дать право читать таблицу time_zone в базе mysql пользователю myuser с машины 192.168.0.76
с паролем mypassy:


GRANT SELECT ON mysql.time_zone TO myuser@192.168.0.76 IDENTIFIED BY 'mypassy';

Возникающие сложности



Если после всех действий у вас возникает ошибка
(Can't connect to Mysql Server on 'ваш IP'(10061)),
значит соединение блокирует firewall (windows firewall, outpost, антивирус или еще что-то).


Если возникает ошибка
(Client does not support autentification protocol request by server;
consider upgrading MySQL client), клиент (то есть ваша программа) не
поддерживает требуемый сервером протокол.

Эту ошибку можно исправить, установив пароль старого формата:

SET PASSWORD FOR user@host = OLD_PASSWORD('password');




© Все права на данную статью принадлежат порталу webew.ru.
Перепечатка в интернет-изданиях разрешается только с указанием автора
и прямой ссылки на оригинальную статью. Перепечатка в печатных
изданиях допускается только с разрешения редакции.

Категория: Статьй и уроки | Просмотров: 826 | Добавил: CorsaR
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]