律师网站建设推荐,wordpress分类链接后加,网站建设佰首选金手指五,提供手机自适应网站制作定义
使用Docker运行MySQL有许多优势。它允许数据库程序和数据分离#xff0c;增强了数据的安全性和可靠性。Docker Image的轻便性简化了MySQL的部署和迁移#xff0c;而Docker的资源隔离功能确保了应用程序之间无冲突。结合中间件和容器化系统#xff0c;Docker为MySQL提供…
定义
使用Docker运行MySQL有许多优势。它允许数据库程序和数据分离增强了数据的安全性和可靠性。Docker Image的轻便性简化了MySQL的部署和迁移而Docker的资源隔离功能确保了应用程序之间无冲突。结合中间件和容器化系统Docker为MySQL提供了自动伸缩和容灾能力。此外版本管理和升级也变得简单易行。对于数据丢失不敏感的业务数据库分片技术可提高系统吞吐量。
代码案例 第一种方式适用于通常只想快速拥有一个mysql数据库环境如下代码
docker run -d --nethost --namemysql8-server -e MYSQL_ROOT_PASSWORDroot mysql:8.0.35其中-e MYSQL_ROOT_PASSWORD指定root账号的密码。
第二种方式适用于通常只想快速拥有一个mysql数据库环境但是又不想把root账号给出去如下代码
docker run -d --nethost --namemysql8-server -e MYSQL_ROOT_PASSWORDroot -e MYSQL_USERxxx_user -e MYSQL_PASSWORDxxx_password -e MYSQL_DATABASExxx_db mysql:8.0.35其中-e MYSQL_ROOT_PASSWORD指定root账号的密码-e MYSQL_USERxxx_user指定一个新的用户-e MYSQL_PASSWORD指定用户的密码-e MYSQL_DATABASE指定这个新用户可以看到那个数据库。
第三种方式适用于通常只想快速拥有一个mysql数据库环境但是又不想把root账号给出去但是又想指定数据库的一些参数信息比如字符集、排序规则等如下代码
docker run -d --nethost --namemysql8-server -e MYSQL_ROOT_PASSWORDroot -e MYSQL_USERxxx_user -e MYSQL_PASSWORDxxx_password -e MYSQL_DATABASExxx_db -e TZAsia/Shanghai mysql:8.0.35 --character-set-serverutf8mb4 --collation-serverutf8mb4_0900_as_cs 其中-e MYSQL_ROOT_PASSWORD指定root账号的密码-e MYSQL_USERxxx_user指定一个新的用户-e MYSQL_PASSWORD指定用户的密码-e MYSQL_DATABASE指定这个新用户可以看到那个数据库-e TZAsia/Shanghai指定数据库时区--character-set-serverutf8mb4 --collation-serverutf8mb4_0900_as_cs指定字符集和排序规则注意如果需要指定数据库运行参数信息则该信息必须得放在image的后面
第四种方式推荐推荐将数据库运行参数信息放到独立的文件中比如在my.cnf文件在my.cnf文件中除了可以指定字符集、排序规则等参数还可以在该文件中可以指定更多的参数甚至可以实现主从、读写分离的配置如下代码
docker run -itd \
--nethost \
-v /data/docker/mysql8/data:/var/lib/mysql \
-v /data/docker/mysql8/logs:/var/log/mysql \
-v /data/docker/mysql8/my.cnf:/etc/mysql/conf.d/my.cnf \
-e MYSQL_ROOT_PASSWORDroot \
--privilegedtrue \
--name mysql8-server \
mysql:8.0.35
my.cnf参考案例
[mysql]
# 设置mysql客户端默认字符集
default-character-setutf8mb4
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port3306
# 设置mysql客户端默认字符集
default-character-setutf8mb4
[mysqld]
# 服务端口号 默认3306
port3306
# 允许访问的IP网段
bind-address0.0.0.0
# 服务端使用的字符集默认为utf8mb4
character-set-serverutf8mb4
# 创建新表时将使用的默认存储引擎
default-storage-engineINNODB
# 数据库字符集对应一些排序等规则
collation-server utf8mb4_0900_as_cs