【mysql】数据库迁移方法

背景:之前在做一个网站,最开始是在windows上写代码,数据库也在本地,后来要把网站发布到linux server上,于是需要把数据库也迁移过去。网上也找了一些方法,最后通过mysqldump实现了。(项目的数据库基于mysql,因此该方式仅限于mysql)

mysql的安装目录下有个data文件,里面存放着数据库以及其中表的数据,首先将本地的mysql下的一个数据库(假设为abc)导出,到处为abc.sql,可以存放在任意位置。

  • windows在cmd中输入:
    mysqldump -u USERNAME -p --database abc > D:abc.sql

上面我将数据库abc中的数据导出到了D盘下的abc.sql

下面需要将abc.sql传输到linux server上去,可以通过ssh,或者放在web上通过wget下载等。

  • abc.sql放到linux上之后,再通过mysqldump进行恢复:
    mysqldump -u USERNAME -p --database abc < /PATH_TO _abc.sql/abc.sql

以上需要将PATH_TO _abc.sql替换为存放abc.sql的路径。

  • 以上过程可能会报错,具体为:
    ERROR 6 (HY000) at line 30: Error on delete of './abc/abc_table.frm' (Errcode: 13)

  • 这是有关权限的报错,可以试着将linux mysql下的abc数据库数据文件夹权限设置为777:
    chmod 777 /var/lib/mysql/abc

如果还有此类错误,可以将abc.sql以及mysql的权限设置为777(此行为仅仅用于测试,在正式使用时全部设置为777还是有点不安全的)。

  • 下面就在linux下测试一下是否能正常使用mysql命令:
    mysql -u USERNAME -p
    show databases;
    use abc;
    show tables;
    (假设abc中有张表abc_table)
    select * from abc_table(可以根据表的内容调整select的内容)
    如果能正常显示,表示数据库迁移成功。

在用mysqldump之前,我曾经尝试直接将数据库文件夹复制到linux下,虽然在实际测试时可以显示数据库和表,但在select时是找不到内容的,后来在网上看到需要将ibdata1 这个文件拷过去,但做完了以后也没用,后来索性就用mysqldump备份。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值