MySQL8 报错 Different lower_case_table_names settings for server ('1') and data dictionary ('0').
背景说明
MySQL 8 数据字典是保存在数据库内部的,如果 lower_case_table_names 和之前初始化使用的值不一致,就会报错:
Different lower_case_table_names settings for server ('1') and data dictionary ('0')
操作流程(建议按顺序执行)
步骤 1:停止 MySQL 服务
sudo systemctl stop mysql
步骤 2:删除原有数据目录( 会删除所有数据库)
sudo rm -rf /var/lib/mysql
sudo mkdir -p /var/lib/mysql
sudo chown mysql:mysql /var/lib/mysql
步骤 3:使用指定参数重新初始化数据库
sudo mysqld --initialize --lower-case-table-names=1 --user=mysql
- 这将初始化一个新数据库,配置大小写不敏感。
 - 初始化完成后会生成临时 root 密码(查看 
/var/log/mysqld.log,如果有)。 
步骤 4:修改配置文件以保持一致
编辑 /etc/my.cnf 或 /etc/mysql/mysql.conf.d/mysqld.cnf,在 [mysqld] 部分添加:
[mysqld]
lower_case_table_names=1
大小写严格要求:必须写作
lower_case_table_names(下划线),不能写成lower-case-table-names,否则无效。
步骤 5:启动 MySQL 服务
sudo systemctl start mysql
可选:查看日志是否启动成功
sudo journalctl -u mysql
可选:设置 root 密码(首次初始化后)
sudo mysql_secure_installation
验证是否生效
登录后:
SHOW VARIABLES LIKE 'lower_case_table_names';
输出应为:
+------------------------+-------+
| Variable_name          | Value |
+------------------------+-------+
| lower_case_table_names | 1     |
+------------------------+-------+
补充说明
| 值 | 含义 | 平台 | 
|---|---|---|
| 0 | 区分大小写 | 默认 Linux | 
| 1 | 不区分大小写,所有表名保存为小写 | Windows 推荐,跨平台推荐 | 
| 2 | 保留创建时大小写,但不区分大小写(仅限 Windows) | Windows 特有 | 
                    
                
                
            
        
浙公网安备 33010602011771号