[TOC]
部署 mysql
官方文檔:
2.8 Deploying MySQL on Linux with Docker - 概述景东,實(shí)際上沒(méi)啥價(jià)值
2.8.1 Basic Steps for MySQL Server Deployment with Docker - 包含一個(gè)簡(jiǎn)單的基本介紹,沒(méi)有介紹數(shù)據(jù)持久化的問(wèn)題
2.8.2 More Topics on Deploying MySQL Server with Docker - 介紹了需要的參數(shù),包括持久化問(wèn)題
我采用的命令是:
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 以后,設(shè)置新密碼
首先,登錄 mysql
docker exec -it mysql mysql -uroot -pxxxxxx
修改密碼
alter user `root`@`localhost` identified by 'PASSWORD';
# 創(chuàng)建用戶同時(shí)授權(quán)
grant all privileges on *.* to test@localhost identified by 'PASSWORD';
這里可以用宿主機(jī)的 ip 地址可以作為局域網(wǎng)訪問(wèn)的授權(quán) host,比如
# 創(chuàng)建用戶同時(shí)授權(quán)
grant all privileges on *.* to test@'192.168.0.%' identified by 'PASSWORD';
開(kāi)啟 回滾
echo "
# 開(kāi)啟 binlog 支持?jǐn)?shù)據(jù)回滾
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
注意給權(quán)限唾糯,否則將導(dǎo)致無(wú)法啟動(dòng)問(wèn)題,參見(jiàn):mysql配置binlog后無(wú)法啟動(dòng)解決辦法
mkdir -p /var/log/mysql
chown -R mysql:mysql /var/log/mysql
開(kāi)啟 慢日志
echo "
# 開(kāi)啟慢日志
slow_query_log = ON
slow_query_log_file = /var/log/mysql/mysql-slow.log
long_query_time = 1
">>/etc/my.cnf
innodb 獨(dú)占表空間
innodb_file_per_table
echo "
# innodb 獨(dú)占表空間
innodb_file_per_table = 1
">>/etc/my.cnf
參考博客: MySQL Server參數(shù)優(yōu)化 - innodb_file_per_table(獨(dú)立表空間)