我不得不安装mysql 8.0,因为以前的版本崩溃。
现在我在设置root密码时遇到了麻烦。默认的空密码不起作用,我试过用root
,mysql
作为密码,但它们都不起作用。
我已经创建了初始化文件来重置密码。很遗憾,我的密码没有被接受,这是我的日志:
2018-02-16T10:12:22.962733Z 0 [Warning] [MY-010139] Changed limits: max_open_files: 5000 (requested 8161)
2018-02-16T10:12:22.962815Z 0 [Warning] [MY-010142] Changed limits: table_open_cache: 2419 (requested 4000)
2018-02-16T10:12:23.160066Z 0 [System] [MY-010116] /usr/sbin/mysqld (mysqld 8.0.4-rc-log) starting as process 20059 ...
2018-02-16T10:12:24.013727Z 0 [Warning] [MY-010068] CA certificate ca.pem is self signed.
2018-02-16T10:12:24.026122Z 0 [Warning] [MY-010319] Found invalid password for user: 'root@localhost'; Ignoring user
2018-02-16T10:12:24.043758Z 6 [Warning] [MY-010319] Found invalid password for user: 'root@localhost'; Ignoring user
2018-02-16T10:12:24.050668Z 0 [System] [MY-010931] /usr/sbin/mysqld: ready for connections. Version: '8.0.4-rc-log' socket: '/var/lib/mysql/mysql.sock' port: 3306 MySQL Community Server (GPL).
下面是我当前的init文件内容:
SET GLOBAL validate_password.policy = 'LOW';
UPDATE mysql.user
SET authentication_string = PASSWORD('new_password'), password_expired = 'N'
WHERE User = 'root' AND Host = 'localhost';
FLUSH PRIVILEGES;
我试过很多不同的密码,但没有一个成功。我试过用特殊字符和数字创建超过16个字符的密码,但没有任何效果。有什么建议可以让我重置密码并真正开始使用DB吗?
4条答案
按热度按时间kupeojn61#
如果你想执行mysql init文件,你需要在启动mysqld可执行文件时传递
--init-file
选项。您可以使用
--initialize-insecure
www.example.com初始化MySQL服务器示例https://dev.mysql.com/doc/refman/8.0/en/server-options.html#option_mysqld_initialize-insecure,为root用户设置空密码。你也可以用
--skip-grant-tables
启动mysqld来连接到mysql而不需要任何授权检查来重置root密码。建议用--skip-networking
选项启动,并使用unix套接字连接到mysql,以最大限度地减少mysql服务器对其他用户的暴露。62o28rlo2#
如果您可以登录到MySQL服务器,并希望通过查询更改密码,您可以通过以下方式进行更改:
或删除root密码:
感谢这个博客:https://juejin.im/entry/5b06698cf265da0db3501fdd
fsi0uk1n3#
如果您尚未重置密码,请在输入以下命令时:
它会要求输入root密码。2你知道root密码是什么吗?3在这里可以找到:
在这里你可以找到root的默认密码。然后运行以下命令:
然后输入该密码。之后输入一个新密码。在mysql server 8中允许使用弱密码。所以尝试输入一个类似哈希密码的密码。重新输入该密码,然后完成。:)
c9qzyr3d4#
我遇到了同样的问题。看起来他们用新版本改变了初始身份验证步骤。给出了here的说明。基本上是:
(use密码-或登录到mysql_secure_installation)
注意:他们也从validate_password“插件”转换为“组件”--所以如果你不需要他们坚持的安全级别,而想要一个你能记住的密码,你就必须在mysql中运行以下代码:
编辑:他们还修改了身份验证插件以支持更好的加密。
然后使用以下命令调整用户密码:
您可能还应该在/etc/my.cnf中添加(或者取消注解,如果已经存在的话)下面的行