公司mysql使用的是5.6版本,不支持json,因此需要升级服务,使用传统方式在服务器上安装mysql服务十分复杂。

相比较,使用docker安装就非常简单、便捷。而且可以很容易切换版本。
通过文件挂载方式,也可以将数据文件挂载在服务器上,再次迁移,升级也十分方便。

而且docker中,有5.7,5.8等多种版本可供选择。

安装

可以在docker官方仓库中查看镜像,寻找适合的mysql版本

启动脚本

创建run.sh内容如下

1
2
3
4
5
6
7
8
#!/bin/bash

docker run --name mysql-5.7.25 \
-p 3306:3306 \
-v /data/services/mysql/data:/var/lib/mysql \
-v /data/services/mysql/conf:/etc/mysql/ \
-e MYSQL_ROOT_PASSWORD=my-secret-pw \
-d mysql:5.7.25

将数据库文件及配置文件挂载在服务器上,这样可以防止docker容器删除后,将数据也删除了,方便数据重启、迁移。

可以docker ps查看容器是否开启。如果需要外部访问,记得开放3306端口。

可以进入容器查看

1
docker exec -it mysql-5.7.25 bash

在容器中登录mysql

1
mysql -u root -p my-secret-pw

数据迁移

可以使用mysqldumpsource命令迁移

可以进入容器

导出

docker exec -it mysql-5.7.25 bash

mysqldump -u root -p test_db > /var/lib/mysql/test.sql

可以看到

导入

1
2
3
4
5
6
7
8
9
10
11
12
13
mysql -u root -p my-secret-pw

create database test_db;
use test_db;
set names utf8;

# 创建用户
grant select,insert,update,delete on test_db.* to test@% identified by “testabc”;
# 从新加载权限,将权限从内存写入数据库
flush privileges;

#导入
source /var/lib/mysql/test.sql