如何在centos中启用mysql的远程访问?

Pun*_*eet 13 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';
Run Code Online (Sandbox Code Playgroud)

但无法连接.我正在使用heidi sql进行连接.

mat*_*nco 13

以下编辑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
Run Code Online (Sandbox Code Playgroud)

编辑后点击 service mysqld restart

登录到mysql并点击此查询:

GRANT ALL ON foo.* TO bar@'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

  • 最后一个命令不起作用.它说'iptables v1.4.7:不能使用-i和OUTPUT' (17认同)
  • 完全删除-i参数,因为OUTPUT规则不需要它 (3认同)

小智 13

在/etc/my.cnf中绑定地址XXX.XX.XX.XXX

评论行:

跳过网络

要么

跳过外部锁定

编辑后点击 service mysqld restart

登录到mysql并点击此查询:

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

FLUSH PRIVILEGES;
quit;
Run Code Online (Sandbox Code Playgroud)

添加防火墙规则:

iptables -I INPUT -i eth0 -p tcp --destination-port 3306 -j ACCEPT
Run Code Online (Sandbox Code Playgroud)