[TOC]
部署 mysql
官方文档:
2.8 Deploying MySQL on Linux with Docker - 概述,实际上没啥价值
2.8.1 Basic Steps for MySQL Server Deployment with Docker - 包含一个简单的基本介绍,没有介绍数据持久化的问题
2.8.2 More Topics on Deploying MySQL Server with Docker - 介绍了需要的参数,包括持久化问题
我采用的命令是:
docker run --name mysql -d \
-p 3306:3306 \
-v mysql-data:/var/lib/mysql \
-v /etc/timezone:/etc/timezone \
-v /etc/localtime:/etc/localtime \
--restart=always \
mysql/mysql-server:5.7.26
配置完 mysql 以后,设置新密码
首先,登录 mysql
docker exec -it mysql mysql -uroot -pxxxxxx
修改密码
alter user `root`@`localhost` identified by 'PASSWORD';
# 创建用户同时授权
grant all privileges on *.* to test@localhost identified by 'PASSWORD';
这里可以用宿主机的 ip 地址可以作为局域网访问的授权 host,比如
# 创建用户同时授权
grant all privileges on *.* to test@'192.168.0.%' identified by 'PASSWORD';
开启 回滚
echo "
# 开启 binlog 支持数据回滚
server_id=1
binlog_format=row
binlog_row_image=full
# 控制 binlog 文件大小
log_bin=/var/log/mysql/mysql-bin.log
max_binlog_size=1G
expire_logs_days=30
">>/etc/my.cnf
注意给权限,否则将导致无法启动问题,参见:mysql配置binlog后无法启动解决办法
mkdir -p /var/log/mysql
chown -R mysql:mysql /var/log/mysql
开启 慢日志
echo "
# 开启慢日志
slow_query_log = ON
slow_query_log_file = /var/log/mysql/mysql-slow.log
long_query_time = 1
">>/etc/my.cnf
innodb 独占表空间
innodb_file_per_table
echo "
# innodb 独占表空间
innodb_file_per_table = 1
">>/etc/my.cnf
网友评论