解决思路:
之前也遇到过这个问题,解决的途径也是五花八门,从百度和Google上也看到各种解决方案,基本上分以下几种:
1.没有给root对应的权限
-- @'192.168.1.123'可以替换为@‘%’就可任意ip访问
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.123' IDENTIFIED BY '' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;
2.直接用 UPDATE 更新 root 用户 Host, 但不推荐
mysql> UPDATE user SET Host='192.168.1.123' WHERE User='root' AND Host='localhost' LIMIT 1;
mysql> FLUSH PRIVILEGES;
以上2种方法如果都使用了,问题依然没有解决。于是继续在lnmp官网上找寻答案,结果终于找到了。https://lnmp.org/faq.html
MySQL/MariaDB无法远程连接,如何开启?
为了安全LNMP默认是禁止远程连接的,开启方法:https://bbs.vpser.net/thread-13563-1-1.html
直接通过iptables进行操作
1.查看已有的iptables规则,以序号显示
iptables -L -n --line-numbers
看命了我们发现3306是drop的,所以我们要删掉或者允许。
2.删除对应的DROP规则
iptables -D INPUT 6
3.查看iptables策略:
iptables -L
4.保存策略到指定文件(后面文件路径及文件名可自定义):
安装iptables-persistent,安装后它以守护进程的方式来运行,系统重启后可以自动将保存的内容加载到iptables中。当然前提也是需要先保存规则
apt-get install iptables-persistent
保存防火墙规则
<br />iptables-save > /etc/iptables/rules.v4
5.应用策略:
保存之后,可以通过iptables-restore命令载入
iptables-restore < /etc/iptables/rules.v4
输入 y
6.删除策略
需先cat /etc/iptables/rules.v4确认删除第几行,或者直接操作/etc/iptables/rules.v4文件也行:
iptables -D INPUT 2