繁体   English   中英

用户'root'@'localhost'的访问被拒绝

[英]Access denied for user 'root'@'localhost'

我经历了所有相似或相同的问题(例如thisthis ),但仍然无法解决问题。

我在Xenial上使用MySQL 5.7.12。 我不记得在安装过程中设置任何密码(如果要求,我提供的密码是空的)。

我试图用通过密码重置去--skip-grant-tables ,描述在这里 ,它更新了数据库行,但我仍然无法登录。

使用sudo dpkg-reconfigure mysql-server-5.7没有任何作用,我得到以下信息:

Checking if update is needed.
This installation of MySQL is already upgraded to 5.7.12, use --force if you still need to run mysql_upgrade
$ sudo dpkg-reconfigure --force mysql-server-5.7
Checking if update is needed.
This installation of MySQL is already upgraded to 5.7.12, use --force if you still need to run mysql_upgrade

有任何想法吗?

MySQL 5.7在安装时会自行生成一个随机的root密码。

这是MySQL 5.7.4的新变化,并在发行说明中进行了描述: https : //dev.mysql.com/doc/relnotes/mysql/5.7/en/news-5-7-4.html

安装过程仅创建一个根帐户'root'@'localhost',自动为此帐户生成一个随机密码,并标记该密码已过期。 MySQL管理员必须使用随机密码以root用户身份连接,并使用SET PASSWORD选择新密码。 (可以在运行脚本的有效用户的主目录的.mysql_secret文件中找到随机密码。)

我找不到.mysql_secret文件,但是在MySQL错误日志(例如Linux中的/var/log/mysqld.log)中也输出了随机密码。 该通知如下所示:

2016-07-11T15:59:54.922316Z 1 [Note] A temporary password is generated for root@localhost: f14_W1lN7FfP

正确重新安装有所帮助。 删除了所有与之相关的内容( 此指令 ,但重要的是指定mysql的版本,例如apt-get --yes purge mysql-server-5.7 mysql-client-5.7 ,并且我还删除了mysql-common和所有依赖项以确保)。

然后再次安装( apt-get install mysql-server mysql-client ),当它要求输入密码时,这次,我给了它一个。 现在可以使用了。

您可以重新安装所有内容,而我做到了。 我最初使用macos软件包安装程序进行安装。 那没有带我去任何地方。

因此,卸载了所有内容,然后升级了brew,然后通过brew安装。 运行mysql shell被证明是一件麻烦事。 最终有效的是mysql -u root -p

我在本地主机上运行它,因此证明不需要root密码。 奇怪的是, mysql -u root -p <password>抛出了“拒绝访问”消息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM