Linux系统命令行执行MySQL脚本
利用Linux系統(tǒng)腳本執(zhí)行MySQL的sql腳本方法有很多,這里抽取兩種已經(jīng)驗(yàn)證過(guò)的方法(驗(yàn)證環(huán)境:麒麟3.3+,centos7,MySQL 8)舉例。
第一種:利用管道符調(diào)用SQL文件:
腳本(假設(shè)賬號(hào)為:root,密碼為:123456,SQL文件絕對(duì)路徑名稱為:/home/test.sql):
mysql -uroot -p123456 < /home/test.sqlsql文件的類容:
若需要操作名稱為“testDB”的庫(kù),查詢名稱為“text”的表的所有數(shù)據(jù): use testDB; select * from text; exit; 以上sql語(yǔ)句第一句的意思為:操作名稱為“testDB”的庫(kù),第二句的意思為:查詢名稱為“text”的表的所有數(shù)據(jù),第三句的意思為:退出SQL操作。第二種:利用shell腳本中MySQL提示符調(diào)用SQL:
利用Mysql的提示符,可以將需要執(zhí)行的sql語(yǔ)句及shell腳本寫到.sh文件中,然后執(zhí)行.sh文件即可執(zhí)行相關(guān)的shell腳本及SQL語(yǔ)句,(假設(shè)要執(zhí)行的腳本名稱為run.sh,賬號(hào)為:root,密碼為:123456)相關(guān)寫法如下:
#!/bin/bash mysql -uroot -p123456 <<EOF use testDB; select * from text; EOF exit;以上sql語(yǔ)句的意思為:登入數(shù)據(jù)庫(kù),操作名稱為“testDB”的庫(kù),查詢名稱為“text”的表的所有數(shù)據(jù),退出SQL操作。
推薦采用第一種方法,執(zhí)行完sql后,可以檢測(cè)shell的錯(cuò)誤輸出以判斷是否執(zhí)行完畢。除了常規(guī)SQL語(yǔ)句外,腳本或文件中還可以創(chuàng)建存儲(chǔ)過(guò)程,以編寫一些較為復(fù)雜的SQL邏輯,但除了超級(jí)復(fù)雜的聯(lián)表查詢以外,不建議在數(shù)據(jù)庫(kù)中保存太多的存儲(chǔ)過(guò)程,盡量把業(yè)務(wù)邏輯移到代碼層中,以減輕數(shù)據(jù)庫(kù)壓力。
可以參考以下鏈接學(xué)習(xí)SQL存儲(chǔ)過(guò)程的用法:
https://www.cnblogs.com/geaozhang/p/6797357.html
總結(jié)
以上是生活随笔為你收集整理的Linux系统命令行执行MySQL脚本的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: python从数组中随机选择一些元素_n
- 下一篇: Redis min-slaves-to-