解決docker修改mysql配置文件的問題
今天在用docker啟動一個5.7的數據庫在建表時候遇到下面問題:
[Err] 1055 – Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column ‘information_schema.PROFILING.SEQ’ which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
修改一下sql_model即可。
大傢接下來就跟著我看一下這個docker怎麼修改mysql內部的配置。
我先是在百度上隨便收瞭一下docker修改mysql配置,結果真我震驚瞭,都是來回抄一個,還沒給我解決,更過分的是還有的文章隻抄瞭一半!!!所以我準備自己寫一個真正快速解決問題的一篇關於修改dokcer裡面的mysql的文章。
1:首先我在docker上快速啟動瞭一個mysql
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 --name mysql-docker1 mysql:5.7
2:在宿主機上新建一個文件夾(/home/mysql/mysql_conf)用來復制docker內部的配置文件
3:運行:docker cp mysql-docker:/etc/mysql/mysql.conf.d/mysqld.cnf /home/mysql/mysql_conf 把容器內部的配置文件cp到剛才建的文件夾下面。
4:在宿主機修改 mysqld.cnf 文件 加上下面的代碼
sql_mode="STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_ENGINE_SUBSTITUTION"
5:把剛才那個mysql容器刪除兩句命令:
docker stop mysql-docker1 docker rm mysql-docker1
6:重新掛在啟動一個新的實例:
docker run -d -p 3306:3306 -v /home/mysql/mysql_conf/mysqld.cnf:/etc/mysql/mysql.conf.d/mysqld.cnf -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql-docker mysql:5.7
至此解決問題。
到此這篇關於docker修改mysql配置文件的文章就介紹到這瞭,更多相關docker mysql配置文件內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- MySQL運行報錯:“Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggre”解決方法
- Docker部署Mysql8的實現步驟
- Docker案例分析:搭建MySQL數據庫服務
- Docker安裝配置MySQL的實現步驟
- 總結Docker不適合部署數據庫的7大原因