MySql作为作为最受欢迎的数据库之一,使用率非常高,在使用过程中会遇到不少问题,此文对遇到的问题进行记录,MySql安装请参考另一篇文件《非安装版MySql安装》
1、Can't create/write to file 'F: ools\MySql\mysql-5.7.38-winx64\data\is_writable
刚开始basedir和datadir的文件路径如下:
# 自定义设置mysql的安装目录,即解压mysql压缩包的目录
basedir=F:\tools\MySql\mysql-5.7.38-winx64
# 自定义设置mysql数据库的数据存放目录
datadir=F:\tools\MySql\mysql-5.7.38-winx64\data
结果提示创建失败,提示:Can't create/write to file 'F: ools\MySql\mysql-5.7.38-winx64\data\is_writable
F:\tools\MySql\mysql-5.7.38-winx64\bin>mysqld --initialize --user=mysql --console
mysqld: Can't create/write to file 'F: ools\MySql\mysql-5.7.38-winx64\data\is_writable' (Errcode: 2 - No such file or directory)
2022-08-04T14:56:12.551705Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2022-08-04T14:56:12.552375Z 0 [ERROR] Can't find error-message file 'F:\tools\MySql\mysql-5.7.38-winx64\bin\ ools\MySql\mysql-5.7.38-winx64\share\errmsg.sys'. Check error-message file location and 'lc-messages-dir' configuration directive.
2022-08-04T14:56:12.554216Z 0 [ERROR] --initialize specified but the data directory exists and is not writable. Aborting.
2022-08-04T14:56:12.554652Z 0 [ERROR] Aborting
刚开始以为是DOS窗口权限的问题,后来改为管理员权限运行依然是这个问题,仔细查看发现提示信息盘符后面的\没有了,怀疑可能是分隔符的问题。修改为/即可。
2、登录时提示找不到文件
如果生成的临时密码包含<,那么恭喜你中奖了,我第一次生成的时候产生的密码包含这个字符,登录提示找不到文件,无奈只能删除data目录重新重头开始安装
3、服务没有报告任何错误。
网上找了不少方法,都是让重装MySql
C:\WINDOWS\system32>net start mysql5.7
MySQL5.7 服务正在启动 .
MySQL5.7 服务无法启动。
服务没有报告任何错误。
请键入 NET HELPMSG 3534 以获得更多的帮助。
4、发生系统错误 5。
请使用管理权限运行DOS窗口
C:\Users\ydecai>net start mysql5.7
发生系统错误 5。
拒绝访问。
5、mysql: [ERROR] unknown variable 'sql_mode=...
请使用mysqld安装mysql服务
F:\tools\MySql\mysql-5.7.38-winx64\bin>mysql --install MySql5.7
mysql: [ERROR] unknown variable 'sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'
6、this is incompatible with sql_mode=only_full_group_by
在 [mysqld](不是文件最后!!!)下加入一句配置,如果已经存在就修改
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
7、Operating system error number 5 in a file operation.
2023-06-14T14:46:27.359530Z 0 [ERROR] InnoDB: Operating system error number 5 in a file operation.
2023-06-14T14:46:27.359912Z 0 [ERROR] InnoDB: The error means mysqld does not have the access rights to the directory. It may also be you have created a subdirectory of the same name as a data file.
2023-06-14 22:46:27 0x14d8 InnoDB: Assertion failure in thread 5336 in file fil0fil.cc line 922
mysql数据存储目录修改后,启动提示1067错误,查下日志后发权限不足。mysql创建文件的权限使用的是NET SERVICE,添加对应权限即可。