今天在用docker啟動(dòng)一個(gè)5.7的數(shù)據(jù)庫在建表時(shí)候遇到下面問題:
[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即可。
大家接下來就跟著我看一下這個(gè)docker怎么修改mysql內(nèi)部的配置。
我先是在百度上隨便收了一下docker修改mysql配置,結(jié)果真我震驚了,都是來回抄一個(gè),還沒給我解決,更過分的是還有的文章只抄了一半!!!所以我準(zhǔn)備自己寫一個(gè)真正快速解決問題的一篇關(guān)于修改dokcer里面的mysql的文章。
1:首先我在docker上快速啟動(dòng)了一個(gè)mysql
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 --name mysql-docker1 mysql:5.7
2:在宿主機(jī)上新建一個(gè)文件夾(/home/mysql/mysql_conf)用來復(fù)制docker內(nèi)部的配置文件
3:運(yùn)行:docker cp mysql-docker:/etc/mysql/mysql.conf.d/mysqld.cnf /home/mysql/mysql_conf 把容器內(nèi)部的配置文件cp到剛才建的文件夾下面。
4:在宿主機(jī)修改 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:把剛才那個(gè)mysql容器刪除兩句命令:
docker stop mysql-docker1 docker rm mysql-docker1
6:重新掛在啟動(dòng)一個(gè)新的實(shí)例:
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
至此解決問題。