原创

linux中mysql命令方式备份数据的问题

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://tuzongxun.blog.csdn.net/article/details/46227003

这几天公司新出了个组件化的项目,里面需要用到mysql数据库相关的技术,由于之前一直用的mongodb,所以mysql几乎忘光了,于是只能在linux虚拟机中重新开始学习。

基本的增删改查还好,但是在数据备份的上遇到了一些问题,好在一番尝试之后终于成功。


Mysql的api以及网上说的备份命令是:mysqldump  -uroot –p 要备份的数据库名> 目标路径/目标文件名.sql,于是我就照着敲了一遍,但是结果报了一个2002的异常(补充:一开始用这个命令的时候是提示找不到mysqldump的,后来用了软连接ln把mysqldump命令实际地址连接到usr/bin):

mysqldump:Got error: 2002: Can't connect to local MySQL server through socket'/tmp/mysql.sock' (2) when trying to connect,如图1:


 


于是查了资料以后,我又进行了一些修改,如图2:

 



但是呢,这时候2002是没有了,取而代之的却是有出现了1045错误:mysqldump: Got error: 1045: Access denied for user 'root'@'localhost'(using password: YES) when trying to connect,如图3:



 

估摸着这意思应该是说root用户和localhost权限方面有问题,因为我记得我在设置mysql远程访问的时候把host都设置成了%,如图4:



 

于是又在网上搜索了一下之后,又找到了另一个备份方面的命令,尝试之后发现可行,如图5:



 

至此,已经在linux虚拟机中成功备份mysql数据库,但是这个命令未免就太长了,再想到mysql的api说的应该总不会错吧,于是便想着优化一下。

那么,既然1045出现的错误我已经大概能猜到是用户权限的问题,于是便从这里下手,没有root的localhost,那就加上吧。进入数据库,使用mysql,如图4,然后添加用户,如图6:



再次查看user表,可以发现成功添加,如图7:


 

那么备份的命令便可以变成优化之后的了,如图8:



 

显而易见,命令变短了,只是依旧还不够短,于是再次查找资料后找到了一个解决办法,需要把mysql.sock的实际指向地址给链接到2002错误中的地址,我的修改如图9:


 

那么最后,大概就是见证奇迹的时刻了吧,该验证api上的说法了:输命令,回车,再次成功备份,至此算是大功告成了,如图10:


 

总结一下,备份的话这里可以细分为三种命令方式,只是勉强弄懂了的话就知道其实还是一种而已。
0 个人打赏
文章最后发布于: 2015-05-29 10:57:24
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 像素格子 设计师: CSDN官方博客

打赏

涂宗勋

“你的鼓励将是我创作的最大动力”

5C币 10C币 20C币 50C币 100C币 200C币

分享到微信朋友圈

×

扫一扫,手机浏览