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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM