因流量逐步增加随即数据库要从mysql换成monggodb,所以有了数据迁移的需求
首先需要导出mysql的数据,导出格式为.CSV的文件
使用navicat链接mysql数据库注意,需要使用拥有所有权限的用户
登录mysql
mysql -u root -pZxcvbnm@2024
CREATE USER 'slave'@'%' IDENTIFIED BY 'Zxcvbnm@2024'; 创建用户
GRANT ALL PRIVILEGES ON *.* TO slave; 授权最高权限
登录navicat链接mysql数据库
在navicat登录mysql后根据需求导出对应的表
导入monggodb的话需要CSV文件
到这mysql的数据就导出完成了,下面是导入monggodb的操作
首先注意monggodb默认关闭了ipv6的链接,我这里使用的是monggodb5.0.19版本
部署monggodb单节点文档有需要的可以看看
Monggodb单节点快速部署_mongodb单节点部署-CSDN博客
如果直接使用monggodb链接navicat会报错
Xsuitable servers found : serverselectiontimeoutms expired : [ connection refused calling ismasterEARE 原因是monggodb默认没有开启ipv6
首先我们需要创建monggodb的配置文件开启支持ipv6通信
vim /data/mongodb/mongod.conf
storage:
dbPath: /data/mongodb/data #数据存放目录
net:
port: 27017 #monggodb使用的端口
bindIp: 0.0.0.0 #支持任意ipv4地址访问
ipv6: true #开启ipv6
然后重新启动monggodb即可
mongod --dbpath /data/mongodb/data/ --logpath /data/mongodb/log/mongod.log --fork --config /data/mongodb/mongod.conf
然后再次使用navicat链接monggodb即可
在导入数据前我们需要手动创建需要用到的库
mongo 登录monggo
use test 创建test库
在navicat登录monggodb后根据需求导入对应的表
注意从 CSV 文件导入数据到 MongoDB 时,如果 CSV 文件中没有提供任何字段作为 _id,MongoDB 就会自动生成一个唯一的 _id 值,这个自动生成的 _id 字段不会影响使用 MongoDB 数据。
到这数据就迁移完成了,多个表重复以上操作即可。
登录mongodb
查看所有库 show dbs
查看库里所有表 show tables
注意生产环境可以增加一下步骤
先把mysql需要迁移的表使用navicat导出cvs文件。
在虚拟机部署一个monggodb,使用navicat导入mysql的cvs文件。(注意导入前需要先创建对应库,按照库名导入)
导入完所有数据后,在monggodb虚拟机上备份monggodb实例
mongodump --host 192.168.197.138 --port 27017 --username obradmin --password Zxcvbnm@2023 --out /data 备份整个monggodb实例命令
在把备份的monggodb的.bson文件恢复到对应环境中。
mongorestore --db test error_log.bson
使用mongodump、mongorestore 报错没有可执行文件的话可以使用yum下载一个mongodb然后拷贝这个执行文件到/data/mongdb/bin目录下