我尝试了 StackOverflow 的多种解决方案,但没有取得任何成功。 我在 Mac OSX (Sierra 10.12.3) 上尝试创建新的数据库和用户。 从终端我输入:
mysql -u root
输出此错误:
错误 1045 (28000):用户“root”@“localhost”访问被拒绝(使用密码:NO)
为了尝试解决这个问题,我从“系统偏好设置”中停止了 mysql,然后从终端输入:
sudo mysqld_safe —skip-grant-tables
我打开了第二个选项卡并输入:
mysql -u root
然后从mysql中:
update mysql.user set password_expired = 'N', authentication_string=PASSWORD('newpassword') where user = 'root';
flush privileges;
然后我重新启动计算机(使用 CMD + C 杀死进程不起作用)。 重新启动后,尝试
mysql -u root
仍然会产生相同的错误。
我能够通过 MySQL 客户端和非 root 用户访问 mysql。
如有任何帮助,我们将不胜感激。
出于安全原因,mysql -u root 将无法工作,直到您在命令中传递 -p 为止,因此请尝试以下方式
mysql -u root -p[Enter]
//enter your localhost password
mysql -u root -p;
mysql会要求输入密码
确认一下:您确定您运行的是 MySQL 5.7,而不是 MySQL 5.6 或更早版本。并且插件列包含“mysql_native_password”。 (在MySQL 5.7之前,密码哈希存储在名为password的列中。从MySQL 5.7开始,密码列被删除,密码存储在authentication_string列中。)并且您还验证了authentication string的内容与 PASSWORD('mysecret') 的返回值匹配。另外,我们对 mysql.user 表使用 DML 而不是使用 SET PASSWORD FOR 语法是否有原因? – spencer7593
所以基本上只需确保插件列包含“mysql_native_password”。
不是我的工作,但我阅读了评论并注意到这被声明为答案,但尚未作为可能的答案发布。
只需使用:
$ sudo mysql
没有“-u root”参数。
如果因为某种原因需要跳过密码提示,可以在命令中输入密码(危险)
mysql -u root --password=secret
您必须通过 XAMPP 文件夹中的 xampp-controle.exe 运行 mysql。登录后:
mysql -u root
是否有可能 root 密码不是您想象的那样?您是否检查过 /root/.mysql_secret 文件中的密码?这是从版本 5.7 开始生成的自动 root 密码的默认位置。
cat /root/.mysql_secret
尝试这个(在Windows上,我不知道在其他系统上如何),如果你已经更改了密码,现在不起作用。
1)杀死mysql 2)备份/mysql/data文件夹 3)转到文件夹/mysql/backup 4)将文件从/mysql/backup/mysql文件夹复制到/mysql/data/mysql(重写) 5)运行mysql
在我的 Win7 上的 XAMPP 中它可以工作。
@Niagaradad 的评论对我有帮助。我一直输入错误的密码。
注意错误消息
错误 1045 (28000):用户“ayaz”@“localhost”访问被拒绝(使用密码:YES)它说,密码:是。这意味着我将密码发送到 SQL,但这是错误的。
通常
root 帐户没有密码(如果您没有设置密码)。如果你已经通过自制程序安装了mysql那么root帐户将没有密码。
这是评论。
所以,不完全一样。 NO 表示您没有向 MySQL 发送密码。 YES 表示您正在向 MySQL 发送密码,但密码不正确。你安装MySQL的时候有没有专门给mysql root用户设置密码?默认情况下没有密码,因此您可以使用 mysql -u root -p 并按 Enter 键。
Edit Inbound Rules
才能接受
All Traffic
。否则,默认的
TCP/IP
约束会阻止我从本地计算机创建数据库。
初始化数据库”中更新您的密码。
需要一一打开两个终端:
sudo systemctl 停止 mariadb
sudo mysqld_safe --skip-grant-tables &
mysql
同花特权; 更改用户'root'@'localhost'由''识别; 退出;
sudo mysqladmin shutdown && sudo systemctl 启动 mariadb && 退出