ARTICLE DETAIL

资讯详情

深耕网站SEO优化与搜索引擎排名提升的一线实战洞察。

Docker运行mysql

Docker运行mysql Docker运行mysql和sqlserver为什么不建议再Docker中跑Mysql?Docker-compose运行mysql启动Mysql容器Docker运行MySqlDocker运行MySql5.7Docker运行MySql8查看镜像支持的选项为什么不建议再Docker中跑Mysql?Oracle官方没有推荐过容器运行数据库,也没有出过官方容器Docker-compose运行mysql# 创建mysql服务目录mkdirmysql# 创建docker-compose.ymlvimmysql/docker-compose.ymldocker-compose.yml配置内容示例如下:services:# 服务名称mysql8: image: mysql:8.4.5# 使用的镜像及其版本container_name: mysql8 environment: -TZAsia/Shanghai -MYSQL_ROOT_PASSWORDroot123456 -MYSQL_DATABASEmy_database -MYSQL_USERmyapp# 设置普通用户名称为 myapp-MYSQL_PASSWORDmyapp123123# 设置普通用户的密码command:# - --character-set-serverutf8mb4 # 设置服务器默认字符集为 utf8mb4 (支持完整Unicode包括Emoji)# - --collation-serverutf8mb4_bin # 设置服务器默认排序规则为 utf8mb4_bin (二进制排序区分大小写)## - --collation-serverutf8mb4_unicode_ci # 设置排序规则为 utf8mb4_unicode_ci (Unicode排序不区分大小写)# - --transaction-isolationREAD-COMMITTED # 设置默认事务隔离级别为 READ-COMMITTED (读已提交)# - --innodb_log_file_size256M # 设置 InnoDB 重做日志文件的大小为 256MB# - --max_allowed_packet256M # 设置服务器允许接收的最大数据包大小为 256MB# - --log_bin_trust_function_creators1 # 当二进制日志(binlog)启用时允许创建存储函数/触发器而无需 SUPER 权限 (1允许)[mysqld,--character-set-serverutf8mb4,--collation-serverutf8mb4_bin,--transaction-isolationREAD-COMMITTED,--innodb_log_file_size256M,--max_allowed_packet256M,--log_bin_trust_function_creators1,]# 配置 MySQL 启动命令及参数volumes:# 定义数据卷挂载- mysql_data:/var/lib/mysql# 将数据卷挂载到容器的 /var/lib/mysql 目录restart: always# 设置容器始终重启策略ports:# 映射端口-3306:3306# 将容器的 3306 端口映射到主机的 3306 端口volumes:# 定义数据卷mysql_data:# 定义名为 mysql_data 的数据卷external:false# 数据卷为内部创建启动Mysql容器# 进入服务目录cdmysql# 启动容器dockercompose up-dDocker运行MySqlmysql容器变量https://hub.docker.com/_/mysqlDocker运行MySql5.7# 拉取镜像dockerpull mysql:5.7.41dockerpull mysql:8.0.33-oracle# 启动一个mysql5.7的容器## -v 挂载mysql的数据目录## 最后两个参数将所有表的默认编码和排序规则更改为使用 UTF-8 ( utf8mb4)dockerrun--namemysql\-dti-eMYSQL_ROOT_PASSWORDmysql密码\-p3306:3306\-v/my/own/datadir:/var/lib/mysql\--restartalways mysql:5.7.41\--character-set-serverutf8mb4\--collation-serverutf8mb4_unicode_ci# 进入容器dockerexec-timsyqlbash# 查看密码变量echo$MYSQL_ROOT_PASSWORDDocker运行MySql8# Mysql8建议指定一个强密码否则可能无法登录## 如果还是无法登录就检查下客户端的/etc/my.cnf配置dockerrun--namemysql8\-dti-eMYSQL_ROOT_PASSWORD密码\-p3306:3306\-v/my/own/datadir:/var/lib/mysql\--restartalways\--character-set-serverutf8mb4\--collation-serverutf8mb4_unicode_ci\mysql:oracle查看镜像支持的选项# 查看可用选项的完整列表dockerrun-it--rmmysql:tag--verbose--help-eMYSQL_DATABASE数据库名
返回列表