docker下MySQL修改配置

database

概述

  • 连接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

以上是 docker下MySQL修改配置 的全部内容, 来源链接: utcz.com/z/534027.html

回到顶部