本地计算机上的MySQL服务启动然后停止。如果某些服务未被其他服务或程序使用,则会自动停止。
谁能解决这个问题?谢谢。
由mysqld --install
安装后。试试这个mysqld --initialize
。我们遇到了同样的问题,但它现在正在运作。
搜索services.msc并查看正在运行的服务,如果有一个运行的mysql服务已经运行(可能是xampp或wamp)或使用相同端口的其他服务(例如Skype)作为mysql并停止服务,以便您可以运行您的mysql服务。
我的数据库长时间正常工作后,我遇到了这个问题。原来这是一些数据损坏。
在错误日志中我有:
2017-02-07T10:11:42.270567Z 0 [ERROR] InnoDB: Ignoring the redo log due to missing MLOG_CHECKPOINT between the checkpoint 44002250712 and the end 44002250240.
2017-02-07T10:11:42.270606Z 0 [ERROR] InnoDB: Plugin initialization aborted with error Generic error
2017-02-07T10:11:42.577436Z 0 [ERROR] Plugin 'InnoDB' init function returned error.
2017-02-07T10:11:42.577470Z 0 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
2017-02-07T10:11:42.577484Z 0 [ERROR] Failed to initialize plugins.
2017-02-07T10:11:42.577488Z 0 [ERROR] Aborting
然后我不得不删除2个ib_logfile *文件,然后重新启动。
在我的情况下发生此错误,当secure-file-priv指向不存在的文件夹时,请确保它存在且可读。
my.ini中的代码行示例:secure-file-priv="D:/MySQL/uploads"
您也可能在my.ini
文件中意外添加了一些错误的文本。确保文件开头没有添加无效字符。
如果已将数据目录(my.ini中数据库根目录的路径)更改为外部硬盘驱动器,请确保已连接硬盘驱动器。
还记得给该文件夹提供NETWORK SERVICE权限:
Data
文件夹Properties
Security
选项卡Advanced
Change Permissions...
Add...
NETWORK SERVICE
Check Names
OK
Full Control
OK
- 四次如果使用版本8并编辑my.ini,我发现记事本在my.ini文件的开头放置了3个十六进制字符。 EF BB BF。在十六进制编辑器中删除文件开头的3个字符可以解决问题。
在版本8中,他们不小心将Unicode字符放在ini文件中。这导致记事本使用字节顺序标记字符保存文件。
文件中的以下行是罪魁祸首“行#范围从1到2 ^ 32 - 1.”唯一“表示每个ID必须不同。”有3个Unicode字符。这导致记事本将字节顺序标记附加到文本文件。
在我的情况下,我尝试打开DOS提示符并转到MySQL bin\
目录并发出以下命令:
mysqld --defaults-file="C:\Program Files\MySQL\MySQL Server 5.0\my.ini" --standalone --console
它告诉我,我错过了"C:\Program Files\MySQL\MySQL Server 5.0\Uploads"
文件夹;我建了一个,问题解决了。
重命名或删除下面的文件夹,
C:\ ProgramData \ MySQL \ MySQL Server 5.7
文件夹名称根据您的MYSQL版本号更改。
这可能是因为在服务器初始化之后更改了lower_case_table_names
。
只能在初始化服务器时配置lower_case_table_names。禁止在初始化服务器后更改lower_case_table_names设置。
此问题的解决方案是在服务器安装时设置lower_case_table_names
参数,如以下答案中所述:
在我的情况下,mysqld启动并停止,没有错误消息。我需要使用“以管理员身份运行”打开命令提示符,然后运行mysqld。
我只是为了临时开发而这样做。在任何情况下,我都不建议以管理员身份运行MySQL。
这是上述故障排除后的最后一步。
mysqld --initialize
在install命令之后运行上面的命令。然后尝试启动服务 - 这应该工作。