步骤:
1,登录MySQL
mysql - u root -p
2,选择mysql数据库
use mysql;
3,在mysql数据库的user表中查看当前用户的相关信息
select host, user, authentication_string, plugin from user;
4,授权root用户的所以权限并设置远程访问
GRANT ALL ON *.* TO 'root'@'%';
5,熟悉权限
flush privileges;
6,访问数据库
远程访问数据库的可视化工具比较多如:Navicat、SQLyog、MySQL workbench 等,
我这里使用 Navicat
输入访问的 host 和密码,报 2059 错误,这是因为 MySql8.0 版本
和 5.0 的加密规则不一样,而现在的可视化工具只支持旧的加密方式。
此问题有两种方法,
一种是更新 Navicat 驱动来解决此问题,另一种是将 MySQL 用户登录的加密规则修改为
mysql_native_password,第一种方法我试过了没有起作用,我这里采用第二种方法。
方法一:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
方法二:
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
7,刷新权限
FLUSH PRIVILEGES;
8,开启3306端口
INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
2、设置防火墙允许3306端口
vi /etc/sysconfig/iptables
添加
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
(注意添加在-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited之前,否则可能导致规则不生效)
重启防火墙service iptables restart