Powered by md-Blog  文 - 篇  访客 -

Docker安装MySQL


  分类:Docker  / 
更新:2021-09-24 19:18:49  /  创建:2021-09-24 19:18:49
不要删除
以 MySQL 5.7 安装为例。

1、拉取镜像或者导入镜像

拉取镜像
docker pull mysql:5.7
导入镜像
docker load < mysql.tar

2、创建用于挂载的目录

由于避免容器停止造成数据丢失的情况,我们需要挂载宿主机的真实目录到容器中。(日志目录数据目录配置目录

由于我把家目录容量配置过大,所以把数据放到了 home 文件夹下。
mkdir -p /home/data/mysql/logs /home/data/mysql/data /home/data/mysql/conf

3、创建 MySQL 配置文件

宿主机操作

cd /home/data/mysql
vim my.cnf
[mysqld]
user=mysql
character-set-server=utf8
default_authentication_plugin=mysql_native_password
secure_file_priv=/var/lib/mysql
expire_logs_days=7
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
max_connections=1000
 
[client]
default-character-set=utf8
 
[mysql]
default-character-set=utf8

4、创建容器

123456 替换成你的数据库密码,这里我把端口号设置成了 33060,当然对外 3306 也可以。
docker run --restart=always -p 33060:3306 --name mysql -v /home/data/mysql/conf:/etc/mysql  -v /home/data/mysql/logs:/var/log/mysql -v /home/data/mysql/data:/var/lib/mysql -v /home/data/mysql/my.cnf:/etc/mysql/my.cnf -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
参数说明
  • --restart=always 当docker重启时,容器也重启
  • --name 容器命名
  • -p 33060:3306 宿主机和容器端口映射
  • -v(此命令中有三个-v参数) 挂载数据等内容,避免容器重启造成的数据丢失
  • -e 设置环境变量(此处设置了mysql的密码)
  • -d 后台启动(容器不会因为shell的退出而停止运行)

5、终端进入容器

docker exec -it mysql bash

6、连接数据库

123456 替换成你的数据库密码
mysql -uroot -p123456

不要删除

小站不易,感谢支持!