1. 程式人生 > >利用shell指令碼給資料庫建立表

利用shell指令碼給資料庫建立表

引言:經典的LAMP模式相信大家都聽過,mysql就是其中的M,我們使用資料庫的時候,如果沒有輔助工具,是不是覺得在mysql裡面寫語句實在是很心累,今天我們就用shell指令碼來給自己的資料庫建表和插入資料!

步驟:

  • 1、首先,大家可以進入資料庫的配置檔案,把資料庫的密碼放入配置檔案,這樣自己就可以不用密碼直接登入,操作比較方便!
  • [[email protected] test]# vim /etc/my.cnf
    [client]
    password=123123 #只需要把客戶端的密碼放進配置檔案就可以了
    port=3306
    socket=/mysql/mysql.sock

    重新讀取配置檔案以後,就可以用mysql命令直接登入資料庫了

2、第一步操作知識為了讓我們更快速的進入到mysql,在工作環境中,還是不建議這樣做,畢竟資料庫還是很重要的,直接可以登入不安全
接下來就是我們的shell指令碼了

#!/bin/bash

user="root"  #用變數來儲存使用者
DB="class"   #資料庫為class
TB="student" #需要建立的表是student

mysql -u$user <<EOF  #前面實現了免密碼登入,這裡就不需要寫密碼了
drop database $DB;   #如果資料庫存在,先刪除,方便指令碼重複執行
create database $DB; #建立資料庫 use $DB; #進入到資料庫 create table $TB ( #建立表格 sid int(11) not null auto_increment primary key, sname varchar(20) not null, sage int(11) not null, ssex tinyint(2) not null, saddress varchar(20) not null, year smallint(20) not null )engine =Innodb default charset=utf8; #前面資料庫名和表名都是變數,以後我要建其他表的話,就可以直接用這個模板,然後稍微修改一下我需要的欄位就可以。
#下面的是插入操作,個人其實比較建議,把插入操作和建表操作分開,寫進兩個指令碼,這樣實用性就更大了 insert into $DB.$TB(sname,sage,ssex,saddress,year) values("a",18,0,"湖南",now()); insert into $DB.$TB(sname,sage,ssex,saddress,year) values("b",27,1,"廣東",now()); insert into $DB.$TB(sname,sage,ssex,saddress,year) values("c",23,0,"湖南",now()); EOF 遇到EOF結束對資料庫的操作,一定不能漏寫哦!

總結:此指令碼要就是給資料庫建立一個新的表,並在表中插入資料,但是,這個指令碼還是有很多缺點,不過,我們要養成一種寫指令碼的習慣,shell指令碼對我們以後的工作還是很有幫助的!