当前位置: 首页 > news >正文

docker中的mysql有中文显示问题跟大小写区分问题?

华侨大学部署任务记录:

先查看mysql 在docker中的映射路径

用docker inspect prod-mysql

推荐方案:在 conf.d/ 目录中创建配置文件

bash

# 进入配置目录
cd /data/docker-data/mysql/conf# 在 conf.d 目录中创建自定义配置文件
cat << EOF > conf.d/custom.cnf
[mysqld]
lower_case_table_names=1
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci[client]
default-character-set=utf8mb4[mysql]
default-character-set=utf8mb4
EOF

或者:在 mysql.conf.d/ 目录中创建

bash

# 在 mysql.conf.d 目录中创建配置文件
cat << EOF > mysql.conf.d/mysql.cnf
[mysqld]
lower_case_table_names=1
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci[client]
default-character-set=utf8mb4[mysql]
default-character-set=utf8mb4
EOF

查看现有的配置文件内容(推荐先检查)

bash

# 查看 conf.d 目录中是否有现有配置
ls -la conf.d/# 查看 mysql.conf.d 目录中的文件
ls -la mysql.conf.d/# 如果有现有文件,先查看内容
cat conf.d/*.cnf 2>/dev/null
cat mysql.conf.d/*.cnf 2>/dev/null

重启 MySQL 容器

bash

# 重启容器使配置生效
docker restart your_mysql_container_name# 查看日志确认没有错误
docker logs your_mysql_container_name

验证配置是否加载

bash

# 进入容器查看配置文件
docker exec -it your_mysql_container_name bash
ls -la /etc/mysql/conf.d/
ls -la /etc/mysql/mysql.conf.d/# 登录 MySQL 验证设置
mysql -u root -p -e "SHOW VARIABLES LIKE 'lower_case_table_names';"
mysql -u root -p -e "SHOW VARIABLES LIKE 'character_set%';"

如果遇到配置冲突

如果两个目录都有配置文件,MySQL 会按字母顺序加载。建议:

  1. 统一使用一个目录(推荐 conf.d

  2. 检查现有配置避免冲突

  3. 文件名按字母顺序,如 z-custom.cnf 确保最后加载

创建配置文件的完整步骤

bash

# 1. 进入配置目录
cd /data/docker-data/mysql/conf# 2. 在 conf.d 中创建配置文件(推荐)
echo '[mysqld]
lower_case_table_names=1
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci[client]
default-character-set=utf8mb4[mysql]
default-character-set=utf8mb4' > conf.d/custom.cnf# 3. 查看创建的文件
cat conf.d/custom.cnf# 4. 重启容器
docker restart your_mysql_container_name# 5. 验证配置
docker exec your_mysql_container_name mysql -u root -p -e "SHOW VARIABLES LIKE 'lower_case_table_names';"

重要提醒 ⚠️

如果 MySQL 容器中已有数据,修改 lower_case_table_names 需要:

  1. 备份数据

  2. 清空数据目录 (/data/docker-data/mysql/data)

  3. 重新初始化

否则可能会出现表名识别问题。

选择在 conf.d/ 目录中创建配置文件是最安全的方式,因为这是 MySQL 的标准配置目录。

http://www.dtcms.com/a/356238.html

相关文章:

  • Python从入门到高手9.4节-基于字典树的敏感词识别算法
  • 使用Python脚本执行Git命令
  • React 状态丢失:组件 key 用错引发的渲染异常
  • Rust 安装与运行指南
  • Custom SRP - LOD and Reflections
  • 柳州市委常委、统战部部长,副市长潘展东率队首访深兰科技集团新总部,共探 AI 赋能制造大市与东盟合作新局
  • Claude Code 完整手册:从入门、配置到高级自动化
  • 【python】相机输出图片时保留时间戳数据
  • Linux学习——sqlite3
  • 179-183动画
  • IntelliJ IDEA2025+启动项目提示 Failed to instantiate SLF4J LoggerFactory
  • 零基础json入门教程(基于vscode的json配置文件)
  • 【贪心算法】day4
  • HTML 核心标签全解析:从文本排版到媒体嵌入
  • 联想打印机2268w安装
  • 根据并发和响应延迟,实现语音识别接口自动切换需求
  • IP v 6
  • Linux下的软件编程——数据库
  • 编程与数学 03-004 数据库系统概论 06_需求分析
  • 【Flask】测试平台开发,初始化管理第一个页面开发-第三篇
  • Charles打开后,Pc电脑端浏览器显示Not implemented或没有网络
  • Linux Shell 脚本基础002
  • 使用 Java 替换和修改 PDF 文本的方法
  • 命令行操作:逻辑运算符、重定向与管道
  • TensorFlow 深度学习 | 使用子类 API 实现 Wide Deep 模型
  • 20250829_编写10.1.11.213MySQL8.0异地备份传输脚本+在服务器上创建cron任务+测试成功
  • MySQL-索引(下)
  • Linux -- 进程间通信【命名管道】
  • 基于博客系统的自动化测试项目
  • 使用TensorFlow Lite Mirco 跑mirco_speech语音识别yes/no