【总结】MySQL非root安装-初始化数据库时unknown variable ‘defaults-file=**/my.cnf‘

问题描述

使用非root安装mysql,使用 mysqld 初始化数据库时,不想使用/etc/my.cnf作为启动配置文件,而是指定自定义的my.cnf文件,在执行时,遇到[ERROR] unknown variable 'defaults-file=/data/infra/mysql/conf/my.cnf' 错误。

执行的命令: ./bin/mysqld --initialize-insecure --user=ftops --defaults-file=/data/infra/mysql/conf/my.cnf --basedir=/data/infra/mysql --datadir=/data/infra/mysql/data --socket=/data/infra/mysql/tmp/mysql.sock

复制代码
[ftops@ft-d-0192168016209 mysql]$ ./bin/mysqld --initialize-insecure --user=ftops --defaults-file=/data/infra/mysql/conf/my.cnf --basedir=/data/infra/mysql --datadir=/data/infra/mysql/data --socket=/data/infra/mysql/tmp/mysql.sock
2024-03-20T01:55:15.764417Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2024-03-20T01:55:15.891443Z 0 [Warning] InnoDB: New log files created, LSN=45790
2024-03-20T01:55:15.918429Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2024-03-20T01:55:15.973263Z 0 [ERROR] unknown variable 'defaults-file=/data/infra/mysql/conf/my.cnf'
2024-03-20T01:55:15.973273Z 0 [ERROR] Aborting
[ftops@ft-d-0192168016209 mysql]$ rm -rf data/
[ftops@ft-d-0192168016209 mysql]$

原因

这个是mysql 的一个bug,使用指定路径的my.cnf,而不用默认的/etc/my.cnf文件,需要在启动时,将--default-file=***/my.cnf 参数放在命令后的第一位参数传入,如果是作为命令第二、第三位,就会出现上述错误。

错误的示范:./mysqld --initialize-insecure --defaults-file=/data/infra/mysql/conf/my.cnf

正确的示范:./mysqld --defaults-file=/data/infra/mysql/conf/my.cnf --initialize-insecure

参考:https://www.cnblogs.com/qiumingcheng/p/11191759.html

问题解决

将--defaults-file参数调整到命令第一位,即可解决。

示例:./bin/mysqld --defaults-file=/data/infra/mysql/conf/my.cnf --initialize-insecure --user=ftops --basedir=/data/infra/mysql --datadir=/data/infra/mysql/data --socket=/data/infra/mysql/tmp/mysql.sock

复制代码
[ftops@ft-d-0192168016209 mysql]$ ./bin/mysqld --defaults-file=/data/infra/mysql/conf/my.cnf --initialize-insecure --user=ftops  --basedir=/data/infra/mysql --datadir=/data/infra/mysql/data --socket=/data/infra/mysql/tmp/mysql.sock
2024-03-20T01:56:38.815353Z 0 [Warning] InnoDB: New log files created, LSN=45790
2024-03-20T01:56:38.842167Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2024-03-20T01:56:38.899853Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 171a1d3a-e65d-11ee-be91-faa23b88c700.
2024-03-20T01:56:38.900679Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2024-03-20T01:56:40.116747Z 0 [Warning] A deprecated TLS version TLSv1 is enabled. Please use TLSv1.2 or higher.
2024-03-20T01:56:40.116759Z 0 [Warning] A deprecated TLS version TLSv1.1 is enabled. Please use TLSv1.2 or higher.
2024-03-20T01:56:40.119760Z 0 [Warning] CA certificate ca.pem is self signed.
2024-03-20T01:56:40.300626Z 1 [Warning] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option.
相关推荐
Olrookie42 分钟前
若依前后端分离版学习笔记(三)——表结构介绍
笔记·后端·mysql
程序员编程指南1 小时前
Qt 数据库连接池实现与管理
c语言·数据库·c++·qt·oracle
幼儿园老大*3 小时前
数据中心-时序数据库InfluxDB
数据库·时序数据库
daixin88483 小时前
Redis过期数据的删除策略是什么?有哪些?
数据库·redis·缓存
Lemon程序馆3 小时前
今天聊聊 Mysql 的那些“锁”事!
后端·mysql
陪我一起学编程3 小时前
MySQL创建普通用户并为其分配相关权限的操作步骤
开发语言·数据库·后端·mysql·oracle
Albert Tan4 小时前
ORACLE DATABASE 23AI+Apex+ORDS -纯享版
数据库·oracle
程序员编程指南4 小时前
Qt OpenGL 集成:开发 3D 图形应用
c语言·数据库·c++·qt·3d
婪苏(Python学习ing)5 小时前
MySQL 与 Redis 基础入门:从安装到核心操作
数据库
幻灭行度6 小时前
通过redis_exporter监控redis cluster
数据库·redis·缓存