重置MySQL root密码,在运行init-file时出错

时间:2018-01-27 16:05:38

标签: mysql mysql-workbench

我知道有关于此问题的无数问题和帖子,但我在尝试启动MySQL服务器时遇到错误而且我不知道如何解决它。

因此,为了解释我无法访问我的数据库,所以我尝试重置root用户的密码。我跟着this guide,但我没有运气。首先我在我的机器上遇到了权限问题,现在我收到了这个错误:

1105 Bootstrap file error, return code (0). Nearest query: ''

从技术上讲,MySQL服务器正在启动,但是init-file没有运行,所以我的密码没有被重置。

我正在运行的命令是:

mysqld --defaults-file="C:\\ProgramData\\MySQL\\MySQL Server 5.7\\my.ini" --init-file=C:\\mysql-init.txt --console

mysql-init.txt的内容

ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

以下是显示错误的日志部分:

[Note] Execution of init_file 'C:\\mysql-init.txt' started. [ERROR] 1105 Bootstrap file error, return code (0). Nearest query: '' [Note] Execution of init_file 'C:\\mysql-init.txt' ended. [Note] C:\Program Files\MySQL\MySQL Server 5.7\bin\mysqld.exe: ready for connections.

MySQL版本: 5.7

操作系统:Windows 10

3 个答案:

答案 0 :(得分:0)

实际上你可以传递命令:

--init-file=C:\\mysql-init.txt

作为从其常规选项卡启动MySQL服务的参数。

Source

答案 1 :(得分:0)

MySQL 5.7.24出现两个错误

1。)脚本文件必须位于单独的文件夹中(而不是mysql安装文件夹或数据目录) 并且该文件夹必须获得“安全文件特权”

2。)上面的错误是由于脚本未以';'

结尾

成功,然后使用命令行语句

mysqld --datadir=D:\ProgramData\mysql\data --init-file=D:\ProgramData\mysql\reset\reset.sql --secure-file-priv=D:\ProgramData\mysql\reset --console

和SQL脚本文件“ reset.sql”为

alter user 'root'@'localhost' identified by 'root_pwd';

答案 2 :(得分:0)

对于我来说,在Ubuntu上,问题是mysql用户不拥有初始化文件。

chown mysql:mysql /tmp/reset_mysql_pswd.sql
sudo mysqld --init-file=/var/lib/mysql/reset_mysql_pswd.sql
# ^C or kill -9 <mysqld pid>
systemctl stop mysql.service
systemctl start mysql.service

即使包含初始化文件和初始化文件本身的文件夹具有权限777(这是一个坏主意),我仍然会得到:

2020-04-10T23:14:48.030719Z 0 [Note] Execution of init_file '/tmp/reset_mysql_pswd.sql' started.
2020-04-10T23:14:48.030764Z 0 [ERROR] mysqld: File '/tmp/reset_mysql_pswd.sql' not found (Errcode: 13 - Permission denied)
2020-04-10T23:14:48.030772Z 0 [ERROR] Aborting