Docker 安装mysql
快捷启动
docker run --name mysql -e MYSQL_ROOT_PASSWORD=your_password -d mysql:5.7
::: info 命令介绍
docker run
: 这是 Docker 命令的一部分,用于创建并运行一个新的容器。--name mysql
: 这个选项指定了容器的名称,这里是mysql
。-e MYSQL_ROOT_PASSWORD=your_password
: 这个选项设置了环境变量MYSQL_ROOT_PASSWORD
,指定了 MySQL 数据库的 root 用户的密码,这里你需要将your_password
替换为你自己设置的密码。-d
: 这个选项表示在后台运行容器,即“守护态”运行。mysql:5.8
: 这个部分指定了要运行的容器的镜像名称和版本。这里是 MySQL 5.8 版本的官方镜像。
:::
配置启动
创建文件夹
sudo mkdir -p /home/docker/mysql/data /home/docker/mysql/conf.d
设置权限
sudo chown -R root /home/docker/mysql
创建my.cnf
在conf.d文件夹下创建my.cnf
sudo vim /home/docker/mysql/conf.d/my.cnf
::: details 提示
若提示sudo: vim:找不到命令
或 sudo: vim:command not find
则去下载vim工具,然后再去创建my.cnf并粘贴内容
sudo yum install vim -y
:::
my.cnf内容
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
skip-host-cache
skip-name-resolve
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
secure-file-priv=/var/lib/mysql-files
user=mysql
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
##下面为添加的自定义配置
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
sql_mode= STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
max_allowed_packet=10M
default-time_zone='+8:00'
default_authentication_plugin=mysql_native_password
#主数据库配置
log-bin=mysql-bin
server-id=1
启动mysql
docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=your_password \
--name mysql \
-v /home/docker/mysql/data:/var/lib/mysql \
-v /home/docker/mysql/conf.d:/etc/mysql/conf.d \
--privileged=true \
--restart=always \
-d mysql:5.7
::: info 命令介绍
docker run
: 这是 Docker 命令的一部分,用于创建并运行一个新的容器。-p 3306:3306
: 这个选项指定了端口映射,将容器内部的 MySQL 服务端口 3306 映射到主机的 3306 端口,以便可以通过主机的端口来访问 MySQL 服务。-e MYSQL_ROOT_PASSWORD=your_password
: 这个选项设置了环境变量MYSQL_ROOT_PASSWORD
,指定了 MySQL 数据库的 root 用户的密码,这里你需要将your_password
替换为你自己设置的密码。--name mysql
: 这个选项指定了容器的名称,这里是mysql
。-v /home/docker/mysql/data:/var/lib/mysql
: 这个选项将主机的目录/home/docker/mysql/data
挂载到容器内的/var/lib/mysql
目录,用于持久化存储 MySQL 数据。-v /home/docker/mysql/conf.d:/etc/mysql/conf.d
: 这个选项将主机的目录/home/docker/mysql/conf.d
挂载到容器内的/etc/mysql/conf.d
目录,用于将自定义的 MySQL 配置文件挂载到容器内。--privileged=true
: 这个选项授予容器一些特权,通常用于需要特殊权限的容器。--restart=always
: 这个选项指定容器退出后总是重新启动。-d
: 这个选项表示在后台运行容器,即“守护态”运行。mysql:5.8
: 这个部分指定了要运行的容器的镜像名称和版本。这里是 MySQL 5.8 版本的官方镜像。
:::
开放端口
开放端口3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
重启防火墙
firewall-cmd --reload
::: warning 命令介绍
若是云服务器,需要在云服务厂商哪里开放规则
:::