Если у вас есть полный доступ к вашему серверу (требуются права суперпользователя):
Шаг 1: отредактируйте my.cnf (обычно находится в / etc)
Найдите следующую строку: [mysqld]
и убедитесь, что строка skip-networking
закомментирована (или удалите строку) и добавьте следующую строку:
bind-address=YOUR-SERVER-IP
Например, если IP-адрес сервера MySQL равен 66.166.170.28, то весь блок должен выглядеть следующим образом:
[mysqld]
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
language = /usr/share/mysql/English
bind-address = 66.166.170.28
# skip-networking
.......
Где
- bind-address : IP-адрес для привязки.
- пропуск сети : вообще не слушайте соединения TCP / IP. Все взаимодействие с mysqld должно осуществляться через сокеты Unix. Этот параметр настоятельно рекомендуется для систем, где разрешены только локальные запросы. Поскольку вам необходимо разрешить удаленное подключение, эту строку следует удалить из my.cnf или перевести в состояние комментария.
Шаг 2: Предоставить доступ всем хостам
Запустите монитор MySQL с помощью этой команды: mysql
или /usr/local/mysql/bin/mysql
. Ваше приглашение оболочки теперь должно выглядеть так: mysql>
. Запустите эту команду:
GRANT ALL PRIVILEGES ON *.* TO 'USERNAME'@'%' IDENTIFIED BY "PASSWORD";
Где:
- ИМЯ ПОЛЬЗОВАТЕЛЯ - это имя пользователя, которое вы используете при подключении с использованием вашего php-скрипта.
- ПАРОЛЬ - это пароль, который вы используете при подключении.
Теперь вы должны сбросить привилегии MySQL. Запустите эту команду:
FLUSH PRIVILEGES;
Запустите эту команду для выхода из MySQL:
exit;
Шаг 3: перезапустите mysql deamon
/etc/init.d/mysqld restart
или
/etc/init.d/mysql restart
в зависимости от того, какой дистрибутив Linux работает на вашем сервере.