本文记录一下如何将Windows 10系统中的MySQL 8.0和MongoDB 4.4数据库迁移至CentOS 8系统中。
打开 MySQL Workbench 8.0 CE
,然后依次Server-->Data Export
然后将.sql
脚本文件上传到服务器上,比如/data/weibo_data.sql
。
首先要保证服务器上安装了MySQL,具体版本无所谓。
# 安装最新的mysql版本,可以使用dnf(确保已安装)
sudo dnf install @mysql
# 如果想安装指定版本,可以按照以下方式进行安装
# 下载MySQL官方的 Yum Repository
wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
# 安装
yum -y install mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql-community-server
# 启动MySQL
systemctl start mysqld.service
# 查看是否启动
systemctl status mysqld.service
# 如果是8.0以上的版本,默认密码为空,输入密码时直接回车就可以
# 如果是其他版本,比如5.7,可以通过以下命令找到密码
grep "password" /var/log/mysqld.log
# 进入数据库
mysql -u root –p
# 更改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password';
然后创建与Windows 10环境下MySQL数据库中同名的数据库,比如我的MySQL数据库中的数据库名为weibo
:
# 创建同名数据库weibo
create database weibo;
# 执行.sql脚本恢复数据
use test;
set names utf8;
source /data/weibo_data.sql
在恢复的过程中有可能会出现ERROR 1273 (HY000): Unknown collation: 'utf8mb4_0900_ai_ci
的错误提示,这是因为编码出现了异常,做一下更改即可解决:
1. 找到
.sql
脚本文件并打开,比如我的是/data/weibo_data.sql
;
2. 将文件中所有的utf8mb4_0900_ai_ci
替换为utf8_general_ci
;
3. 将文件中所有的utf8mb4
替换为utf8
;
4. 再次执行source /data/weibo_data.sql
。
然后可以查一下数据是否正确:
show tables;
# yaowen是weibo数据库中的一个表
select * from yaowen;
MongoDB数据库的备份与恢复可以使用mongodump
和mongorestore
,但是我搜索了一下我的安装路径,发现不存在。
百度了一下说相关工具还需要在单独的下载,可以直接去官网下载,下载的是一个压缩包,解压后相关的工具如下:
然后将其复制到MongoDB的安装路径下,我的是D:\Program Files\MongoDB\Server\4.4\bin
:
然后打开cmd
,执行如下命令:
# mongodump -d 数据库 -o 文件输出路径
mongodump -d weibo -o E:\Program\Python\Django\WeiBo\static\data
会生成一个名为weibo
的文件夹:
然后将其上传到服务器上。
首先要保证服务器上安装了MongoDB。
如果是腾讯云,阿里云之类的可以直接使用如下命令进行安装:
# 创建一个新的存储库文件来启用MongoDB存储库
sudo vim /etc/yum.repos.d/mongodb-org.repo
# 写入内容
[mongodb-org-4.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.4.asc
# 保存并退出
esc :wq
# 安装
sudo yum install mongodb-org
# 启动
sudo systemctl start mongod
然后直接使用mongorestore
命令恢复数据:
mongorestore -d weibo /data/weibo/
如果是华为云服务器,就有一点点麻烦,由于架构不一样,所以需要下载指定的arm64
版本的安装包,具体就百度一下吧,哈哈哈哈哈。
百度云服务器也可以,就是命令终端太low了,就没很少用了。
本次是毕设项目部署时的一次记录,由于抓取的数据都存在了本地的数据库上,为了方便答辩时演示,就将项目迁移到了服务器上。在迁移过程中也是遇到了诸多问题,比如数据库版本问题、系统架构问题以及相关数据库的备份与数据库的命令等等,经过一番百度也算是有所了解,继续努力!!!