ERROR 1045 (28000): Access denied for user 'root'@'%' (using password: YES)
1、登录服务器上的mysql
mysql -u root -p
2、给'root'@'%'添加权限
mysql> grant all privileges on *.* to 'root'@'%' with grant option;
3、报错
ERROR 1045 (28000): Access denied for user 'root'@'%' (using password: YES)
4、解决
本来参考这篇文章,但是在skip-grant-tables模式下无法使用grant命令去做权限操作
stackoverflow.com/questions/7…
没办法只能重置mysql
// 停止mysql服务
service mysqld stop
// 删除数据目录
目录在 /var/lib/mysql 这个路径下
sudo rm -rf /var/lib/mysql
// 初始化 MySQL
mysqld --initialize
// 重启 MySQL 服务
sudo systemctl restart mysqld
// 如果没有权限启动再执行下面代码
sudo chown -R mysql:mysql /var/lib/mysql
// 查看初始密码
cat /var/log/mysql/mysqld.log | grep password
// 登录
mysql -u root -p
// 到上面已经解决了该问题,下面是创建远程连接的后续工作
2002 - Can't connect to server on '47.106.252.87' (36)
使用navicat创建远程连接的时候报错
首先查看mysql是否启动,我的是正常的
service mysql status
然后确保防火墙允许3306端口访问
firewall-cmd --zone=public --query-port=3306/tcp
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload
在mysql命令行查看端口
SHOW VARIABLES LIKE 'port';
返回如下
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| port | 0 |
+---------------+-------+
1 row in set (0.01 sec)
说明3306端口没被监听,检查了配置文件没有问题,再次使用万能的重启大法
sudo systemctl restart mysqld
解决了