cpl*_*cpl 36 mysql database connection
我一直在尝试在工作台上创建一个新的数据库连接.但是,每次测试连接时都会显示一条错误消息
无法连接到127.0.0.1:3306的mysql,用户root访问被拒绝用户'root'@'localhost'(使用密码:YES)
我不知道这个错误的原因是什么.我已经尝试卸载并重新安装我的工作台6.1和mysql服务器5.6,但错误仍未解决.
ydo*_*oow 30
首先检查它是否是工作台或连接问题.
1)在你的窗口运行'cmd'打开终端
试试两个
图2a) mysql -u root -p -h 127.0.0.1 -P 3306
图2b) mysql -u root -p -h > localhost -P 3306
3)如果连接良好,您将收到密码提示,看看您是否可以使用正确的密码连接.
如果您的连接被拒绝,只需授予权限
mysql >GRANT ALL ON [DatabaseName].* TO 'root'@'127.0.0.1' IDENTIFIED BY '[PASSWORD]';
Run Code Online (Sandbox Code Playgroud)
如果您的连接在此处被接受,则它就像工作台配置问题.
小智 13
我有同样的问题.
我在Ubuntu上安装了新的mysql但是我把mysql密码留空了,结果我无法以任何方式连接到mysql.
最近我发现有一个用户表,其中包括名称,主机,密码和一些插件.所以对于我的用户root @ localhost mysql安装时分配了一个名为auth_socket的插件,这让Unix用户"root"登录为mysql用户"root"而没有密码,但是不允许以另一个Unix用户身份登录.所以要解决这个问题,你应该关闭这个插件并设置通常的身份验证:
小智 9
在运行 MySQL 5.7(及更高版本)的 Ubuntu 系统中,root MySQL 用户默认设置为使用auth_socket 插件而不是密码进行身份验证。在许多情况下,这允许更高的安全性和可用性,但是当您需要允许外部程序(例如,phpMyAdmin)访问用户时,它也会使事情复杂化。
如果您在以root身份连接到 MySQL 时更喜欢使用密码,则需要将其身份验证方法从auth_socket 切换到mysql_native_password。 来源
从终端打开 MySQL 提示符:
$ sudo mysql
Run Code Online (Sandbox Code Playgroud)
接下来,使用以下命令检查每个 MySQL 用户帐户使用的身份验证方法:
mysql > SELECT user,authentication_string,plugin,host FROM mysql.user;
Run Code Online (Sandbox Code Playgroud)
您将看到 root 用户实际上使用 auth_socket 插件进行身份验证。要将 root 帐户配置为使用密码进行身份验证,请运行以下ALTER USER命令。请务必将密码更改为您选择的强密码:
mysql > ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
Run Code Online (Sandbox Code Playgroud)
然后,运行FLUSH PRIVILEGES它告诉服务器重新加载授权表并使您的新更改生效:
mysql > FLUSH PRIVILEGES;
Run Code Online (Sandbox Code Playgroud)
再次检查每个用户使用的身份验证方法,以确认 root 不再使用auth_socket 插件进行身份验证:
mysql > SELECT user,authentication_string,plugin,host FROM mysql.user;
Run Code Online (Sandbox Code Playgroud)
您将在输出中看到 root MySQL 用户现在使用密码进行身份验证。
小智 5
您应该安装在本地主机中托管的 mysql 服务器。然后安装工作台。如果您仍然收到错误 GOTO:
(在 MAC 中:)
系统偏好设置>Mysql(会在底部列出,否则您的机器中未安装服务器)。
检查服务器状态并启动Mysql 服务器。
尝试使用默认端口号连接到 localhost。
试试这个,对我有用!
sudo mysql -u root -p
Run Code Online (Sandbox Code Playgroud)
在终端内输入:
CREATE USER 'admin'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost' WITH GRANT OPTION;
Run Code Online (Sandbox Code Playgroud)
然后在MySQL Workbench中编辑连接并将根名称更改为admin。