上一章:docker环境部署
介绍
本地开发项目时,通常使用的都是本地的数据库,本地的中间件,也就是说,数据库地址、中间件地址都是localhost,这样的地址外界无法访问,因此,本地的数据库,中间件只能用于开发测试使用,生产环境中都需要将数据库,中间件等部署到远程服务器中,这样,用户访问服务时,才能收集到用户的数据,将数据库,中间件部署到远程服务器中其实就是改变了数据库,中间件的访问地址,即将localhost修改为远程服务器的地址。
这里先介绍数据库的部署,中间件的部署后续会介绍。
部署mysql这里介绍两种方式,一种是原生的部署,一种是基于docker的部署。第二种部署方式需要搭建docker环境,本篇文章主要介绍docker部署mysql
文章内容都是建立在你目前已经有一台远程服务器的前提下的,我选择的是阿里云服务器,如果还没有服务器,可以去阿里云官网选择试用一个月的服务器,主要是熟悉项目部署的流程。
docker部署MySQL
首先创建挂载目录
#创建挂载目录
mkdir -p /data/mysql/data;
mkdir -p /data/mysql/conf;
然后创建yml文件
vim /data/mysql/docker-compose.yml
然后填入配置
version: '3'
services:
mysql:
image: mysql:5.7 #mysql版本
container_name: mysql
volumes:
- /data/mysql/data:/var/lib/mysql
- /data/mysql/conf/my.cnf:/etc/mysql/mysql.conf.d/mysqld.cnf
restart: always
ports:
- 3306:3306
environment:
MYSQL_ROOT_PASSWORD: 123456 #root用户密码
TZ: Asia/Shanghai
command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
创建配置文件
vim /data/mysql/conf/my.cnf
填入配置
[mysqld]
default-storage-engine=INNODB # 创建新表时将使用的默认存储引擎
character-set-server=utf8mb4 # 设置mysql服务端默认字符集
pid-file = /var/run/mysqld/mysqld.pid # pid文件所在目录
socket = /var/run/mysqld/mysqld.sock # 用于本地连接的socket套接字
datadir = /var/lib/mysql # 数据文件存放的目录
symbolic-links=0
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION # 定义mysql应该支持的sql语法,数据校验等!
# 允许最大连接数
max_connections=200
# 同一局域网内注意要唯一
server-id=3306
# 开启二进制日志功能 & 日志位置存放位置`/var/lib/mysql`
#log-bin=mysql-bin
log-bin=/var/lib/mysql/mysql-bin
# binlog格式
# 1. STATEMENT:基于SQL语句的模式,binlog 数据量小,但是某些语句和函数在复制过程可能导致数据不一致甚至出错;
# 2. MIXED:混合模式,根据语句来选用是 STATEMENT 还是 ROW 模式;
# 3. ROW:基于行的模式,记录的是行的完整变化。安全,但 binlog 会比其他两种模式大很多;
binlog_format=ROW
# FULL:binlog记录每一行的完整变更 MINIMAL:只记录影响后的行
binlog_row_image=FULL
# 日志文件大小
max_binlog_size=100M
# 定义清除过期日志的时间(这里设置为7天)
expire_logs_days=7
# ================= ↑↑↑ mysql主从同步配置end ↑↑↑ =================
[mysql]
default-character-set=utf8mb4
[client]
default-character-set=utf8mb4 # 设置mysql客户端默认字符集
进入对应的安装目录,启动容器
cd /data/mysql
docker-compose up -d
注意:启动容器之后,需要在服务器中开放3306端口,不然外界是连接不了服务器的。
至此,基于docker部署mysql就已经完成了,赶紧实操一下吧!后续还会有部署中间件和部署项目的文章,欢迎关注!