快捷启动

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 命令介绍

若是云服务器,需要在云服务厂商哪里开放规则

:::