MySQL的一些常用基本命令的使用說明
這裡整理一下MySQL的一些常用命令的使用方法。
連線到伺服器
要使用資料庫要先連線到MySQL,在Windows中可以在DOS視窗中進入 MySQL\bin 目錄,當然設定環境變數也可以直接在任何目錄中進行,輸入
mysql -u root -p
然後就會提示你輸入密碼。
當然在這之前你要確定自己MySQL已經啟動了,用net start mysql
命令啟動mysql服務,用net stop mysql
命令停止mysql服務(當然命令需要管理員許可權)。
如果是在Linux可以使用
systemctl start mysql
啟動mysql服務,systemctl status mysql
mysql 狀態資訊,systemctl restart mysql
重新啟動mysql服務,systemctl stop mysql
停止mysql服務。
當然在Windows中也可以直接開啟MySQL的程式,會直接讓你輸入密碼。
如果在你安裝後沒有對root使用者進行設定是沒有密碼的,直接回車就進去了。
這裡還要給出一些和mysql一起使用的命令列引數
MySQL命令列引數
引數 | 描述 |
---|---|
-A | 禁止自動重新生成雜湊表 |
-b | 禁用出錯的beep聲 |
-B | 不使用歷史檔案 |
-C | 壓縮客戶端和伺服器之間傳送的所有資訊 |
-D | 制定要用的資料庫 |
-e | 制定執行語句並退出 |
-E | 豎直方向顯示查詢輸出,每一行一個欄位 |
-f | 如果有SQL錯誤繼續執行 |
-G | 使能命名命令的使用 |
-h | 指定MySQL伺服器主機名(預設localhost) |
-H | 用HTML程式碼顯示查詢結果 |
-i | 忽略函式名後的空格 |
-N | 結果中不顯示列名稱 |
-o | 忽略語句,除了在命令列上命名的預設資料庫的語句 |
-p | 為使用者帳戶提示輸入命令 |
-P | 指定網路連線用的TCP埠號 |
-q | 不快取每條查詢結果 |
-r | 顯示列輸出,不轉義 |
-s | 使用安靜模式 |
-S | 為本地(localhost)連線指定一個套接字 |
-t | 以表的形式顯示輸出 |
-T | 在程式退出時顯示除錯資訊、記憶體以及CPU統計資訊 |
-u | 指定登入使用者名稱 |
-U | 只允許指定了鍵值的UPDATE和DELETE語句 |
-v | 使用詳細模式 |
-w | 如果連線沒有完成,等待並重試 |
-X | 用XHTML程式碼顯示查詢輸出 |
連線到遠端主機上的MYSQL。假設遠端主機的IP為:110.110.110.110,使用者名稱為root,密碼為abcd123。則鍵入以下命令:
mysql -h 110.110.110.110 -u root -p 123;
(注:u與root之間可以不用加空格,其它也一樣)
在你輸入使用者對應的密碼,就登入上了伺服器,接下來就可以輸入命令了。
MySQL命令
除了標準SQL命令,還有一些mysql特殊的命令在下面先列出。
MySQL命令
命令 | 簡單指令 | 描述 |
---|---|---|
? | ? | 幫助資訊 |
clear | \c | 清空命令 |
connect | \r | 連線到資料庫和伺服器 |
delimiter | \d | 設定SQL語句分隔符 |
edit | \e | 用命令列編輯器編輯命令 |
ego | \G | 將命令傳送到MySQL伺服器並垂直顯示結果 |
exit | \q | 退出mysql程式 |
go | \g | 將命令傳送到MySQL伺服器 |
help | \h | 顯示幫助資訊 |
nopager | \n | 禁用輸出分頁將輸出傳送到STDOUT |
note | \t | 不要將輸出傳送到輸出檔案 |
pager | \P | 將分頁命令設為指定的程式(預設是more) |
\p | 列印當前命令 | |
prompt | \R | 修改mysql命令提示符 |
quit | \q | 退出mysql程式(同exit) |
rehash | \# | 重新構建命令補全雜湊表 |
source | \. | 執行指定檔案中的SQL指令碼 |
status | \s | 從MySQL伺服器提取狀態資訊 |
system | \! | 在系統上執行shell命令 |
tee | \T | 將所有輸出附加到指定檔案中 |
use | \u | 使用另一個數據庫 |
charset | \C | 切換到另一個數據庫 |
warnings | \W | 在每條語句之後顯示警告資訊 |
nowrning | \w | 不要在每條語句之後顯示警告資訊 |
修改密碼
格式:mysqladmin -u 使用者名稱 -p 舊密碼 password 新密碼
1、給root加個密碼123。
首先在DOS下進入目錄mysql\bin,然後鍵入以下命令
mysqladmin -u root -password 123
注:因為開始時root沒有密碼,所以-p舊密碼一項就可以省略了。
2、再將root的密碼改為123345。
mysqladmin -u root -p 123 password 12345
跳過登入驗證
在Windows系統中在my.ini檔案的末尾新增
skip_grant_tables
,檔案就在你安裝MySQL的目錄下,你可以在你安裝MySQL的目錄下使用命令notepad my.ini
彈出記事本,在末尾新增一行。
在Linux系統中你可以使用命令
vi /etc/my.cnf
,在檔案末尾新增skip-grant-tables
最後都重啟服務,對密碼進行修改,修改密碼後,不要忘記再將配置檔案中新新增的最後一行刪除。
新增新使用者
格式:grant select on 資料庫.* to 使用者名稱@登入主機 identified by “密碼”
1、增加一個使用者staff1密碼為123,讓他可以在任何主機上登入,並對所有資料庫有查詢、插入、修改、刪除的許可權。首先用root使用者連入MYSQL,然後鍵入以下命令:
grant select,insert,update,delete on *.* to [email=staff1@”%]staff1@”%[/email]” identified by “123";
但增加的使用者是十分危險的,你想如某個人知道test1的密碼,那麼他就可以在internet上的任何一臺電腦上登入你的mysql資料庫並對你的資料可以為所欲為了。
2、增加一個使用者staff2密碼為123,讓他只可以在localhost上登入,並可以對資料庫data進行查詢、插入、修改、刪除的操作(localhost指本地主機,即MYSQL資料庫所在的那臺主機),這樣使用者即使用知道staff2的密碼,他也無法從internet上直接訪問資料庫,只能通過MYSQL主機上的web頁來訪問了。
grant select,insert,update,delete on data.* to [email=staff2@localhost]staff2@localhost[/email] identified by “123”;
建立資料庫
命令:create database 資料路名;
例1:建立一個叫data的資料庫
mysql> create database data;
例2:建立資料庫並分配使用者
①create database 資料庫名;
②grant select,insert,update,delete,create,drop,alter on 資料庫名.* to 資料庫名@localhost identified by '密碼';
③set password for '資料庫名'@'localhost' = old_password('密碼');
依次執行3個命令完成資料庫建立。注意:中文 “密碼”和“資料庫”是戶自己需要設定的。
顯示資料庫
命令:show databases
mysql> show databases;
注意:為了不再顯示的時候亂碼,要修改資料庫預設編碼。以下以GBK編碼頁面為例進行說明:
1、修改MYSQL的配置檔案:my.ini裡面修改default-character-set=gbk
2、程式碼執行時修改:
①Java程式碼:jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=gbk
②PHP程式碼:header("Content-Type:text/html;charset=gb2312");
③C語言程式碼:int mysql_set_character_set( MYSQL * mysql, char * csname);
該函式用於為當前連線設定預設的字符集。字串csname指定了1個有效的字符集名稱。連線校對成為字符集的預設校對。該函式的工作方式與SET NAMES語句類似,但它還能設定mysql- > charset的值,從而影響了由mysql_real_escape_string() 設定的字符集。
刪除資料庫
命令:drop database 資料庫名
例如:刪除名為data的資料庫
mysql> drop database data;
例子1:刪除一個已經確定存在的資料庫
mysql> drop database data;
Query OK, 0 rows affected (0.61 sec)
例子2:刪除一個不確定存在的資料庫
mysql> drop database data;
ERROR 1008 (HY000): Can't drop database 'data'; database doesn't exist
//不能夠刪除資料庫'data';資料庫不存在
mysql> drop database if exists drop_database;
Query OK, 0 rows affected (0.00 sec)
//if exists 判斷資料庫是否存在,不存在也不產生錯誤
連線資料庫
未完待續...