Docker部署MySQL+挂载目录+配置
0x01 拉取并运行
# 拉取 docker pull mysql:5.7 # 运行 docker run -p 3306:3306 --name mysql -v /mydata/mysql/log:/var/log/mysql -v /mydata/mysql/data:/var/lib/mysql -v /mydata/mysql/conf:/etc/mysql -e MYSQL_ROOT_PASSWORD=root --restart=always -d mysql:5.7 # -p 主机端口:容器端口 - 容器端口映射到主机对应端口 # --name 容器名称 # -v 主机目录:容器目录 - 分别挂载log、data和conf目录到主机的mydata/mysql目录 # -e MYSQL_ROOT_PASSWORD=密码 - 设置root密码 # --restart=always - 在重启docker时,自动启动mysql容器 # -d - 以后台方式运行
0x02 配置MySQL
vi /mydata/mysql/conf/my.conf # 配置文件内容 [client] default-character-set=utf-8 [mysql] default-character-set=utf-8 [mysqlld] init_connect=SET collation_connection=utf8_unicode_ci init_connect=SET NAMES utf8 character-set-server=utf8 collation-server=utf8_unicode_ci skip-character-set-client-handshake skip-name-resolve # 重启容器 docker restart mysql
0x03 开启端口
# 查看防火墙状态 systemctl status firewalld # 查看zone名称 firewall-cmd --get-active-zones # 添加端口 firewall-cmd --zone=public --add-port=3306/tcp --permanent # 重启防火墙 firewall-cmd --reload # 查看端口是否开放 firewall-cmd --query-port=3306/tcp
防火墙操作
firewall(centos7)
systemctl status firewalld # 查看状态 systemctl start firewalld # 启动, systemctl enable firewalld # 开机启动 systemctl restart firewalld # 重启 systemctl stop firewalld # 关闭 systemctl disable firewalld # 取消开机启动
iptables
service iptables status # 查看状态 service iptables start # 单次开启,下次根据配置是否开启 service iptables stop # 单次关闭,下次根据配置是否开启 chkconfig iptables on # 配置开启,需重启 chkconfig iptables off # 配置关闭,需重启
