shell脚本操作mysql数据库

  使用 mysql -e 参数可以执行各种 sql 的各种操作语句。不用在mysql的提示符下运行mysql,即可以在shell中操作mysql的方法。

  格式:mysql  -hhostname -Pport -uusername -ppassword  -e “” 

  

#!/bin/bash  

HOSTNAME="192.168.111.84"                                           #数据库信息
PORT="3306"
USERNAME="root"
PASSWORD=""

DBNAME="test_db_test"                                                       #数据库名称
TABLENAME="test_table_test"                                            #数据库中表的名称

#也可以写 HOSTNAME="localhost",端口号 PORT可以不设定

#创建数据库
create_db_sql="create database IF NOT EXISTS ${DBNAME}"
mysql -h${HOSTNAME}  -P${PORT}  -u${USERNAME} -p${PASSWORD} -e "${create_db_sql}"

注意:-p${PASSWORD}中间不能有空格

#创建表
create_table_sql="create table IF NOT EXISTS ${TABLENAME} (  name varchar(20), id int(11) default 0 )"
mysql -h${HOSTNAME}  -P${PORT}  -u${USERNAME} -p${PASSWORD}  -D ${DBNAME} -e "${create_db_sql}"

#插入数据
insert_sql="insert into ${TABLENAME} values(‘billchen‘,2)"
mysql -h${HOSTNAME}  -P${PORT}  -u${USERNAME} -p${PASSWORD} ${DBNAME} -e  "${insert_sql}"

#查询
select_sql="select * from ${TABLENAME}"
mysql -h${HOSTNAME}  -P${PORT}  -u${USERNAME} -p${PASSWORD} ${DBNAME} -e "${select_sql}"

#更新数据
update_sql="update ${TABLENAME} set id=3"
mysql -h${HOSTNAME}  -P${PORT}  -u${USERNAME} -p${PASSWORD} ${DBNAME} -e "${update_sql}"
mysql -h${HOSTNAME}  -P${PORT}  -u${USERNAME} -p${PASSWORD} ${DBNAME} -e  "${select_sql}"

#删除数据
delete_sql="delete from ${TABLENAME}"
mysql -h${HOSTNAME}  -P${PORT}  -u${USERNAME} -p${PASSWORD} ${DBNAME} -e  "${delete_sql}"
mysql -h${HOSTNAME}  -P${PORT}  -u${USERNAME} -p${PASSWORD} ${DBNAME} -e  "${select_sql}"

示例:

时间: 2024-09-30 22:55:27

shell脚本操作mysql数据库的相关文章

通过shell脚本操作mysql数据库

在做一些日常的运维工作的时候,经常需要些一些shell脚本进行设备性能以及其它参数的监控.在过去的一年工作中,接触到的比较多的是对数据库中某些信息的监控. 于是就想到了用shell+mysql+crontab进行实现. 下面附上通过shell命令行非交互式的操作数据库的方法: mysql -hhostname -Pport -uusername -ppassword -e 相关mysql的sql语句,不用在mysql的提示符下运行mysql,即可以在shell中操作mysql的方法. #!/bi

shell脚本操作mysql数据库,使用mysql的-e参数可以执行各种sql的(创建,删除,增,删,改、查)等各种操作

mysql  -hhostname -Pport -uusername -ppassword  -e  相关mysql的sql语句,不用在mysql的提示符下运行mysql,即可以在shell中操作mysql的方法. #!/bin/bash HOSTNAME="192.168.111.84" #数据库信息 PORT="3306" USERNAME="root" PASSWORD="" DBNAME="test_db_

使用shell脚本调用mysql数据库存储过程,并设置定时任务

本来是要mysql数据库中创建事件任务来,定时执行存储过程,做数据传输的...后来由于种种原因,就使用crontab来定时执行,调用存储过程. 实现这个数据传输分为两步: 第一步:编写shell脚本调用mysql数据库存储过程,如下: #!/bin/bash#0 1 * * * sh /home/drmTrans3/rj_proc.shhost1=127.0.0.1user=systempasswd=linuxport=3306mysql -h${host1} -u${user} -p${pas

shell 脚本迁移mysql数据库中的表

作为写脚本的,这次的重点在于实现了类似于其他语言的logging模块的输出功能.感觉还是蛮有用的,简单直观. 输出log如下所示: 2017-03-31 16:26:57 --- INFO --- You choose the name of the table below: 2017-03-31 16:26:57 --- INFO --- 2016_06_24_record_base_log 2017-03-31 16:26:57 --- INFO --- 2016_06_16_record_

Shell 脚本备份MySQL数据库

(1)思路 <1>安装MySQL数据库 <2>创建数据库,表,插入数据 <3>授权一个用于备份数据库的用户名和密码 <4>备份数据库的命令: mysqldump -u root -p 1234 -d MySQLDB > 1.sql <5>引入if语句实现备份全部数据库 <6>引入for循环语句,实现备份多个数据库 (2)实战案例 编写MySQL数据库备份脚本,可以实现备份任意数据库,输入A,就备份A库,输入B,就备份B库,输入C

shell 脚本获取MySQL数据库中所有表记录总数

近期遇到一个需求,Mysql数据库中需要统计所有表的记录数据:查了下资料可以调取information_schema数据表中数据获取所有表记录数据,但是查询出来的数据,发现和手动统计的记录数据不一致,information_schema查询出来的数据部分不准确[原因应该是部分表数据没有自动同步].折腾了下,于是还是自己手动写个脚本,分享下也做下次备用.程序结构:#!/bin/bash Author:Jerry tb_name=mysql -u账号 -p密码 -h192.168.x.x -P端口

通过shell脚本批量操作mysql数据库

创建建表语句 ============================================= 学生表:Student(Sno,Sname,Ssex,Sage,Sdept) ------(学号-主键,姓名,性别,年龄,所在系) ============================================= create table student( Sno int(10) NOT NULL COMMENT '学号', Sname varchar(16) NOT NULL C

linux shell脚本备份mysql数据库

#!/bin/sh # 备份数据库 # Mysql 用户名密码 MYSQL_USER=root MYSQL_PASS=root BACKUP_DIR=/data/backup/mysql DATA_DIR=/data/backup/dbdata # 查询mysql中所有数据库名字 SQL_STRING="SELECT SCHEMA_NAME AS db FROM information_schema.SCHEMATA WHERE SCHEMA_NAME NOT IN ('mysql', 'inf

shell 脚本连接mysql数据库查询database中表的数量和表名

#!/bin/bash MYSQLHOST="127.0.0.1" MYSQLUSER="root" MYSQLPWD="root" MYSQLPORT="3306" MYSQLDB="test" echo "health tables total:" > mysqlCount.txt; mysql -h$MYSQLHOST -u$MYSQLUSER -p$MYSQLPWD -P$