【总结】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.
相关推荐
野犬寒鸦18 分钟前
从零起步学习并发编程 || 第六章:ReentrantLock与synchronized 的辨析及运用
java·服务器·数据库·后端·学习·算法
霖霖总总21 分钟前
[小技巧66]当自增主键耗尽:MySQL 主键溢出问题深度解析与雪花算法替代方案
mysql·算法
晚霞的不甘2 小时前
揭秘 CANN 内存管理:如何让大模型在小设备上“轻装上阵”?
前端·数据库·经验分享·flutter·3d
市场部需要一个软件开发岗位2 小时前
JAVA开发常见安全问题:纵向越权
java·数据库·安全
海奥华22 小时前
mysql索引
数据库·mysql
2601_949593653 小时前
深入解析CANN-acl应用层接口:构建高效的AI应用开发框架
数据库·人工智能
javachen__3 小时前
mysql新老项目版本选择
数据库·mysql
Dxy12393102163 小时前
MySQL如何高效查询表数据量:从基础到进阶的优化指南
数据库·mysql
Dying.Light3 小时前
MySQL相关问题
数据库·mysql
蜡笔小炘4 小时前
LVS -- 利用防火墙标签(FireWall Mark)解决轮询错误
服务器·数据库·lvs