拉取 MySQL 镜像
docker pull mysql:latest
-- latest 可以具体到版本号,默认是最新版本mysql社区版国内镜像下载
查看下载好的镜像
docker images
一、挂载外部配置和数据安装 mkdir /usr/docker mkdir /usr/docker/mysql mkdir /usr/docker/mysql/conf/conf.d mkdir /usr/docker/mysql/data/ 创建myf配置文件 touch /usr/docker/mysql/conf/myf myf添加如下内容: [mysqld] user=mysql character-set-server=utf8 default_authentication_plugin=mysql_native_password secure_file_priv=/var/lib/mysql expire_logs_days=7 sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION max_connections=1000 [client] default-character-set=utf8 [mysql] default-character-set=utf8
一、非挂载外部:
docker run --restart=always --privileged=true -d -p 33060:3306 --name mysql -e MYSQL_ROOT_PASSWORD=abc123456 mysql:5.7 --lower_case_table_names=1
二、挂载外部:
方式1
docker run --restart=always --privileged=true -d -p 3306:3306 -v /home/docker/mysql/conf.d:/etc/mysql/conf.d/ -v /home/docker/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=abc123456 --name mysql mysql:5.5 --lower_case_table_names=1
方式2
运行安装MySQL容器,包含有数据库初始化密码,开放端口,共享数据库文件数据卷,命令:
docker run --restart=always --privileged=true -d -v /home/docker/mysql/data:/var/lib/mysql -v /home/docker/mysql/conf.d:/etc/mysql/conf.d -v /home/docker/mysql/conf/myf:/etc/mysql/myf -p 33060:3306 --name mysql -e MYSQL_ROOT_PASSWORD=abc123456 mysql:5.7 --lower_case_table_names=1
参数说明:
--lower_case_table_names=1 不区分大小写 --restart=always 当Docker 重启时,容器会自动启动。 --privileged=true 容器内的root拥有真正root权限,否则容器内root只是外部普通用户权限
-v /usr/docker/mysql/conf.d:/etc/mysql/conf.d 映射配置文件 -v /usr/docker/mysql/conf/myf:/etc/mysql/myf 映射配置文件 -v /usr/docker/mysql/data:/var/lib/mysql 映射数据目录
查看在运行
docker ps -a
#进入容器 docker exec -it mysql bash
#use mysql
mysql -u root -p
退出mysql
exit
远程登录授权
grant all privileges on *.* to 'root'@'%' ;
刷新权限
flush privileges;
查看5.7向下时间兼容select @@sql_mode;
mysql 5.7 时间兼容
vi /usr/docker/mysql/conf/myf
增加
sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
mysql 配置文件会限制server接受的数据包大小修改:
查看:
show VARIABLES like '%max_allowed_packet%';
修改方式一:
SET GLOBAL max_allowed_packet=1073741824;
修改方式二:
编辑myf来修改(windows下my.ini),在[mysqld]段或者mysql的server配置段进行修改。
max_allowed_packet = 20M
如果不到myf可以通过mysql –help | grep myf去寻myf文件。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论