数据库备份执行命令行,其实很简单,目前通过连接数据库常用工具xshell工具操作即可。
详细操作步骤如下:
1.连接服务器之后,无需同通过mysql -u -p 进入数据库;
2.通过执行命令行:mysqldump -u -p 数据库名 > 保存的目录
如:账号:root 密码:test123 数据库:table_c 保存目录:/home/mysql/
执行命令:mysqldump -uroot -ptest123 table_c > /home/mysql/20210318.sql 即可
3.通常首次执行该命令时会报如下错误:Warning: Using a password on the command line interface can be insecure.
遇到该提示,莫慌,命令虽然执行成功了,数据表也生成了,但是文件中没有任何的数据;接下来看看怎么办
cd 进入到根目录下 /etc,vim进入my.cnf 中,在[mysqldump]下添加 (具体怎么编辑文件,我相信都知道哈,真不知道,按a就行,直接进入编辑模式)
user=root
password=test123
注意: 如果my.cnf 中没有没有[mysqldump],那就拉倒最下方,自行添加[mysqldump],然后在输入以上的用户名和密码
4.然后在执行命令行:mysqldump -uroot -p table_c > /home/mysql/20210318.sql (注意:-p后面不需密码)
执行之后,提示会让你密文输入密码,输入之后回车即可。
正常情况是执行成功了,但是,你真以为有时候能结束了吗?非也非也,如没成功,且继续往下看。
今天就踩了一个这样的坑;折腾了我两个小时。
在你执行完第一步之后,确实成功了,也没有报错,哦吼,去查看生产的备份文件,下载一看,0KB,数据呢?正在运行的数据库怎么可能是0KB;
反思,再去检查一遍,上网查询,看了十多篇文章,没有遇到过这类的问题;又执行了一次命令,文件有东西了,打开一看,都是乱码似的;
注意细节,文件中有一个报错的数字,10开头的,具体多少忘了,拿着这个搜索,看了几篇文章,注意到一个细节:
把命令行:mysqldump -uroot -p table_c > /home/mysql/20210318.sql 修改为:mysqldump -uroot -p --databases table_c > /home/mysql/20210318.sql 然后就成功了
后来仔细了解了一下,大致意思是,如果没有加 --databases,就没有指向到具体的数据库,所以需要添加上,还第一次遇到这类情况,几分钟的事情,浪费了两个小时,不过今日多踩坑,为了明日少踩坑。
如果对各位有帮助,飘过的同时点个赞也行;如有问题,多多指教哈。