今天刚体验这个这个命令,之前总是傻傻的在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