您的位置:首页 > 汽车 > 新车 > 装修设计方案范本_怎么制作图片和视频一起的小视频_电商软文范例_kol推广是什么意思

装修设计方案范本_怎么制作图片和视频一起的小视频_电商软文范例_kol推广是什么意思

2024/12/21 19:30:14 来源:https://blog.csdn.net/Shepherdppz/article/details/144251892  浏览:    关键词:装修设计方案范本_怎么制作图片和视频一起的小视频_电商软文范例_kol推广是什么意思
装修设计方案范本_怎么制作图片和视频一起的小视频_电商软文范例_kol推广是什么意思

将mysql数据迁移到群晖NAS

  • 情况和问题
  • 前提条件
  • 方法1,使用管道方式传递数据
  • 方法2,导出数据为文件,复制到NAS上再导入

情况和问题

原本大量的金融数据保存在电脑本地硬盘的mysql数据库中,随着数据量越来越大,电脑的硬盘吃紧,正好把我的群晖NAS升级到了DS923+并且增加了4T的存储空间,可以使用Docker安装mysql并且存储空间不再是个问题,因此打算将电脑中的数据全部迁移到群晖NAS中。

这里记录的方法可以用来将电脑本地mysql数据库中的数据转移到群晖NAS中。

前提条件

  • 本地电脑上运行一个mysql server,并存有大量数据
  • 群晖NAS中已经安装好mysql
  • 在mysql中创建好一个空数据库,并且已经可以通过局域网或外网远程访问
  • 群晖NAS中启用了SSH服务(如果使用第二种方法,需要这个条件)

在群晖NAS中安装mysql需要用到Docker(现在已经更名为Container Manager,但实质是一回事),关于在群晖NAS中安装mysql,请参考另一片文件,这里不赘述。

方法1,使用管道方式传递数据

使用mysqldump命令在本地terminal中可以直接传递数据到远程数据库:

mysqldump -u user -pPassword db_name table_name [table_name] | mysql -u user -pPassword -h host db_name
# 如果在命令行中直接输入密码,密码与'-p'之间不要留空格

示例如下,如果要将本地数据传至192.168.0.5的远程服务器上:

mysqldump -u jackie -p test_db index_daily | mysql -u jackie -p -h 192.168.0.5 test_db

这种方法胜在简单容易,但是如果传输数据量大,这种方法速度相当慢,而且随着数据量增大,速度是越来越慢的,导致耗时呈指数级上升,如果一张数据表的数据量达到千万行级别,数据表占用空间达到1GB以上,迁移耗时会达到数小时甚至几十小时。此时建议采用方法二:

方法2,导出数据为文件,复制到NAS上再导入

使用下面命令导出数据表为本地文件:

mysqldump -u user -p db_name table_name > file_name.sql
例如
mysqldump -u jackie -p test_db index_daily > index_daily.sql

导出文件后将文件复制到NAS,然后使用以下命令通过ssh登录NAS的命令行:

ssh user@host_ip -p port
其中port是在群晖NAS上开启的SSH服务端口,host_ip是群晖NAS的局域网IP,例如:
ssh jackie@192.168.0.5 -p 22

进入群晖NAS的命令行模式后,就能看到复制过来的sql文件了。但这个文件现在在NAS本地路径下,而mysql是在docker容器中运行的,我们还必须把NAS本地路径下的sql文件复制到docker容器路径中,才能使用它。使用下面的命令将文件复制过去(注意必须使用sudo权限):

sudo docker cp file_path_name container_id:target_path_name
例如,将文件index_daily从群晖NAS本地路径复制到id为mysql的容器中:
sudo docker cp /index_daily.sql mysql:/

接下来,就可以进入容器,查看文件是否存在,使用下面命令进入容器:

sudo docker exec -it container_id bash
例如:
sudo docker exec -it mysql bash

在容器中确认文件存在后,使用下面命令导入数据:

mysql -u user -p db_name < file_name.sql
例如,将刚才导出的文件导入数据库:
mysql -u jackie -p test_db < index_daily.sql

通过上面命令,将数据导入数据库

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com