MySQL大小寫規則
MySQL在Linux下資料庫名、表名、列名、別名大小寫規則是這樣的:
1、資料庫名與表名是嚴格區分大小寫的;
2、表的別名是嚴格區分大小寫的;
3、列名與列的別名在所有的情況下均是忽略大小寫的;
4、變量名也是嚴格區分大小寫的;
MySQL在Windows下都不區分大小寫。
避免這個問題的一種辦法是以Docker 啟動mysql容器時添加 –lower_case_table_names=1 參數啟動。
缺省地在 Windows 中這個選項為 1 ,在 Unix 中為 0。如 果 lower_case_table_names 為 1 ,MySQL 將在存儲與查找時將所有的表名轉換為小寫字線。(從 MySQL 4.0.2 開始,這個選項同樣適用於資料庫名。) 註意,當你更改這個選項時,你必須在啟動 mysqld 前首先將老的表名轉換為小寫字母。
也可以通過在MySQL的配置文件mysqld.cnf 中增加一行:
lower_case_table_names = 1
其中 0:區分大小寫,1:不區分大小寫
docker cp 命令
$ docker cp CONTAINER:FILEPATH LOCALFILEPATH $ vi LOCALFILEPATH $ docker cp LOCALFILEPATH CONTAINER:FILEPATH
可以將本地的mysqld.cnf 文件拷入到容器中,可以將容器中的文件拷出,解決瞭用
docker exec:隻能對運行中的容器操作文件
docker run: 加-v映射文件目錄出來 參數隻能創建新容器
這兩個痛點,重新將修改正確的cnf文件拷貝回container。