概述
- 连接docker中的mysql终端(docker连接终端)
- 修改mysql配置 (vim使用和安装)
- mysql大小写简单介绍 (库名/表面 字段/内容 大小写使用)
- docker下mysql终端操作(执行命令)
连接docker中的mysql终端
- 使用 查询docker下的镜像用来查看mysql的id 或name
docker ps -as
- 连接mysql容器终端 -i :即使没有附加也保持STDIN 打开 -t :分配一个伪终端 662d742e708c:容器id也可以使用name /bin/bash 终端目录
docker exec -it 662d742e708c /bin/bash
修改mysql配置
- 使用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
- 修改配置文件 vim编辑器基本使用参考
- 按i进入vi的编辑模式
- 在文件添加一行 lower_case_table_names=1(1是忽略大小写 0是启用大小写敏感)
- 按esc 退出编辑模式
:wq 保存退出
:q 退出
:q!强制退出
- 编辑之后强制退出 可能回产生.swap文件 每次打开文件时都会提示是有交换文件****.swp 确认没有需要恢复的可以直接删除 rm ****.swp 也可按照提示编辑 或恢复 swp参考资料exe
mysql大小写简单介绍
- 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表名用小写保存 |
- 列名和字段内容 根据校对规则(collate)_bin: 表示的是binary case sensitive collation,也就是说是区分大小写。_ci: case insensitive collation,不区分大小写 。
修改lower_case_table_names影响(仅适用于InnoDB)
- 需要修改原来大写的库名为小写,有以下方式可供参考 修改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"
- 需要将原来的表名修改为小写
docker下mysql终端操作(执行命令)
- 登录用户 root为例子
mysql -uroot -p
- 输入密码
- 查询数据库
show databases \\g(\\g用来提交命令)
- 退出命令界面 按Ctrl+D