Mysql 8.0无法重置root密码

epi*_*duo 2 mysql centos rhel yum mysql-8.0

我不得不安装mysql 8.0因为以前的版本崩溃了.
现在我正在努力设置root密码.默认的空密码不起作用,我试过root,mysql作为密码但它们无法正常工作.
我已经创建了init文件来重置密码.不幸的是,我的密码不被接受,这是我的日志:

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).
Run Code Online (Sandbox Code Playgroud)

这是我当前的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;
Run Code Online (Sandbox Code Playgroud)

我尝试了很多不同的密码,没有用.我尝试使用特殊字符和数字创建长度超过16个字符的密码,没有任何内容.有什么建议我可以做什么来重置密码并实际开始使用数据库?

Dar*_*ryl 8

我有同样的问题.看起来他们用新版本更改了初始身份验证步骤.这里给出说明.基本上:

$ sudo service mysqld start
$ sudo grep 'temporary password' /var/log/mysqld.log
Run Code Online (Sandbox Code Playgroud)

(在下面使用该密码 - 或登录mysql_secure_installation)

$ mysql -uroot -p
> ALTER USER 'root'@'localhost' IDENTIFIED BY 'newPasswd';
Run Code Online (Sandbox Code Playgroud)

注意:他们也从validate_password"插件"切换到"组件" - 所以如果你不需要他们坚持的安全级别并想要一个你能记住的密码,你必须在mysql中运行以下内容:

> UNINSTALL COMPONENT 'file://component_validate_password';
Run Code Online (Sandbox Code Playgroud)

编辑:他们还更改了身份验证插件以支持更好的加密.如果您正在使用Workbench或其他附加组件,并在这些行中出现错误

Authentication plugin 'caching_sha2_password' cannot be loaded:
/usr/local/mysql/lib/plugin/caching_sha2_password.so not found
Run Code Online (Sandbox Code Playgroud)

然后使用以下内容调整用户密码:

> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'newPasswd';
Run Code Online (Sandbox Code Playgroud)

您可能还应该在/etc/my.cnf中添加(或取消注释,如果已经存在)以下行

default-authentication-plugin=mysql_native_password
Run Code Online (Sandbox Code Playgroud)