数据库老是报错 ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)ERROR
解决办法
首先关闭数据库
service mysqld stop
设置使用命令跳过输入密码的过程
mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
然后无密码登录 数据库
mysql -uroot -p
然后使用数据库
use mysql
最后修改数据库密码
update user set authentication_string=PASSWORD('你的密码') where user='root';
如图所示
查看host有没有%
select host,user,authentication_string from mysql.user;
没有%
grant all privileges on *.* to root@'%'identified by '数据库密码';
刷新权限
flush privileges;
重启服务器
sudo service mysql restart
查看防火墙有没有开启
服务器防火墙没有开放3306端口
centos 有两种防火墙 FirewallD和iptables防火墙
centos7 使用的是FirewallD防火墙。
FirewallD 是 iptables 的前端控制器,用于实现持久的网络流量规则。它提供命令行和图形界面,在大多数 Linux 发行版的仓库中都有。与直接控制 iptables 相比,使用 FirewallD 有两个主要区别:
1.FirewallD 使用区域和服务而不是链式规则。
2.它动态管理规则集,允许更新规则而不破坏现有会话和连接。
FirewallD 是 iptables 的一个封装,可以让你更容易地管理 iptables 规则 - 它并不是 iptables 的替代品。虽然 iptables 命令仍可用于 FirewallD,但建议使用 FirewallD 时仅使用 FirewallD 命令。
1.FirewallD防火墙开放3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent