Как разрешить удаленный доступ к моей базе данных? - PullRequest
0 голосов
/ 07 февраля 2011

Я сейчас обращаюсь к базе данных по $_SESSION['connection'] = odbc_connect('Driver={MySQL ODBC 5.1 Driver};Server=localhost;Database=mysql;Option=3;', 'root', '');

Помимо того, что мне нужно получить пароль для этой учетной записи (и, возможно, даже использовать другую учетную запись, отличную от root? на нескольких сайтах.

Я хочу использовать один и тот же код на каждом сайте, хотя заранее не могу знать IP-адреса. Как мне это сделать? Должен ли я просто попросить своего ИТ-специалиста установить DNS-преобразование для чего-то вроде myDatabaseServer и затем заменить Server=localhost на Server=myDatabaseServer в вызове odbc_connect ()? Или мне нужно что-то сделать с менеджером ODBC на панели управления Windows?

Хммм, я, вероятно, должен запутать или дополнить код перед тем, как его разделить ...


Обновление: я нашел этот вопрос , который сказал

In your MySQL configuration file (my.cnf), you need the following at least:
port         = 3306          # Port MySQL listens on 
bind-address = 192.168.1.15  # IP address of your server 
# skip-networking            # This should be commented out to enable networking

Я предполагаю, что bind-address может быть myDatabaseServer, поэтому мне не нужно редактировать файл конфигурации для каждого удаленного сайта (?)

Также сказано: GRANT ALL ON test.* TO 'root'@'192.168.1.15' IDENTIFIED BY ''; Так что же это за команда, которую нужно запустить один раз в базе данных? Но я не могу знать IP адрес заранее? На самом деле доступ может понадобиться нескольким пользователям - могу ли я подстановить его под 192.168. . ? Так ли это действительно нужно? Можно ли как-то настроить его один раз, не зная заранее, какой диапазон сетевых адресов будет использовать каждый пользователь? что за база данных есть?)

Ответы [ 2 ]

1 голос
/ 18 января 2012

Просто добавлю к точному ответу Сломохо: не забывайте flush privileges; в mysql после внесения любых изменений в привилегии.

1 голос
/ 07 февраля 2011

bind-address может быть установлен только на IP-адрес, а не на имя домена, и относится к исходящему IP-адресу, с которым будет связан сервер mysql.

Однако при внешнем подключении вы всегда можете просто установить bind-address на 0.0.0.0, чтобы сервер MySQL принимал входящие 3306 подключений через любой интерфейс, к которому он имеет доступ. Администратор будет присваивать имя серверу, и вы сможете подключиться к нему под этим именем.

Как только он установлен правильно, вам просто нужно настроить соответствующие учетные данные пользователя, чтобы внешний пользователь мог подключиться с данного IP (или шаблона).

например.

GRANT ALL PRIVILEGES ON *.* TO USERNAME@IP IDENTIFIED BY "PASSWORD";

См. Здесь для внешних шаблонов IP.

Конечно, вы должны использовать учетную запись с ограниченным доступом в целом и разрешить доступ только к определенной базе данных / таблицам (обычно допускается база данных *)

...