linux shell命令執行sql(mysql入門)

來源:互聯網
上載者:User

標籤:

今天做個linux下的shell操作資料庫的入門例子

1.shell檔案內容:

#!/bin/bashHOSTNAME="11.8.8.87"PORT="3306"USERNAME="root"PASSWORD="root"DBNAME="testa"TABLENAME="test"use_db_sql="use ${DBNAME}"mysql -h${HOSTNAME} -P${PORT} -u${USERNAME} -p${PASSWORD} -e "${use_db_sql}"insert_sql="insert into ${TABLENAME} values(‘7‘,‘mike‘,‘123456‘)"mysql -h${HOSTNAME} -P${PORT} -u${USERNAME} -p${PASSWORD} ${DBNAME} -e "${insert_sql}"

主機地址:11.8.8.87 連接埠:3306  資料庫:testa 表:test

2.test表結構:

mysql> desc test;+----------+-------------+------+-----+---------+----------------+| Field    | Type        | Null | Key | Default | Extra          |+----------+-------------+------+-----+---------+----------------+| t_id     | int(24)     | NO   | PRI | NULL    | auto_increment || username | varchar(32) | YES  |     | NULL    |                || password | varchar(32) | YES  |     | NULL    |                |+----------+-------------+------+-----+---------+----------------+3 rows in set (0.00 sec)

3.我這裡命名shell檔案名稱為:mysqltestshell,在windows上編輯後上傳到linux伺服器上,

修改許可權:chmod +x mysqltestshell

執行./mysqltestshell,

報錯:-bash: ./mysqltestshell: /bin/bash^M: bad interpreter: No such file or directory

解決辦法:

vi mysqltestshell

然後用命令 :set ff?

可以看到dos或unix的字樣. 如果的確是dos格式的, 那麼你可以用set ff=unix把它強製為unix格式的, 然後存檔退出. 再運行一遍看.

4.運行結果

請自覺忽略亂碼情況(此處只是測試),可以看到新增了一條記錄

mysql> select * from test;+------+----------+----------------------+| t_id | username | password             |+------+----------+----------------------+|    1 | 嫻璿     | 嫻璿瀵鐮             ||    2 | ??       | 嫻璿瀵鐮             ||    3 | ??       | 忙碌?貓爐?氓爐?莽聽?         ||    4 | ??       | ????                 ||    5 | ??       | ????                 ||    6 | ??       | ????                 ||    7 | mike     | 123456               |+------+----------+----------------------+7 rows in set (0.00 sec)

----------------------------------------------------------補充----------------------------------------------------------------

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_test"                                                       #資料庫名稱

TABLENAME="test_table_test"                                            #資料庫中表的名稱

#建立資料庫

create_db_sql="create database IF NOT EXISTS ${DBNAME}"

mysql -h${HOSTNAME}  -P${PORT}  -u${USERNAME} -p${PASSWORD} -e "${create_db_sql}"

#建立表

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} ${DBNAME} -e "${create_table_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}"

  • 本文來自:Linux教程網

linux shell命令執行sql(mysql入門)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.