Как включить удаленный доступ к mysql в centos?

Мой apache работает на 8113 порт вместо 80.

Я хочу удаленно получить доступ к моей базе данных mysql. Я пробовал следующие шаги.

Bind-address XXX.XX.XX.XXX in /etc/my.cnf
Create Database 
and run the command 
GRANT ALL PRIVILEGES ON *.* TO  'USERNAME'@'IP'  IDENTIFIED  BY  'PASSWORD';

Но не удается подключиться. Я использую heidi sql для подключения.

Ответ 1

поэтому сделайте следующее редактирование my.cnf:

[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 = xxx.xxx.xxx.xxx
# skip-networking

после редактирования нажмите service mysqld restart

войдите в MySQL и нажмите этот запрос:

GRANT ALL ON foo.* TO [email protected]'xxx.xxx.xxx.xxx' IDENTIFIED BY 'PASSWORD';

Вот так, убедитесь, что ваш iptables разрешает соединение с 3306, если не поставлено следующее:

iptables -A INPUT -i lo -p tcp --dport 3306 -j ACCEPT

iptables -A OUTPUT -p tcp --sport 3306 -j ACCEPT

Ответ 2

Bind-address XXX.XX.XX.XXX в /etc/my.cnf

строка комментария:

пропуск сети

или

пропуск внешнего запирания

после редактирования hit service mysqld restart

войдите в mysql и нажмите этот запрос:

GRANT ALL PRIVILEGES ON dbname.* TO 'username'@'%' IDENTIFIED BY 'password';

FLUSH PRIVILEGES;
quit;

добавить правило брандмауэра:

iptables -I INPUT -i eth0 -p tcp --destination-port 3306 -j ACCEPT