在Ubuntu里启动docker mysql,导入来自阿里云的RDS数据库

项目需要低功耗运转,暂时没有太大的访问量,不太需要购买阿里云的RDS mysql,所以计划把数据移动到一个ECS里。

登录阿里云,从DMS页面的右上角的一排按钮中,找到导出,勾选所有表,然后导出一个sql文件。在本地打开,发现文字没有乱码,正常可用。

尝试在Ubuntu系统里安装mysql8,但是修改lower_case_table_names=1的时候,mysql无法启动,所以没有办法只能尝试用docker启动以后,后面发现docker启动真的很方便,即使是操作失误,也可以里面恢复,重新再试。

安装docker-ce

添加 Docker 的官方 GPG 密钥:

1
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

提示OK后, 增加官方安装源

1
2
3
4
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"

更新 apt 包索引,安装最新版本的 Docker Engine-Community

1
2
sudo apt update
sudo apt install docker-ce

拉取镜像

直接从一个镜像加速站点,拉取mysql的最新镜像。

1
2
3
4
5
docker pull dockerproxy.cn/mysql:latest

# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
dockerproxy.cn/mysql latest be960704dfac 9 days ago 602MB

启动镜像

先创建几个目录,用于挂载,然后启动docker的mysql instance。

1
2
3
mkdir -p /mydata/mysql/log /mydata/mysql/data /mydata/mysql/conf

docker run --name mysql -v /mydata/mysql/log:/var/log/mysql -v /mydata/mysql/data:/var/lib/mysql -v /mydata/mysql/conf:/etc/mysql/conf.d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql --lower_case_table_names=1 --init-connect="SET collation_connection=utf8mb4_0900_ai_ci" --init-connect="SET NAMES utf8mb4"

创建用户

1
2
3
4
5
6
7
8
9
10
docker exec -it mysql /bin/bash

mysql -u root -p

# 密码 123456, 在docker的启动命令里。

CREATE USER 'a_new_user'@'%' IDENTIFIED BY 'password_need_to_change';
GRANT ALL PRIVILEGES ON *.* TO 'a_new_user'@'%';
flush privileges;

到这里,就可以远程连接这个数据库了。

不推荐在这里直接创建数据库,会有编码,困扰了我好几次。

导入数据库

用Navicat输入创建的用户名和密码(a_new_user / password_need_to_change),连接数据库。
创建一个新的数据库,编码保持默认,然后执行从阿里云导出的sql,编码也保持默认,这样数据就导入进去了。

Notice: 正常情况下,这里会有一个基于utteranc.es的留言系统,如果看不到,可能要想想办法才能看到。

Powered by Hexo and Hexo-theme-hiker

Copyright © 2013 - 2024 Tiaobug All Rights Reserved.

本站总访问量    次