概述 連接docker中的mysql終端(docker連接終端) 修改mysql配置 (vim使用和安裝) mysql大小寫簡單介紹 (庫名/錶面 欄位/內容 大小寫使用) docker下mysql終端操作(執行命令) 連接docker中的mysql終端 使用 查詢docker下的鏡像用來查看mys ...
概述
- 連接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