我经历了所有类似或相同的问题(例如this和this),但仍然无法解决问题。
我在Xenial上并拥有MySQL 5.7.12。我不记得在安装过程中设置了任何密码(如果有问题,我提供了空密码)。
我尝试使用--skip-grant-tables
进行密码重置,如here所述,它更新了数据库行,但我仍然无法登录。
使用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
有什么想法吗?
答案 0 :(得分:2)
MySQL 5.7在安装时自行生成随机root密码。
这是MySQL 5.7.4中的一项新变化,并在发行说明中进行了描述:https://dev.mysql.com/doc/relnotes/mysql/5.7/en/news-5-7-4.html
安装过程只创建一个root帐户, ' 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
答案 1 :(得分:1)
正确的重新安装有帮助。删除了所有关联的内容(this instruction,但指定mysql的版本很重要,例如apt-get --yes purge mysql-server-5.7 mysql-client-5.7
,并且我还删除了mysql-common和所有依赖项以确保。
然后再次安装(apt-get install mysql-server mysql-client
),当它要求输入密码时,这一次,我给了它一个。它现在有效。
答案 2 :(得分:1)
你可以重新安装一切,我做了。我最初使用macos包安装程序安装。这没让我到任何地方。
所以卸载了所有东西,然后升级了brew,并通过brew安装。运行mysql shell证明了一件混乱的事情。最终有效的是mysql -u root -p
。
我在localhost上运行它,因此不需要root密码。奇怪的是,mysql -u root -p <password>
抛出了“拒绝访问”的消息。