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

Posted

技术标签:

【中文标题】centos中如何开启mysql的远程访问?【英文标题】:How to enable remote access of mysql in centos? 【发布时间】:2014-07-07 04:14:11 【问题描述】:

我的 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连接。

【问题讨论】:

你需要连接MySQL而不是Apache,MySQL默认监听3306端口。 我使用端口 3306 连接。但无法连接。 【参考方案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 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: Can't use -i with OUTPUT' 完全删除 -i 参数,因为 OUTPUT 规则不需要它【参考方案2】:

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

评论行:

跳过网络

跳过外部锁定

编辑后点击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

【讨论】:

【参考方案3】:

如果允许 IP 到 mysql 服务器 linux 机器。您可以执行以下命令--

 nano /etc/httpd/conf.d/phpMyAdmin.conf  and add Desired IP.

<Directory /usr/share/phpMyAdmin/>
   AddDefaultCharset UTF-8
   Order allow,deny
   allow from all
   <IfModule mod_authz_core.c>
     # Apache 2.4
     <RequireAny>

    Require ip 192.168.9.1(Desired IP)

</RequireAny>
   </IfModule>
 <IfModule !mod_authz_core.c>
     # Apache 2.2
     Order Deny,Allow
     #Allow from All

     Allow from 192.168.9.1(Desired IP)

</IfModule>

更新后,请使用以下命令重新启动--

sudo systemctl restart httpd.service

【讨论】:

以上是关于centos中如何开启mysql的远程访问?的主要内容,如果未能解决你的问题,请参考以下文章

centos mysql开启远程访问

CentOS7和CentOS6怎样开启MySQL远程访问

CentOS下WDCP下的MYSQL开启远程连接

CentOS7和CentOS6怎样开启MySQL远程访问

CentOS 开启防火墙 firewall ,mysql 远程访问

Centos7安装mysql8.0,开启远程访问