“mysqld --initialize --console ”执行不成功情况总结和解决措施
我的MYSQL版本是9.0.1
出现类似下列的报错:
2024-10-29T01:09:55.942951Z 0 [System] [MY-015017] [Server] MySQL Server Initialization - start. 2024-10-29T01:09:55.950379Z 0 [Warning] [MY-010915] [Server] 'NO_ZERO_DATE', 'NO_ZERO_IN_DATE' and 'ERROR_FOR_DIVISION_BY_ZERO' sql modes should be used with strict mode. They will be merged with strict mode in a future release. 2024-10-29T01:09:55.950561Z 0 [System] [MY-013169] [Server] D:ersion1downloadmysqlmysqlinmysqld.exe (mysqld 9.1.0) initializing of server in progress as process 9800 2024-10-29T01:09:55.972522Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started. 2024-10-29T01:09:56.265227Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended. 2024-10-29T01:09:58.350857Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: giou;%_no2DY 2024-10-29T01:10:00.763768Z 0 [System] [MY-015018] [Server] MySQL Server Initialization - end.
(上述没有展示目录错误的报错!)
1、my.ini文件目录没有修改
一定记得修改路径!!!
2、MYSQL版本更新,default_authentication_plugin变量弃用
在 MySQL 8.0 及以上版本中,default_authentication_plugin
系统变量已被废弃,并且在 MySQL 9.1.0 中不再支持。配置文件中不需要设置这个变量,因为 MySQL 9.1.0 默认使用的是caching_sha2_password
认证插件。
以下这条my.ini里面的内容删除:
以下是修改后的MySQL 9.1.0的my.ini文件内容:
[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=D:ersion1downloadmysqlmysql
# 设置mysql数据库的数据的存放目录
datadir=D:ersion1downloadmysqlmysqldata
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。
max_connect_errors=10
# 服务端使用的字符集默认为utf8mb4
character-set-server=utf8mb4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 其他常用的设置(这条可以不添加试试!!!)
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8mb4
3、data文件夹内容非空
确保数据目录 data文件夹 是空的。如果该目录中存在文件,您需要删除它们,或者将这些文件移动到其他位置,然后再次尝试初始化。
如果您不希望删除数据目录中的文件,您可以考虑指定一个新的空目录作为数据目录,并在初始化命令中使用 --datadir
选项,例如:
mysqld --initialize --datadir="D:
ew_data_directory_path" --console