当我使用方法重置root密码描述here,启动服务器,如:
mysqld --init-file=/home/username/init-file
......这是行不通的。它给了我一个错误:
[Server] Could not open /var/log/mysqld.log file for error logging: Permission denied.
权限都还好。
当我使用Server启动就好了:
service mysqld start
Fedora的28时,MySQL 8.0.12
UPDATE
我能做到这一点的唯一方法如下。
编辑etc / my.cnf文件,添加行:
[mysqld]
skip-grant-tables
比启动mysql服务器的正常运行和
FLUSH PRIVELEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'newPassword';
该编辑等之后/再my.cnf文件并删除不必要的行。
谢谢大家的建议。
只需在您的Phpmysql shell中键入以下命令。
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password'
你需要/var/log/mysqld.log的所有者或组你可以做到这一点之前。它的崩溃,因为它不能写它的日志文件。
如果ls -l /var/log/mysqld.log
你可以看到谁拥有它,然后试图启动mysql之前做su - username
。
您可能需要成为root(根OS用户,而不是MySQL的root)要做到这一点,取决于你的系统是如何设置。
下面是权限和所有权应该是:
https://dev.mysql.com/doc/mysql-secure-deployment-guide/5.7/en/secure-deployment-permissions.html
如果您可以登录到你的MySQL服务器,并且希望通过查询更改您的密码,您可以做到这一点:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
或取出根密码:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '';
由于这一博客:https://juejin.im/entry/5b06698cf265da0db3501fdd
这里也回答了同样的问题:https://stackoverflow.com/a/54511940/1157720