一、版本相关
1. CentOS7
# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (AltArch)
2. Mysql
# mysql -V
mysql Ver 14.14 Distrib 5.7.17, for Linux (i686) using EditLine wrapper
3. Windows10 安装 SQLyog
二、mysql数据库用户设置
1. 检查 user 表用户信息
1.1 登陆
[root@localhost ~]# mysql -uroot -p
Enter password:
1.2 检查
mysql> select host, user, authentication_string from mysql.user;
+-----------+-----------+-------------------------------------------+
| host | user | authentication_string |
+-----------+-----------+-------------------------------------------+
| localhost | root | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| localhost | mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
+-----------+-----------+-------------------------------------------+
2 rows in set (0.00 sec)
1.3 创建用户 admin (也可以直接使用 root 用户,需要更新 host=%)
mysql> create user 'admin' identified by '123456'; -- 用户名:admin 密码:123456
Query OK, 0 rows affected (0.09 sec)
1.4 将 mysql 所有权限赋给 admin
mysql> grant all on *.* to 'admin'@'192.168.209.129' identified by '123456'; -- ip ‘192.168.209.129’ 获取可以参考 1.6
Query OK, 0 rows affected, 1 warning (0.02 sec)
赋权之扩展
使用mysql数据库
user mysql;
查看用户信息
select user, hout from user;
创建用户
create user 'admin' identified by '123456';
给新用户赋权
grant all on tableName.* to 'admin'@'your_client_host';
回收所有权限
revoke all on *.* from 'admin'@'your_client_host';
-- https://dev.mysql.com/doc/refman/8.0/en/revoke.html
刷新操作生效
flush privileges;
1.5 使操作生效
mysql> flush privileges;
Query OK, 0 rows affected (0.15 sec)
1.6 再次查询
mysql> select host, user, authentication_string from user;
+-----------------+-----------+-------------------------------------------+
| host | user | authentication_string |
+-----------------+-----------+-------------------------------------------+
| localhost | root | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| localhost | mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| 192.168.209.129 | admin | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| % | admin | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
+-----------------+-----------+-------------------------------------------+
4 rows in set (0.00 sec)
2. 在windows上使用 sqlyog 连接 mysql,如果成功则最好,如果报下面的错误,则说明防火墙没有对 3306 端口对外访问开权限
三、使用 firewalld 开启端口对外访问权限
1. 启动 firewalld
systemctl start firewalld
2. 开启 3306 访问权限
firewall-cmd --zone=public --add-port=3306/tcp --permanent #permanent永久生效,没有此参数重启后失效
firewall-cmd --reload #使配置生效
3. 再次使用 SQLyog 连接 Mysql
四、firewalld 基本操作命令
1. firewalld的基本使用
systemctl start firewalld #启动
systemctl stop firewalld #关闭
systemctl status firewalld #查看状态
systemctl disable firewalld #开机禁用
systemctl enable firewalld #开机启用
systemctl mask firewalld #锁定服务
systemctl unmask firewalld #取消锁定服务
2. systemctl是CentOS7的服务管理工具中主要的工具,它融合之前service和chkconfig的功能于一体。
systemctl start firewalld.service #启动一个服务
systemctl stop firewalld.service #关闭一个服务
systemctl restart firewalld.service #重启一个服务
systemctl status firewalld.service #显示一个服务的状态
systemctl enable firewalld.service #在开机时启用一个服务
systemctl disable firewalld.service #在开机时禁用一个服务
systemctl is-enabled firewalld.service #查看服务是否开机启动
systemctl list-unit-files|grep enabled #查看已启动的服务列表
systemctl --failed #查看启动失败的服务列表
3. 配置firewalld-cmd
firewall-cmd --version #查看版本
firewall-cmd --help #查看帮助
firewall-cmd --state #显示状态
firewall-cmd --zone=public --list-ports #查看所有打开的端口
firewall-cmd --reload #更新防火墙规则
firewall-cmd --get-active-zones #查看区域信息
firewall-cmd --get-zone-of-interface=eth0 #查看指定接口所属区域
firewall-cmd --panic-on #拒绝所有包
firewall-cmd --panic-off #取消拒绝状态
firewall-cmd --query-panic #查看是否拒绝
4. 那怎么开启一个端口呢?
firewall-cmd --zone=public --add-port=3306/tcp --permanent #配置一个端口,permanent永久生效,没有此参数重启后失效
firewall-cmd --zone=public --add-port=1000-2000/tcp --permanent #配置区间设置端口
firewall-cmd --reload #重新载入,是配置生效
firewall-cmd --zone= public --query-port=3306/tcp #查看
firewall-cmd --zone= public --remove-port=3306/tcp --permanent #删除端口
5. 当然你可以还原传统的管理方式
#执行一下命令:
systemctl stop firewalld #停止firewalld
systemctl mask firewalld #锁定firewalld
#并且安装iptables-services:
yum install iptables-services
systemctl enable iptables #设置开机启动
systemctl disable iptables #设置禁用启动
systemctl stop iptables
systemctl start iptables
systemctl restart iptables
systemctl reload iptables
service iptables save #保存设置
#开放某个端口 在vi /etc/sysconfig/iptables里添加
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
6. 再次使用 SQLyog 连接 Mysql