在shell开发中,很多时候我们需要操作mysql数据库(比如:查询数据、导出数据等),但是我们又无法进入mysql命令行的环境,就需要在shell环境中模拟mysql的环境,使用mysql相关命令,本文总结几种shell操作mysql的方法,供大家参考。
方案1
代码如下 | 复制代码 |
mysql -uuser -ppasswd -e "insert user values(...)" |
优点:语句简单
缺点:支持的sql相对简单
方案2
新建一个shell脚本,格式如下:
代码如下 | 复制代码 |
#!/bin/bash mysql -u* -h* -p* <<EOF Your SQL script. EOF |
例如:
代码如下 | 复制代码 |
#!/bin/bash mysql -uroot -ppassword <<EOF use chbdb; CREATE TABLE user ( id varchar(36) NOT NULL, username varchar(50) NOT NULL, password varchar(50) NOT NULL, createdate date NOT NULL, age int(11) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; EOF |
缺点:
1> 表名、字段不能使用单引号,需要修改原有sql语句
方案3
准备一个sql脚本,如update.sql,然后执行如下命令:
代码如下 | 复制代码 |
mysql -uroot -ppassword < update.sql |
方案4,更新数据库
代码如下 | 复制代码 |
#shell mysql **************************************** #!/bin/bash olname=erik ##旧值,也就是要替换掉的值 nwname=erik ##新值,也就是要替换为的值 domain=@set-china.net ##后缀,此处是用来操作邮件的,其它用途可以不要或替换成其它 mysql -u root -p password < ##操作数据库的开始,此处输入用户名及密码,< ##< use extmail; show tables; update alias set goto=REPLACE(goto,'$olname','$nwname$domain'); EOF exit 0; **************************************** ##语句少的情况下可以如下使用 #!/bin/bash mysql -u root -p password -e "use mysql;select * from user(SQL语句)"; exit 0; |
时间: 2024-10-06 19:11:13