寫在前面
MySQL 是個神奇的關係型數據庫,真心感覺牛逼,因爲做的項目比較雜,之前也碰到過 Oracle 數據庫,給我的印象是 Oracle 很臃腫繁瑣,配置多,如果是小項目用它的話感覺就像是殺雞用牛刀,大材小用。但是也不是說Mysql不能用於大項目,MySQL 開元免費,是現在關係型數據庫的主流產品,網上相應的文檔和問題解決方案也會很多,意思就是比如菜鳥如我碰到了Mysql出的問題,網上基本上很全。
系統環境 Debain 7
Mysql 5.6
1.MySQL 簡單操作命令
//1.登錄mysql,括號中的爲可選項,$(包括$)後面爲實際數據,-D是指定數據庫登錄
mysql (-h$host) (-P$port) -u$user -p$pwd (-D$dbname) //地址 端口 賬號 密碼 數據庫名
//2.刪除、創建數據庫
drop database dbname; //刪除數據庫
create database dbname charset utf8 //創建數據庫
//3.刪除、創建數據庫表
drop table tablename;//刪除表
create table tablename(id int, name varchar(80)); //創建表
//4.表操作
show triggers\g / show triggers; //查看觸發器
show variables like 'character_set_database'; //查看庫編碼
desc tablename; //查看錶結構
select current_date(); //查看錶創建時間
//5.導入sql文件
use dbname;source /dbname.sql; //執行 sql 文件
//6.當前的連接情況
select current_user(); //查看當前登錄賬號
show processlist; //查看當前進程
show full processlist;//查看當前全部進程
select user,host,Super_priv from mysql.user; //查看所有可連接用戶、地址和權限信息
(Super_priv 用戶有super權限纔可以導入數據)
grant all privileges on *.* to root@'%' identified by 'root' with grant option;flush privileges; //給root用戶遠程登錄的所有權限
2.自動導入sql文件
2.1 shell操作
#創建 createDb.sh,內容如下:
#!/bin/bash
#通過 shell 自動初始化數據庫和表結構
host=$1 #地址
port=$2 #端口
user=$3 #賬號
pwd=$4 #密碼
dbname=$5 #數據庫名
path=$6 #sql 文件路徑
mysql -h$host -P$port -u$user -p$pwd <<EOF
drop database if exists $dbname;create database $dbname charset utf8;
use $dbname;
source $path
COMMIT;
EOF
#查看 shell 的執行過程命令
sh -x ./shell //查看 shell 執行過程
2.2 expect操作
#!/usr/bin/expect -f
set timeout 10
set host [lindex $argv 0]
set port [lindex $argv 1]
set user [lindex $argv 2]
set pwd [lindex $argv 3]
set dbname [lindex $argv 4]
set path [lindex $argv 5]
set cset [lindex $argv 6] #字符編碼
spawn mysql -h$host -P$port -u$user -p
expect "Enter password: "
send "$pwd\r"
expect "mysql> "
send "drop database if exists $dbname;create database $dbname charset $cset;\r"
expect "mysql> "
send "use $dbname;\r"
expect "mysql> "
send "source $path;\r"
expect "mysql> "
send "exit\r"
interact
回頭研究再更新操作,有哪裏寫的不對的也請不吝賜教