Centos相关

[linux] MySQL开启远程访问权限及防火墙开放3306端

2017-10-11  本文已影响127人  卓灬不凡
在Linux中装上mysql之后,发现windows中用navicat连接数据库失败,这是由于默认mysql的用户是没有远程访问的权限的,因此当navicat程序跟mysql数据库不在同一台服务器上时,我们需要开启mysql的远程访问权限才能正常访问mysql数据库。

1、登陆mysql

mysql -u root -p

2、root 用户授权

grant all privileges on *.* to root@'%' identified by 'rootpasswd ' with grant option;
// 这段指令允许所有用root用户输入密码登陆该mysql server,
// 如果将'%' 换成'192.168.1.124' ,那么只有'192.168.1.124'的主机可以登陆。 
// rootpasswd : 登录密码
FLUSH   PRIVILEGES;

防火墙开放3306端口 - Centos6

1、打开防火墙配置文件

vi /etc/sysconfig/iptables

2、增加下面一行

-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT

3、更改后的防火墙配置文件

# 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  

4、保存后重启防火墙

service iptables restart

注意:增加的开放3306端口的语句一定要在icmp-host-prohibited之前,否则将仍不能进行访问。

防火墙开放3306端口 - Centos7

一、firewalld 防火墙

语法命令如下:启用区域端口和协议组合

firewall-cmd [--zone=<zone>] --add-port=<port>[-<port>]/<protocol> [--timeout=<seconds>]
此举将启用端口和协议的组合。
端口可以是一个单独的端口 <port> 或者是一个端口范围 <port>-<port>。
协议可以是 tcp 或 udp。

查看 firewalld 状态

systemctl status firewalld

开启 firewalld

systemctl start firewalld

开放端口

// --permanent 永久生效,没有此参数重启后失效
firewall-cmd --zone=public --add-port=3306/tcp --permanent

重新载入

firewall-cmd --reload

查看

firewall-cmd --zone=public --query-port=3306/tcp

删除

firewall-cmd --zone=public --remove-port=3306/tcp --permanent

二、iptables 防火墙

也可以还原传统的管理方式使用 iptables

关闭firewalld防火墙

// 停止firewalld服务
systemctl stop firewalld
// 屏蔽服务让他不能自启
systemctl mask firewalld

安装iptables

yum install iptables-services

设置开机启动

systemctl enable iptables

操作命令

// 关闭服务
systemctl stop iptables
// 启动服务
systemctl start iptables
// 重启服务
systemctl restart iptables
// 显示服务状态
systemctl status iptables

在启动的时候会遇到这样的问题:Unit iptables.service failed to load
问题根源是在/etc/sysconfig/下面没有找到iptables文件。解决办法如下:
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
/usr/libexec/iptables/iptables.init save #保存成功
然后再执行
systemctl start iptables

上一篇下一篇

猜你喜欢

热点阅读