设置 Linux 服务器中 MySQL 允许远程访问

Posted Chinda

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设置 Linux 服务器中 MySQL 允许远程访问相关的知识,希望对你有一定的参考价值。

开启 MySQL 远程访问权限: 在linux系统上登陆mysql服务。

-- root 是用户名
[root@localhost ~]# mysql -u root -p
Enter password: --  输入密码

创建远程连接 MySQL 的用户:

-- 创建用户、密码及权限范围 第一个 roo t为用户名 @后为适用的主机,‘%’表示所有电脑都可以访问连接,第二个 root 为密码
mysql> GRANT ALL PRIVILEGES ON *.* TO \'root\'@\'192.168.0.2\' IDENTIFIED BY \'root\' WITH GRANT OPTION;                 
Query OK, 0 rows affected (1.57 sec)

-- 立即生效
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

 

查看数据库用户:

-- 使用 mysql 库
mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed

-- 查看用户
mysql> SELECT DISTINCT CONCAT(\'User: [\', user, \'\'\'@\'\'\', host, \'];\') AS USER_HOST FROM user;   
+---------------------------------------+
| USER_HOST                             |
+---------------------------------------+
| User: [root\'@\'127.0.0.1];             |
| User: [root\'@\'192.168.0.2];           |
| User: [root\'@\'::1];                   |
| User: [root\'@\'localhost];             |
| User: [root\'@\'localhost.localdomain]; |
+---------------------------------------+
5 rows in set (0.00 sec)

创建成功。

查看端口:

mysql> show global variables like \'port\';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| port          | 3306  |
+---------------+-------+
1 row in set (0.01 sec)

 

开启3306端口:

[root@localhost ~]# vim /etc/sysconfig/iptables
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
                                                                                                                       
"/etc/sysconfig/iptables" 14L, 543C  

 注意:一定要加在后两行的前面。

 

重启防火墙:

[root@localhost ~]# service iptables restart
iptables:将链设置为政策 ACCEPT:filter                    [确定]
iptables:清除防火墙规则:                                 [确定]
iptables:正在卸载模块:                                   [确定]
iptables:应用防火墙规则:                                 [确定]

 

 查看服务器ip地址:

[root@localhost ~]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0C:29:16:F4:E6  
          inet addr:192.168.0.123  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: hjjj:jjji::iii:oooo:oooo:ioio/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2931 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1631 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:322681 (315.1 KiB)  TX bytes:266043 (259.8 KiB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

 

连接测试:

 

以上是关于设置 Linux 服务器中 MySQL 允许远程访问的主要内容,如果未能解决你的问题,请参考以下文章

Linux下mysql允许远程连接怎么设置

Linux 如何开启MySQL远程访问权限 允许远程连接

Linux下mysql允许远程连接怎么设置

如何打开MySQL中root账户的远程登录

Linux下mysql允许远程连接怎么设置

Linux下mysql允许远程连接怎么设置