使用SSH导入和导出MySQL数据

今天刚体验这个这个命令,之前总是傻傻的在PHPMyadmin上上传下载和执行,现在看来真是太sb了。

在PHPMyAdmin中操作时,经常发生502,我都搞不懂到底是哪个地方出现问题了,网上的说法太多了,有的说是内存占用过多,有的说是上传文件限制。。。

另外在执行MySQL时,数据有100多M的时候,有时候会莫名奇妙中途中断,可能是sql哪个地方有问题了吧。

今天终于学习了一下这个命令行,太简单了,就一行,导入导出都是,然后就是速度非常飞速,瞬间备份到主机上了,也省得备份到本地。执行的时候导入了一个120M的数据,之前一直运行不了,这一次没想到5分钟不到就执行完好。

导出:

mysqldump -p(密码) -u (用户名) (数据库名) > /home/www/dbname.sql

示例:

假如我的数据库名字为dbname 用户名为www,密码为qdkfweb.cn,导出为caibaojian.sql

mysqldump -pqdkfweb.cn -u www dbname > /home/www/caibaojian.sql

导入:

mysql –u (用户名) –p(密码) (数据库名) < /home/www/caibaojian.sql

示例,以上面为同样例子导入caibaojian.sql到dbname这个数据库里

mysql -u www -pqdkfweb.cn dbname < /home/www/caibaojian.sql

如果你按照的是lnmp的系统,还有一个方法,直接复制/usr/local/mysql/var/(数据库名)这个文件夹到新的VPS也是可以的,这个办法也可以解救很多遇到问题的数据库。

不过我并没有在系统上找到这个,也不知道我的系统sql是放在哪个地方的,懒得折腾了,以后记住一定不要傻傻在PHPmyadmin上折腾了。

在我的系统上直接使用上面命名是没有问题的,但在lnmp上不知道行不行,如果不行,可以在前面加上执行路径。

/usr/local/mysql/bin/mysqldump –u (用户名) –p(密码) (数据库名) > /home/www/dbname.sql

导入数据过大时,可能会运行不了,提示:MySQL server has gone away

解决方法

找到/etc/my.cnf,修改配置:

[mysqld]
wait_timeout=2880000
interactive_timeout = 2880000
max_allowed_packet = 200M

应用时记住重启数据库哦~~

service mysql restart

关注我

我的微信公众号:前端开发博客,在后台回复以下关键字可以获取资源。

  • 回复「小抄」,领取Vue、JavaScript 和 WebComponent 小抄 PDF
  • 回复「Vue脑图」获取 Vue 相关脑图
  • 回复「思维图」获取 JavaScript 相关思维图
  • 回复「简历」获取简历制作建议
  • 回复「简历模板」获取精选的简历模板
  • 回复「加群」进入500人前端精英群
  • 回复「电子书」下载我整理的大量前端资源,含面试、Vue实战项目、CSS和JavaScript电子书等。
  • 回复「知识点」下载高清JavaScript知识点图谱

每日分享有用的前端开发知识,加我微信:caibaojian89 交流