出现此问题的原因:
1 数据库未对所有连接授权
2 防火墙未关闭或未开放3306端口
解决办法1:
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;
命令解释如下:
*.*:第一个*代表数据库名;第二个*代表表名 (指所有数据库里的所有表都授权给用户,若只授权某数据库或数据库下某张表,则把*替换成数据库名和表即可)
root:授予root账号
%:表示授权的IP 此处可以指定IP,这里代表任意的IP地址都能访问MySQL数据库
123456:账号的密码,这里密码自己替换成自己的root密码
FLUSH PRIVILEGES;:刷新权限信息
设置完成后 若还未成功连接,则可能是防火墙的原因
解决办法2:
1) systemctl start firewalld 启动防火墙
2) firewall-cmd --zone=public --add-port=3306/tcp --permanent 将3306端口添加到防火墙白名单。注:--permanent 永久生效,没有此参数重启后失效
3) firewall-cmd --reload 重启防火墙