利用shell指令碼給資料庫建立表
阿新 • • 發佈:2018-11-25
引言:經典的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指令碼對我們以後的工作還是很有幫助的!