CSS选择器 开源商城系统 数据算法 iic 金融信贷 jdbc postman Component NEJ Select2 jquery绑定click事件 dplayer不能全屏 linux查看jdk安装路径 matlab中如何定义函数 数据库学习 python中len函数 python安装 python免费教程 java抽象 java的数据类型 java基本语法 java查找字符串 java获取月份 java最新框架 配置java开发环境 java中tostring方法 学java基础 linux系统启动过程 运行时错误1004 shutil su版本转换器 7个人 ram容量是什么意思 R语言初学者指南 脚本语言 stata 黑域怎么用 三星打印机怎么加墨 android计算器 苹果手机怎么添加邮箱
当前位置: 首页 > 学习教程  > 编程语言

采用 expect 自动交互命令导出 MySQL 数据库表

2020/11/24 10:37:21 文章标签: 测试文章如有侵权请发送至邮箱809451989@qq.com投诉后文章立即删除

平常 MySQL 数据库导出时,可用如下命令格式。 $ mysqldump -h [mysqlhost ip] -P [mysql port] -u [mysql user] -p [mysql database] --single-transaction --skip-opt -t --skip-tz-utc > [filename]各参数意义如下: [mysqlhost ip]:数…

  平常 MySQL 数据库导出时,可用如下命令格式。

$ mysqldump -h [mysqlhost ip] -P [mysql port] -u [mysql user] -p [mysql database] --single-transaction --skip-opt -t --skip-tz-utc > [filename]

  各参数意义如下:

  • [mysqlhost ip]:数据库 IP
  • [mysql port]:数据库端口
  • [mysql user]:数据库访问用户
  • [mysql database]:数据库名
  • [filename]:导出文件名字
  • --skip-opt:跳过锁表(即导出时不锁表)
  • -t:只导数据,不导表结构

  示例:输入如下命令,回车输入密码即可导出 testdb 数据库全部表格。

$ mysqldump -h 101.132.242.27 -P 3306 -u testuser -p testdb --single-transaction --skip-opt -t --skip-tz-utc > testdb.sql
Enter password: 

  对于需要定时备份数据库的操作来说,上述语句每次都需要手动输入命令,不太方便。可以借助 expect 自动交互命令来实现自动输入数据库密码来完成导出文件。具体步骤如下。

一、创建脚本文件 dumpDb.sh,编辑脚本如下。

$ cat dumpDb.sh 
#!/bin/sh

starttime=$(date "+%Y-%m-%d %H:%M:%S")
echo $starttime "Starting dump testdb data" >> dump.log

/usr/bin/expect<<EOF
 set timeout 300
 spawn sh -c "/usr/bin/mysqldump -h 101.132.242.27 -P 3306 -u testuser -p testdb --single-transaction --skip-opt -t --skip-tz-utc > testdb.sql"
 expect "Enter password:" 
 send "yourpassword\n" 
 expect EOF
EOF

endTime=$(date "+%Y-%m-%d %H:%M:%S")
echo $endTime "Ending dump testdb data" >> dump.log

exit

  上述脚本文件,导出数据库前将开始时间追加到 dump.log 文件中,然后将数据库全库数据导出到文件 testdb.sql(具体参数值可修改为实际的数据库配置),最后将结束时间追加到 dump.log 文件中。

二、执行导出脚本 dumpDb.sh

  1. 方法一:直接执行 dumpDb.sh
$ sh dumpDb.sh
  1. 方法二:为 dumpDb.sh 添加可执行权限
$ chmod u+x dumpDb.sh 
$ ./dumpDb.sh
  1. 创建后台执行脚本 dump.sh,后台执行
$ cat dump.sh 
nohup sh dumpDb.sh >/dev/null 2>&1 &
$ sh dump.sh

  以上几种方式均可以执行导出脚本,将数据库数据导出。


本文链接: http://www.dtmao.cc/news_show_400303.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?