1、查看docker仓库中的mysql命令
docker search mysql
2、为选定的需要pull到本地系统中的镜像(本文已mysql5.7为例)
docker pull mysql:5.7
3、启动mysql,并将mysql文件映射到宿主机:
docker run -p 33060:3306 --restart=always --name mysql -v /mdata/mysql/conf:/etc/mysql/ -v /mdata/mysql/logs:/var/log/mysql -v /mdata/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7 --lower_case_table_names=1
这里解释一下,/mdata为宿主机路径,根据自身实际情况调整
–lower_case_table_names=1为设置mysql不区分大小写
4、更改mysql容器内的时间问题(如果mysql容器内时间与实际时间一致可忽略本步骤)
docker cp /usr/share/zoneinfo/Asia/Shanghai mysql:/etc/localtime
拷贝完重启mysql容器
docker restart mysql
5、进入mysql,进入docker容器,修改mysql 访问授权
docker exec -it mysql bash
mysql -u root -p123456
mysql5.7版本修改访问授权:
grant all privileges on *.* to root@"%" identified by "123456" with grant option;
mysql8版本修改访问授权
alter user 'root'@'%' identified with mysql_native_password by '123456';
完成上面修改之后输入
flush privileges;
修改完成之后输入exit指令退出mysql访问界面和容器
6、修改mysql的group by配置
mysql5.7版本默认拥有sql_mode=only_full_group_by,所以需要进行调整
docker exec -it mysql bash
vim /etc/mysql/
在文件的最后加上下面的内容
[mysqld]
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
如果系统提示找不到vim或vi指令,则进行下面的操作之后再修改
apt-get update
apt-get install vim -y