不用进数据库也可以查看数据库中的库
mysql -uroot -p'password' -e 'show databases;' 要用到-e参数
再看一个加入sed之后的命令,上面的命令过滤出来的时候表格,那么我不想要表格,我要去掉的话就要用sed命令:
mysql -uroot -p123456 -e 'show databases;'|sed 1d #这样就能直接拿到里面所有的库了,d参数是删除行的意思
mysql备份的语句:
mysqldump -uroot -p123456 -B test > test.sql 这里参数-B是指会在备份数据中增加建库的语句,备份数据使用-B参数,后面可以直接接多个库名
来看一下批量备份:mysqlbak.sh这个脚本
#!/bin/bash
#先拿到所有的库
database=`mysql -uroot -p123456 -e "show databases;"|sed 1d` #这里是反引号
echo $database
for data in $database
do
mysqldump -uroot -p123456 -B $data > /data/shell/mysqlbak/${data}`date +%Y%m%d`.sql #date后面必须要有空格
done
当执行的时候,会出现这个错误
这个意思是这个库没有权限备份,因为这个库是系统自带的库,不允许备份,其实这个时候已经成功了,来我们看一下:
那么怎么处理这种错误呢,其实很简单,不要这个库就可以了:
database=`mysql -uroot -p123456 -e "show databases;"|sed 1,2d` #这里是反引号 这里sed 1,2d表示不用第一行和第二行
接下来我们就需要完善一下这个脚本了:
其实就是把变量参数化了就行
https://blog.csdn.net/linuxlsq/article/details/52606299 这个是参考的博客