最近发现一个网站导航标签页不错,就想着部署下并写一篇教程。发现需要用 MySQL,就先写一篇使用 Doocker 部署 MySQL 的教程。

特点

  • MySQL数据库是用C和C++语言编写的,以保证源码的可移植性
  • 支持多个操作系统例如:Windows、Linux、Mac OS等等
  • 支持多线程,可以充分的利用CPU资源
  • 为多种编程语言提供API,包括C语言,Java,PHP。Python语言等
  • MySQL优化了SQL算法,有效的提高了查询速度
  • MySQL开放源代码且无版权制约,自主性强、使用成本低。
  • MySQL历史悠久、社区及用户非常活跃,遇到问题,可以很快获取到帮助。

部署

1. 部署准备

您需要一台能够运行可执行文件的 NAS 或主机(如 Linux 服务器)。

2. 部署步骤

  1. 打开 文件管理 新建以下目录。
  2. conf 配置目录
  3. data 数据库目录
  4. init-scripts 初始化脚本目录
  5. conf 目录中放入本地编辑好的 my.cnf文件,内容如下:

    [mysqld]
    bind-address = 0.0.0.0       # 允许远程访问 :ml-citation{ref="1" data="citationList"}
    character-set-server=utf8mb4  # 字符集配置 :ml-citation{ref="1,5" data="citationList"}
    skip-name-resolve             # 禁用DNS解析提升性能 :ml-citation{ref="5" data="citationList"}
    max_connections=1024         # 连接数调整 :ml-citation{ref="5" data="citationList"}

  1. 打开 Docker 切换到 Compose -> 新增项目,填入下图内容。

compser.yml 文件内容

services:
  mysql:
    image: mysql:8.0.42
    container_name: mysql-8.0.42
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: test1234
      MYSQL_DEFAULT_CHARACTER_SET: utf8mb4
      MYSQL_COLLATION: utf8mb4_unicode_ci
    ports:
      - "3306:3306"
    volumes:
      - /vol1/1000/Dockers/mysql/data:/var/lib/mysql
      - /vol1/1000/Dockers/mysql/conf:/etc/mysql/conf.d
      - /vol1/1000/Dockers/mysql/init-scripts:/docker-entrypoint-initdb.d

点击 确定 按钮后,返回 容器 查看是否部署完成。

测试

进入容器,使用密码登录数据库,并查看数据库有没有创建所指定的库,库里面有没有导入你的sql数据

### docker exec -it 容器ID(使用docker ps查看) /bin/bash
$ docker exec -it e592ac9bfa70 /bin/bash
# root@e592ac9bfa70:/# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 31451
Server version: 5.7.18 MySQL Community Server (GPL)

Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

# 查看数据
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql_data_test    |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

mysql> use mysql_data_test  #这个是我自己的恢复数据文件
mysql> show tables;
.......

到这里mysql就算搭建完成了。。