详解linux下面利用shell脚本操作mysql数据库

在centos7环境下进行编码测试:

#!/bin/bash
mysql -u root  <<EOF
use www_example_com;
UPDATE wp_posts SET post_name='001'  WHERE  id='70';
exit
EOF

将上述文件保存成sh文件,然后赋予权限chmod +x,即可执行。在开始使用了mysql -u root进行登录,这步操作之前需要设置mysql免密码登录即可

第二种执行shell脚本的方法:

/bin/sh /root/example_operate/test.sh

如何设置mysql免密码登录:

1,首先停止mysql服务

systemctl stop mysqld

2,修改配置文件无密码登录

vi /etc/my.cnf

在最尾部加上

skip-grant-tables

保存并退出

3,启动mysql

systemctl start mysqld.service

4,登录mysql

mysql -u root

连按两次回车,进入mysql
此处注意不要加-p

另外附加Linux中shell脚本EOF的用法: 

 Shell中通常将EOF与 << 结合使用,表示后续的输入作为子命令或子Shell的输入,直到遇到EOF为止,再返回到主调Shell。
  可以把EOF替换成其他东西,意思是把内容当作标准输入传给程序。

 回顾一下< <的用法。当shell看到< <的时候,它就会知道下一个词是一个分界符。在该分界符以后的内容都被当作输入,直到shell又看到该分界符(位於单独的一行)。这个分界符可以是你所定义的任何字符串

例子:自动登录mysql(root:root,passwd:123456),查询test库,test1表里的user=aa的记录。

复制代码代码如下:

#!/bin/sh
MySQL -uroot -p123456 <<EOF
use test;
select * from testaa while a=10000; ###1000 not usr single quote mark,because a is int
# type,only char type need single quote mark.
exit
EOF

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章