docker下MySQL修改配置

概述

  • 连接docker中的mysql终端(docker连接终端)
  • 修改mysql配置 (vim使用和安装)
  • mysql大小写简单介绍 (库名/表面 字段/内容 大小写使用)
  • docker下mysql终端操作(执行命令)

连接docker中的mysql终端

  1. 使用 查询docker下的镜像用来查看mysql的id 或name
docker ps -as
  1. 连接mysql容器终端 -i :即使没有附加也保持STDIN 打开 -t :分配一个伪终端 662d742e708c:容器id也可以使用name /bin/bash 终端目录
docker exec -it 662d742e708c /bin/bash

修改mysql配置

  1. 使用vi打开配置文件
/etc/mysql/mysql.conf.d/mysqld.cnf

没有vim 则需要安装,步骤如下:

//同步 /etc/apt/sources.list 和 /etc/apt/sources.list.d 中列出的源的索引,这样才能获取到最新的软件包。
  apt-get update 
//安装vim
  apt-get install vim
  1. 修改配置文件 vim编辑器基本使用参考
  • 按i进入vi的编辑模式
  • 在文件添加一行 lower_case_table_names=1(1是忽略大小写 0是启用大小写敏感)
  • 按esc 退出编辑模式
:wq 保存退出
:q 退出
:q!强制退出
  • 编辑之后强制退出 可能回产生.swap文件 每次打开文件时都会提示是有交换文件****.swp 确认没有需要恢复的可以直接删除 rm ****.swp 也可按照提示编辑 或恢复 swp参考资料exe

mysql大小写简单介绍

  1. MySQL大小写敏感的简单介绍 lower_case_table_names参考资料
  • mysql通过lower_case_table_names来控制是否大小写敏感(库名和表名) 需要控制的原因是 linux/win/unix底层文件系统对大小写敏感行为不一致,默认值 linux=0 win=1 mac(unix)=2
参数值存储值查询值其它
0大小写敏感(按DDL语句中存储)大小写敏感(按DDL语句保存至查找表上)如果在大小写不敏感系统强制设置为0 则有可能造成索引丢失
1大小写不敏感(转换为小写存储)不敏感(表名转化为小写保存至查找表上)
2大小写敏感(按DDL语句中存储)不敏感(表名转化为小写保存至查找表上)只在对大小写不敏感的文件系统上适用,innodb表名用小写保存
  1. 列名和字段内容 根据校对规则(collate)_bin: 表示的是binary case sensitive collation,也就是说是区分大小写。_ci: case insensitive collation,不区分大小写 。

修改lower_case_table_names影响(仅适用于InnoDB)

  1. 需要修改原来大写的库名为小写,有以下方式可供参考 修改mysql库名
    • 新建一个库名 然后导出数据 将原来的库删除 缺点:数据量大比较费时间,表名有大写的也需要转化为小写
    • 使用rename table命令编写脚本
mysql -uroot -p123456 -e ‘create database if not exists new_sakila‘
list_table=$(mysql -uroot -p123456 -Nse "select table_name from information_schema.TABLES where TABLE_SCHEMA=‘sakila‘")
 
for table in $list_table
do
    mysql -uroot -p123456 -e "rename table sakila.$table to new_sakila.$table"
  1. 需要将原来的表名修改为小写

docker下mysql终端操作(执行命令)

  1. 登录用户 root为例子
mysql -uroot -p
  1. 输入密码
  2. 查询数据库
    show databases \g(\g用来提交命令)
  3. 退出命令界面 按Ctrl+D

相关推荐