[轉] Mysql命令基礎
【From】 http://c.biancheng.net/cpp/u/mysql_ml/
連接Mysql數據庫
mysql命令格式: mysql -h主機地址 -u用戶名 -p用戶密碼
1) 連接到本機上的MYSQL
首先打開DOS窗口,然後進入目錄mysql\bin,再鍵入命令mysql -u root -p,回車後提示你輸密碼。
註意用戶名前可以有空格也可以沒有空格,但是密碼前必須沒有空格,否則讓你重新輸入密碼。
如果剛安裝好MYSQL,超級用戶root是沒有密碼的,故直接回車即可進入到MYSQL中了,MYSQL的提示符是: mysql>
2) 連接到遠程主機上的MYSQL
假設遠程主機的IP為:110.110.110.110,用戶名為root,密碼為abcd123。則鍵入以下命令:
mysql -h110.110.110.110 -u root -p 123;(註:u與root之間可以不用加空格,其它也一樣)
3) 退出MYSQL命令
exit (回車)
修改用戶密碼
mysqladmin命令格式:mysqladmin -u 用戶名 -p 舊密碼 password 新密碼
1) 給root加個密碼ab12
首先在DOS下進入目錄mysql\bin,然後鍵入以下命令:
mysqladmin -u root -password ab12
註:因為開始時root沒有密碼,所以-p 舊密碼一項就可以省略了。
2) 再將root的密碼改為djg345
mysqladmin -u root -p ab12 password djg345
增加新用戶並控制其權限
grant on命令用於增加新用戶並控制其權限。
grant on命令格式:grant select on 數據庫.* to 用戶名@登錄主機 identified by “密碼”;
1) 增加一個用戶test1,密碼為abc,讓他可以在任何主機上登錄,並對所有數據庫有查詢、插入、修改、刪除的權限。首先用root用戶連入MYSQL,然後鍵入以下命令:
grant select,insert,update,delete on *.* to [email=test1@”%]test1@”%[/email]” Identified by “abc”;
但增加的用戶是十分危險的,你想如某個人知道test1的密碼,那麽他就可以在internet上的任何一臺電腦上登錄你的mysql數據庫並對你的數據可以為所欲為了,解決辦法如下。
2) 增加一個用戶test2密碼為abc,讓他只可以在localhost上登錄,並可以對數據庫mydb進行查詢、插入、修改、刪除的操作(localhost指本地主機,即MYSQL數據庫所在的那臺主機),這樣用戶即使用知道test2的密碼,他也無法從internet上直接訪問數據庫,只能通過MYSQL主機上的web頁來訪問了。
grant select,insert,update,delete on mydb.* to [email=test2@localhost]test2@localhost[/email] identified by “abc”;
如果你不想test2有密碼,可以再打一個命令將密碼消掉。
grant select,insert,update,delete on mydb.* to [email=test2@localhost]test2@localhost[/email] identified by “”;
創建數據庫
create命令格式:create database <數據庫名>;
註意:創建數據庫之前要先連接Mysql服務器。
1) 建立一個名為xhkdb的數據庫:
mysql> create database xhkdb;
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命令用於顯示所有數據庫。
show databases命令格式:show databases; (註意:最後有個s)
drop database:刪除數據庫
use:使用數據庫
當前選擇(連接)的數據庫
select命令表示當前選擇(連接)的數據庫。
select命令格式:mysql> select database();
MySQL中SELECT命令類似於其他編程語言裏的print或者write,你可以用它來顯示一個字符串、數字、數學表達式的結果等等。如何使用MySQL中SELECT命令的特殊功能呢?
1) 顯示MYSQL的版本
mysql> select version();
+-----------------------+
| version() |
+-----------------------+
| 6.0.4-alpha-community |
+-----------------------+
1 row in set (0.02 sec)
2) 顯示當前時間
mysql> select now();
+---------------------+
| now() |
+---------------------+
| 2009-09-15 22:35:32 |
+---------------------+
1 row in set (0.04 sec)
3) 顯示年月日
SELECT DAYOFMONTH(CURRENT_DATE);
+--------------------------+
| DAYOFMONTH(CURRENT_DATE) |
+--------------------------+
| 15 |
+--------------------------+
1 row in set (0.01 sec)
SELECT MONTH(CURRENT_DATE);
+---------------------+
| MONTH(CURRENT_DATE) |
+---------------------+
| 9 |
+---------------------+
1 row in set (0.00 sec)
SELECT YEAR(CURRENT_DATE);
+--------------------+
| YEAR(CURRENT_DATE) |
+--------------------+
| 2009 |
+--------------------+
1 row in set (0.00 sec)
4) 顯示字符串
mysql> SELECT "welecome to my blog!";
+----------------------+
| welecome to my blog! |
+----------------------+
| welecome to my blog! |
+----------------------+
1 row in set (0.00 sec)
5) 當計算器用
select ((4 * 4) / 10 ) + 25;
+----------------------+
| ((4 * 4) / 10 ) + 25 |
+----------------------+
| 26.60 |
+----------------------+
1 row in set (0.00 sec)
6) 串接字符串
select CONCAT(f_name, " ", l_name)
AS Name
from employee_data
where title = ‘Marketing Executive‘;
+---------------+
| Name |
+---------------+
| Monica Sehgal |
| Hal Simlai |
| Joseph Irvine |
+---------------+
3 rows in set (0.00 sec)
註意:這裏用到CONCAT()函數,用來把字符串串接起來。另外,我們還用到以前學到的AS給結果列‘CONCAT(f_name, " ", l_name)‘起了個假名。
備份數據庫
mysqldump命令用來備份數據庫。
mysqldump命令在DOS的 \mysql\bin\ 目錄下執行。
1) 導出整個數據庫(導出文件默認是存在mysql\bin目錄下)
mysqldump -u 用戶名 -p 數據庫名 > 導出的文件名
mysqldump -u user_name -p123456 database_name > outfile_name.sql
2) 導出一個表
mysqldump -u 用戶名 -p 數據庫名 表名> 導出的文件名
mysqldump -u user_name -p database_name table_name > outfile_name.sql
3) 導出一個數據庫結構
mysqldump -u user_name -p -d –add-drop-table database_name > outfile_name.sql
-d 沒有數據 –add-drop-table 在每個create語句之前增加一個drop table
4) 帶語言參數導出
mysqldump -uroot -p –default-character-set=latin1 –set-charset=gbk –skip-opt database_name > outfile_name.sql
例如,將aaa庫備份到文件back_aaa中:
[root@test1 root]# cd /home/data/mysql
[root@test1 mysql]# mysqldump -u root -p --opt aaa > back_aaa
[轉] Mysql命令基礎