docker安装mysql 8.0|5.7

安装命令

docker run 
--restart=always 
-p 3306:3306 --name mysql  
-e MYSQL_ROOT_PASSWORD=123456   
-v /srv/dev-disk-by-label-4TB01/appdata/mysql/logs:/var/log/mysql   
-v /srv/dev-disk-by-label-4TB01/appdata/mysql/data:/var/lib/mysql   
-d mysql 

进入容器查看

docker exec -it mysql bash

报错信息

root@e835e1f3d728:/# mysql -uroot -p
Enter password: 
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

输入密码报错,这是容器里面查找从宿主主机查找mysql服务没有查找到(至于为何从宿主主机查找,可能因为配置了log或data文件夹映射的原因), 重新输入 -h 指定当前容器之后就正常

mysql -h 127.0.0.1 -P 3306 -u root -p

mysql 5.7

docker run -d -p 3306:3306 --name mysql-5.7 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7

修改sql_mode(sql_mode):

vim /etc/mysql/mysql.conf.d/mysqld.cnf
# 添加一行(原本的是:ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION)
sql_model=NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
原文地址:https://www.cnblogs.com/chq3272991/p/14521458.html