使用Dbeaver连接不上mysql数据库
连接失败,弹窗Access denied for user 'root'@'localhost' (using password: YES)
用户“root”@“localhost”的访问被拒绝(使用密码:YES)
尝试网上的方法都失败了,因为我的密码什么的都是正常的。
一、尝试新建MySQL
用户,短暂连接成功,后续使用连接失败。
在MySQL中创建一个名为sherber
,密码为123456
的用户,以及授予该用户对所有数据库的全部权限的步骤如下:
-
使用管理员账户登录 MySQL:
mysql -u root -p
输入管理员密码以登录。
-
创建新用户:
CREATE USER 'sherber'@'localhost' IDENTIFIED BY '123456';
-
授予权限:
GRANT ALL PRIVILEGES ON *.* TO 'sherber'@'localhost' WITH GRANT OPTION;
这授予了用户
sherber
对所有数据库的全部权限,包括WITH GRANT OPTION
,使其具有授予其他用户权限的能力。 -
刷新权限:
FLUSH PRIVILEGES;
-
退出 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用户都能连接成功数据库: