前期已经进行了MySQL的安装和设置,但想要远程访问MySQL和让MySQL使用更安全,还需要进行防火墙和安全设置,下面就是相关设置的具体步骤:
防火墙设置:
远程访问MySQL,需开放端口3306
使用firewall-cmd 命令:
[root@VM_0_14_centos ~]#firewall-cmd --permanent --zone=public --add-port=3306/tcp
如果提示 success 则继续执行:
[root@VM_0_14_centos ~]#firewall-cmd --permanent --zone=public --add-port=3306/udp
继续提示success则成功开放了所有端口。
重新启动防火墙使规则生效:
[root@VM_0_14_centos ~]#firewall-cmd –reload
过程中遇到的问题及解决方法:
在开放端口过程中,执行# firewall-cmd --permanent--zone=public --add-port=3306/tcp
命令出现FirewallD is not running 错误,解决办法如下:
1、通过systemctl status firewalld查看firewalld状态,发现当前是dead状态,即防火墙未开启。
[root@VM_0_14_centos ~]#systemctl status firewalld
● firewalld.service
Loaded: masked (/dev/null; bad)
Active:inactive (dead)
2、通过systemctl start firewalld开启防火墙,再次出现Failed to start firewalld.service:Unit is masked 错误,下面为解决方法:
[root@VM_0_14_centos~]# systemctl start firewalld
Failedto start firewalld.service: Unit is masked.
执行命令,即可实现取消服务的锁定
[root@VM_0_14_centos ~]# systemctl unmask firewalld
下次需要锁定该服务时执行
[root@VM_0_14_centos ~]# systemctl mask firewalld
3、通过systemctl start firewalld开启防火墙,没有任何提示即开启成功。
4、再次通过systemctl status firewalld查看firewalld状态,显示running即已开启了。
[root@VM_0_14_centos ~]# systemctlstatus firewalld
● firewalld.service - firewalld -dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled;vendor preset: enabled)
Active: active (running) since Sun 2018-04-08 15:08:38 CST; 5s ago
Docs: man:firewalld(1)
Main PID: 7458 (firewalld)
CGroup: /system.slice/firewalld.service
└─7458 /usr/bin/python -Es/usr/sbin/firewalld --nofork --nopid
5、如果要关闭防火墙设置,可能通过systemctl stop firewalld这条指令来关闭该功能。
6、再次执行执行firewall-cmd --permanent --zone=public--add-port=3306/tcp,提示success,表示设置成功,这样就可以继续后面的设置了。
MySQL安全设置:
服务器启动后,执行以下命令:
[root@VM_0_14_centos ~]# mysql_secure_installation
输入root原始密码(初始化安装的话为空),接下来,为了安全,MySQL会提示你重置root密码,移除其他用户账号,禁用root远程登录,移除test数据库,重新加载privilege表格等,只需要输入y继续执行即可。
直到出现 ... skipping. All done! 则完成设置。
到这里,MySQL安装就已经全部完成。