Docker中配置安装MySQL

时间:2022-04-13

作者:tuziailuobo

简介:在Docker中安装MySQL并进行配置,将数据挂载到本地

Docker中配置安装MySQL

说明:默认已经安装好docker,环境是阿里云ubuntu20,阿里云安全组开放3306端口.

1、下载MySQL镜像

docker pull mysql:5.7

2、创建MySQL容器的同时挂载数据

docker run -d --restart=always --name mysql02 -p 3306:3306 -v /home/mysql/data:/var/lib/mysql -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/log:/var/log/mysql -e TZ=Asia/Shanghai -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci
# 或者
docker run -d --restart=always --name mysql01 -p 3306:3306 \ 
-v /home/mysql/data:/var/lib/mysql \
-v /home/mysql/conf:/etc/mysql/conf.d \
-v /home/mysql/log:/var/log/mysql \
-e TZ=Asia/Shanghai \
-e MYSQL_ROOT_PASSWORD=123456 \
mysql:5.7 \
--character-set-server=utf8mb4 \
--collation-server=utf8mb4_general_ci

# 说明
# -d 后台运行
# --restart=always 设置开机重启
# --name database_ 设置该容器的名称,这儿是自定义,可以自由备注
# -p 设置端口号映射,容器外端口:容器内端口
# -v 卷挂载 (容器外目录:容器内目录)这儿我们对数据目录、配置文件目录和日志目录进行了挂载,类似这些需要被持久化的数据,需要的存储至容器外,避免容器删除后数据的丢失
# -e msyql的环境配置

3、测试连接

ip:服务器宿主机的ip地址

端口:3306,用户:root,密码:123456

4、 验证数据挂载是否成功

创建一个新数据库

然后去宿主机的/home/mysql/data目录下查看是否有该库的数据记录。

5、补充

/home/mysql/conf下新建文件my.cnf。由于做了挂载,该文件相当与容器内/etc/mysql/conf.d/my.cnf

MySQl的容器实例设置会组合/etc/mysql/conf.d/my/cnf/etc/mysql/my.cnf两个文件。

#mysqld
[mysqld]
character-set-server = utf8mb4
collation-server = utf8mb4_general_ci
#表名字大小写是否敏感,1表示不敏感
lower_case_table_names = 1
#最大连接数
max_connections = 500
 
#最大错误连接数
max_connect_errors = 1000
 
############################主从复制设置#####################################
server-id=10
#开启mysql binlog功能
log-bin=mysql-bin
 
#binlog记录内容的方式,记录被操作的每一行
binlog_format = ROW
 
#对于binlog_format = ROW模式时,减少记录日志的内容,只记录受影响的列
binlog_row_image = minimal
 
#master status and connection information输出到表mysql.slave_master_info中
master_info_repository = TABLE
 
#the slave‘s position in the relay logs输出到表mysql.slave_relay_log_info中
relay_log_info_repository = TABLE
 
#作为从库时生效,想进行级联复制,则需要此参数
log_slave_updates
 
#作为从库时生效,中继日志relay-log可以自我修复
relay_log_recovery = 1
 
#作为从库时生效,主从复制时忽略的错误
slave_skip_errors = ddl_exist_errors
 
[mysql]
default-character-set = utf8mb4
[mysqld_safe]
default-character-set = utf8mb4
[client]
default-character-set = utf8mb4

你可能感兴趣的:(Docker,docker,mysql)