docker pull mysql:5.7;构建容器运行
- 映射目录是为了防止数据丢失,也称为持久化
docker run -itd --name 自定义名字 -p 3306:3306 -v /windows盘符/指定的文件夹路径:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root mysql:5.7; # 实际测试最后加密码设置无效,都是root
- linux参考命令
docker run -itd --name dmysql -p 3306:3306 -v /DockerShare/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root mysql:5.7
- windows参考命令
docker run -itd --name dmysql -p 3306:3306 -v E:/DockerShare/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root mysql:5.72.配置对外访问
#进入容器
docker exec -it dmysql bash;
#开始验证权限
mysql -u root -p
#输入密码后回车
root
#设置外网密码
SET PASSWORD FOR 'root' = PASSWORd('root');
#设置本地访问密码
SET PASSWORD FOR 'root'@'localhost' = PASSWORd('root');
3.mysql配置sql mode(连接工具中使用即可)
- 不配置的话,使用group by 会有问题。。。。
(和普通sql查询语句使用方式一样)
# 查看sql mode select @@GLOBAL.sql_mode; # 能看到sql mode了 show variables like '%sql_mode';修改sqlmode
#只影响后来创建的数据库操作和查询 set @@GLOBAL.sql_mode="STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"; #在当前数据库使用,影响当前查询的数据库 SET sql_mode ="STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION";



