mysql linux远程连接失败处理

问题一:远程连接不上mysql,提示Access denied

一、通过下面命令连接不上数据库

mysql -uroot -p
mysql -uroot -h 10.5.122.100 -P 3306 -p

报错信息如下:

ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: YES)

二、解决方式
1.检查用户权限:检查 root 用户的权限确保它有连接过去的权限,可以通过从另一个可以连接的服务器登录 MySQL 后,执行以下命令来检查权限:

SELECT host, user FROM mysql.user WHERE user='root';

2.发现 root 用户没有连接的权限,需要给予它相应的权限。您可以通过以下步骤来添加连接权限(例子为本地连接):

GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY 'yourpassword' WITH GRANT OPTION;
FLUSH PRIVILEGES;

命令解说:

1.ON .
这指定了权限适用的数据库和表。. 表示所有数据库(第一个星号)的所有表(第二个星号)。
2.TO ‘root’@‘localhost’
这指定了哪个用户将获得这些权限。在这里,它指定了用户名为 root,并且这些权限仅当用户从 localhost(即MySQL服务器所在的本地计算机)连接时有效。
3.IDENTIFIED BY ‘yourpassword’
这指定了用户的密码,替换为实际的密码。
4.WITH GRANT OPTION
这允许该用户进一步授予其他用户权限。
5.FLUSH PRIVILEGES
使所有权限或密码更改立即生效,需要执行这个命令来应用更改。

问题二:远程连接不上mysql,提示caching_sha2_password

一、通过archery等工具连接报错

报错信息如下:

2059,Authentication plugin ‘caching_sha2_password‘ cannot be loaded: /usr/lib64/mysql/plugin/caching_sha2_password.so:no such file or directory

原因:
新版本的MySQL新特性导致,导致认证方式有问题
MySQL 8.0版本默认的认证方式是caching_sha2_password,而像MySQL 5.7版本则为mysql_native_password

二、解决方式
方式一:
修改密码的加密方式,对后续的新建用户有效,而前期的老用户默认密码加密方式还是(caching_sha2_password)
找到my.ini文件,在[mysqld]下添加

default_authentication_plugin=mysql_native_password

方式二:

-- 创建新用户rootnew,设所有ip均可登录,密码root
create user rootnew@'%' identified WITH mysql_native_password BY 'root';
-- grant给hyl赋予所有的库和表的权限。
grant all privileges on *.* to rootnew@'%' with grant option;
-- 刷新
flush privileges;

通过新账号登录成功。。。。飘走了

----编写者:梦想的边缘

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值