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