zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

Docker 安装 MySQL

2023-09-11 14:18:39 时间

二、创建MySQL容器

1、建立目录映射,创建目录mysql,用于存放后面的相关东西。

mkdir -p $PWD/mysql/data $PWD/mysql/logs $PWD/mysql/conf

data目录将映射为mysql容器配置的数据文件存放路径

logs目录将映射为mysql容器的日志目录

conf目录里的配置文件将映射为mysql容器的配置文件

2、创建my.cnf配置文件

touch /opt/mysql/my.cnf

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

3、创建容器,并后台启动

运行容器

docker run --restart=always --privileged=true -v $PWD/mysql/data/:/var/lib/mysql -v $PWD/mysql/logs/:/var/log/mysql -v $PWD/mysql/conf/:/etc/mysql -v $PWD/mysql/my.cnf:/etc/mysql/my.cnf -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

命令说明:

  • -p 3306:3306:将容器的3306端口映射到主机的3306端口

  • -v $PWD/my.cnf:/etc/mysql/my.cnf:将主机当前目录下的conf/my.cnf挂载到容器的/etc/mysql/my.cnf

  • -v $PWD/logs:/logs:将主机当前目录下的logs目录挂载到容器的/logs

  • -v $PWD/data:/mysql_data:将主机当前目录下的data目录挂载到容器的/mysql_data

  • -e MYSQL_ROOT_PASSWORD=123456:初始化root用户的密码

查看容器启动情况

root@localhost:~/mysql$ docker ps
CONTAINER ID    IMAGE         COMMAND                  ...  PORTS                    NAMES
21cb89213c93    mysql:5.6    "docker-entrypoint.sh"    ...  0.0.0.0:3306->3306/tcp   mymysql

解决问题:

windows下:修改my.ini 在[mysqld]内加入secure_file_priv=/var/lib/mysql

linux下:修改my.cnf 在[mysqld]内加入secure_file_priv=/var/lib/mysql

$PWD