詳解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

 

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