加载中…
个人资料
绝世流浪汉
绝世流浪汉
  • 博客等级:
  • 博客积分:0
  • 博客访问:85,840
  • 关注人气:10
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
相关博文
推荐博文
谁看过这篇博文
加载中…
正文 字体大小:

【DBA】mysql数据库初始化会用的到自动化脚本

(2013-10-10 11:21:41)
标签:

mysql

shell

it

分类: DBA
在开发以及运维等工作中经常会需要 连接数据库>生成表格>以及导入测试数据等工作,利用sql文的一些批处理或者sql的shell命令行功能,可以实现工作的自动化
经常会被采用的两种模式如下:
1 把需要执行的sql些在文件里,通过<输入 batch mode
mysql -h host -u username -ppassword dbname < batch.sql

2 通过shell 命令行直接输入sql文,例如:
mysql -h host -u user -ppassword dbname -e "INSERT INTO users (id, nickname,) values (999, 'andy.chou');"

3 下面是实际工作中用到的脚本,大家在用的时候可以参考,思路一样,只是针对自己的环境做一些替换即可


#!/bin/sh

# 获取脚本绝对路径
DIR=$(cd $(dirname $0); pwd)

# 生成数据表的sql文件
SQL_CREATE=$DIR/create_tables.sql

# 用于测试的数据或者初始化表格数据
CSV_BOOKMARK=$DIR/bookmark.csv
CSV_MEMBERS=$DIR/members.csv

#
CMD_MYSQL="mysql -u andy -p123456 chou001"

# 生成表
$CMD_MYSQL < $SQL_CREATE  

# 命令行插入的方法
$CMD_MYSQL -e "INSERT INTO users (id, nickname, created_on) values (999, 'andy.chou', now());"

# CSV文件直接导入的方法 batch模式
$CMD_MYSQL -e " LOAD DATA LOCAL INFILE '$CSV_BOOKMARK' INTO TABLE bookmark FIELDS TERMINATED BY ',' ENCLOSED BY '\'' "
$CMD_MYSQL -e  "LOAD DATA LOCAL INFILE 'CSV_MEMBERS' INTO TABLE members FIELDS TERMINATED BY ',' "

 
# 复数个sql文一起倒入的另外一种方法,利用<<
$CMD_MYSQL <<EOF
update users set user_id = '1' ;
update bookmark set page_id = page_id + 50;
update users set id = 41 where id = 60;
EOF

0

阅读 评论 收藏 转载 喜欢 打印举报/Report
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 电话:4000520066 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有