连接失败,弹窗Access denied for user 'root'@'localhost' (using password: YES)
用户“root”@“localhost”的访问被拒绝(使用密码:YES)

在这里插入图片描述

尝试网上的方法都失败了,因为我的密码什么的都是正常的。

一、尝试新建MySQL用户,短暂连接成功,后续使用连接失败。

在MySQL中创建一个名为sherber,密码为123456的用户,以及授予该用户对所有数据库的全部权限的步骤如下:

  1. 使用管理员账户登录 MySQL:

    mysql -u root -p
    

    输入管理员密码以登录。

  2. 创建新用户:

    CREATE USER 'sherber'@'localhost' IDENTIFIED BY '123456';
    
  3. 授予权限:

    GRANT ALL PRIVILEGES ON *.* TO 'sherber'@'localhost' WITH GRANT OPTION;
    

    这授予了用户 sherber 对所有数据库的全部权限,包括 WITH GRANT OPTION,使其具有授予其他用户权限的能力。

  4. 刷新权限:

    FLUSH PRIVILEGES;
    
  5. 退出 MySQL:

    exit;
    

现在,名为sherber,密码为123456的用户已经创建,并且拥有相应的权限。请记住,为了系统的安全性,应该仅为用户授予其实际需要的最小权限。

通过使用命令查看当前用户

mysql -u root -p -h localhost -e "SELECT User, Host FROM mysql.user;"

+------------------+-----------+
| User             | Host      |
+------------------+-----------+
| mysql.infoschema | localhost |
| mysql.session    | localhost |
| mysql.sys        | localhost |
| root             | localhost |
| sherber          | localhost |
+------------------+-----------+

用户root无法使用,所以创建一个新用户,连接成功,后续使用数据库时,连接断开,之后就连接不上了。

二、原因分析

1.密码正确,还是显示上述问题,表面不是密码的问题,只不过Dbeaver只提醒用户访问失败。

2.之前下载过一次MySQL,后续重新下载,导致3306端口可能存在两个数据库

三、解决方案

1.使用everything查看my.ini,可以看到之前残留的my.ini和后续下载的my.ini:

在这里插入图片描述

2.打开过去的ini文件,看到端口设置3306:
在这里插入图片描述

3.所以打开我后续下载安装的my.ini文件,找到端口设置,设置端口为13306:

在这里插入图片描述

4.修改后,root用户和自己新创建的sherber用户都能连接成功数据库
在这里插入图片描述
在这里插入图片描述

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐