posts - 78,  comments - 48,  trackbacks - 0

          有很多朋友雖然安裝好了 mysql 但卻不知如何使用它。在這篇文章中我們就從連接 mysql

          修改密碼、增加用戶等方面來學習一些 mysql 的常用命令。

          ?

          一、連接 mysql

          格式: mysql -h 主機地址 -u 用戶名 p 用戶密碼

          1 1 :連接到本機上的 mysql

          首先在打開 DOS 窗口,然后進入目錄 mysqlin ,再鍵入命令 mysql -uroot -p

          車后提示你輸密碼,如果剛安裝好 mysql ,超級用戶 root 是沒有密碼的, 故直接回

          車即可進入到 mysql 中了, mysql 的提示符是: mysql>

          2 2 :連接到遠程主機上的 mysql 。假設遠程主機的 IP 為: 110.110.110.110 用戶

          名為 root, 密碼為 abcd123 。則鍵入以下命令:

          mysql -h110.110.110.110 -uroot -pabcd123

          (注 :u root 可以不用加空格,其它也一樣)

          3 退出 mysql 命令: exit (回車)

          ?

          二、修改密碼。

          格式: mysqladmin -u 用戶名 -p 舊密碼 password 新密碼

          1 1 :給 root 加個密碼 ab12 。首先在 DOS 下進入目錄 mysqlbin ,然后鍵入以下命令

          mysqladmin -uroot password ab12

          注:因為開始時 root 沒有密碼,所以 -p 舊密碼一項就可以省略了。

          2 2 :再將 root 的密碼改為 djg345

          mysqladmin -uroot -pab12 password djg345

          另一種方法:

          shell>mysql -u root -p

          mysql>SET PASSWORD FOR root=PASSWORD("root");

          ?

          三、增加新用戶。(注意:和上面不同,下面的因為是 mysql 環境中的命令, 所以后面都帶

          一個分號作為命令結束符)

          格式: grant select on 數據庫 .* to 用戶名 @ 登錄主機 identified by " 密碼 "

          1 、增加一個用戶 test1 密碼為 abc ,讓他可以在任何主機上登錄, 并對所有數據庫有

          查詢、插入、修改、刪除的權限。首先用以 root 用戶連入 mysql ,然后鍵入以下命

          令:

          grant select,insert,update,delete on *.* to test1@"%" Identified

          by "abc";

          但例 1 增加的用戶是十分危險的,你想如某個人知道 test1 的密碼,那么他就可以在

          internet 上的任何一臺電腦上登錄你的 mysql 數據庫并對你的數據可以為所欲為了,

          解決辦法見例 2

          2 、增加一個用戶 test2 密碼為 abc, 讓其只可以在 localhost 上登錄, 并可以對數據庫

          mydb 進行查詢、插入、修改、刪除的操作( localhost 指本地主機, mysql 數據

          庫所在的那臺主機),這樣用戶即使用知道 test2 的密碼,也無法從 internet 上直

          接訪問數據庫,只能通過 mysql 主機上的 web 頁來訪問了。

          grant select,insert,update,delete on mydb.* to test2@localhost

          identified by "abc";

          如果你不想 test2 有密碼,可以再打一個命令將密碼消掉。

          grant select,insert,update,delete on mydb.* to test2@localhost

          identified by "";

          ?

          ?

          有關數據庫方面的操作。注意:你必須首先登錄到 mysql 中,以下操作都是在 mysql 的提

          示符下進行的,而且每個命令以分號結束。

          ?

          一、操作技巧

          1 如果你打命令時,回車后發現忘記加分號,你無須重打一遍命令,只要打個分號回

          車就可以了。也就是說你可以把一個完整的命令分成幾行來打,完后用分號作結束

          標志就 OK

          2 你可以使用光標上下鍵調出以前的命令。但以前我用過的一個 mysql 舊版本不支持。

          我現在用的是 mysql-3.23.27-beta-win

          ?

          二、顯示命令

          1 顯示數據庫列表。

          show databases;

          剛開始時才兩個數據庫: mysql test mysql 庫很重要它里面有 mysql 的系統信息,

          我們改密碼和新增用戶,實際上就是用這個庫進行操作。

          2 顯示庫中的數據表:

          use mysql //打開庫,學過 FOXBASE 的一定不會陌生吧

          show tables;

          3 顯示數據表的結構:

          describe 表名 ;

          4 建庫:

          create database 庫名 ;

          5 建表:

          use 庫名;

          create table 表名 ( 字段設定列表 )

          6 刪庫和刪表 :

          drop database 庫名 ;

          drop table 表名;

          7 將表中記錄清空:

          delete from 表名 ;

          8 顯示表中的記錄:

          select * from 表名 ;

          ?

          三、一個建庫和建表以及插入數據的實例

          drop database if exists school; // 如果存在 SCHOOL 則刪除

          create database school; // 建立庫 SCHOOL

          use school; // 打開庫 SCHOOL

          create table teacher // 建立表 TEACHER

          (

          id int(3) auto_increment not null primary key,

          name char(10) not null,

          address varchar(50) default ' 深圳 ',

          year date

          ); // 建表結束

          // 以下為插入字段

          insert into teacher values('','glchengang',' 深圳一中 ','1976-10-10');

          insert into teacher values('','jack',' 深圳一中 ','1975-12-23');

          ?

          注:在建表中

          (1) ID 設為長度為 3 的數字字段 :int(3) ,并讓它每個記錄自動加一 : auto_increment

          并不能為空 :not null ,而且讓它成為主字段 primary key

          (2) NAME 設為長度為 10 的字符字段

          (3) ADDRESS 設為長度 50 的字符字段,而且缺省值為深圳。 varchar char 有什么區別

          呢,只有等以后的文章再說了。

          (4) YEAR 設為日期字段。

          如果你在 mysql 提示符鍵入上面的命令也可以,但不方便調試。 你可以將以上命令

          原樣寫入一個文本文件中假設為 school.sql ,然后復制到 c: 下,并在 DOS 狀態進入目錄

          mysqlin ,然后鍵入以下命令:

          mysql -uroot -p 密碼 < c:school.sql

          如果成功,空出一行無任何顯示;如有錯誤,會有提示。(以上命令已經調試,你

          只要將 // 的注釋去掉即可使用)。

          ?

          四、將文本數據轉到數據庫中

          1 文本數據應符合的格式:字段數據之間用 tab 鍵隔開, null 值用來代替。例:

          3 rose 深圳二中 1976-10-10

          4 mike 深圳一中 1975-12-23

          2 數據傳入命令 load data local infile " 文件名 " into table 表名 ;

          注意:你最好將文件復制到 mysqlin 目錄下,并且要先用 use 命令選表所在的庫。

          ?

          五、導出和導入數據: ( 命令在 DOS mysqlin 目錄下執行 )

          導出表

          mysqldump --opt school > school.sql

          注釋:將數據庫 school 中的表全部備份到 school.sql 文件, school.sql 是一個文本文件,

          文件名任取,打開看看你會有新發現。

          mysqldump --opt school teacher student > school.teacher.student.sql

          注釋:將數據庫 school 中的 teacher 表和 student 表備份到 school.teacher.student.sql

          件, school.teacher.student.sql 是一個文本文件,文件名任取,打開看看你會有新發現。

          ?

          導入表

          mysql

          mysql>create database school;

          mysql>use school;

          mysql>source school.sql;

          ( 或將 school.sql 換為 school.teacher.sql / school.teacher.student.sql)

          ?

          導出數據庫

          mysqldump --databases db1 db2 > db1.db2.sql

          注釋:將數據庫 dbl db2 備份到 db1.db2.sql 文件, db1.db2.sql 是一個文本文件,文件名

          任取,打開看看你會有新發現。

          ( 舉個例子:

          mysqldump -h host -u user -p pass --databases dbname > file.dump

          就是把 host 上的以名字 user ,口令 pass 的數據庫 dbname 導入到文件 file.dump 中。 )

          ?

          導入數據庫

          mysql < db1.db2.sql

          ?

          復制數據庫

          mysqldump --all-databases > all-databases.sql

          注釋:將所有數據庫備份到 all-databases.sql 文件, all-databases.sql 是一個文本文件,

          文件名任取。

          ?

          導入數據庫

          mysql

          mysql>drop database a;

          mysql>drop database b;

          mysql>drop database c;

          ...

          mysql>source all-databases.sql; ( exit 退出 mysql mysql < all-databases.sql)

          ?

          后記:

          其實 mysql 的對數據庫的操作與其它的 SQL 類數據庫大同小異, 您最好找本將 SQL 的書看

          看。我在這里只介紹一些基本的,其實我也就只懂這些了,呵呵。

          最好的 mysql 教程還是 " 晏子 " 譯的 "mysql 中文參考手冊 " 。不僅免費,每個相關網站都有

          下載,而且它是最權威的。可惜不象 "PHP4 中文手冊 " 那樣是 chm 的格式, 在查找函數命令的

          時候不太方便。

          ?

          3. 打開數據庫: use dbname

          顯示所有數據庫: show databases;

          顯示數據庫 mysql 中所有的表:先 use mysql ;然后 show tables;

          顯示表的列信息: describe user;( 顯示表 mysql 數據庫中 user 表的信息);

          ?

          4. 創建一個可以從任何地方連接服務器的一個完全的超級用戶,但是必須使用一個口令 something 做這個

          GRANT ALL PRIVILEGES ON *.* TO monty@localhost IDENTIFIED BY 'something' WITH GRANT OPTION;

          GRANT ALL PRIVILEGES ON *.* TO monty@"%" IDENTIFIED BY 'something' WITH GRANT OPTION;

          ?

          5. 刪除授權:

          REVOKE ALL PRIVILEGES ON *.* FROM root@"%";

          USE mysql;

          DELETE FROM user WHERE User="root" and Host="%";

          FLUSH PRIVILEGES;

          ?

          6. 創建一個用戶 custom 在特定客戶端 weiqiong.com 登錄,可訪問特定數據庫 bankaccount

          mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROPON bankaccount.*

          TO custom@weiqiong.com IDENTIFIED BY 'stupid';

          ?

          7. 重命名表 :

          ALTER TABLE t1 RENAME t2;

          ?

          為了改變列 a ,從 INTEGER 改為 TINYINT NOT NULL( 名字一樣 )

          并且改變列 b ,從 CHAR(10) 改為 CHAR(20) ,同時重命名它,從 b 改為 c:

          ALTER TABLE t2 MODIFY a TINYINT NOT NULL, CHANGE b c CHAR(20);

          ?

          增加一個新 TIMESTAMP 列,名為 d

          ALTER TABLE t2 ADD d TIMESTAMP;

          ?

          在列 d 上增加一個索引,并且使列 a 為主鍵:

          ALTER TABLE t2 ADD INDEX (d), ADD PRIMARY KEY (a);

          ?

          刪除列 c

          ALTER TABLE t2 DROP COLUMN c;

          ?

          增加一個新的 AUTO_INCREMENT 整數列,命名為 c

          ALTER TABLE t2 ADD c INT UNSIGNED NOT NULL AUTO_INCREMENT,ADD INDEX (c);

          注意,我們索引了 c ,因為 AUTO_INCREMENT 柱必須被索引,并且另外我們聲明 c NOT NULL

          因為索引了的列不能是 NULL

          ?

          8. 刪除記錄 :

          DELETE FROM t1 WHERE C>10;

          ?

          6. 改變某幾行 :

          UPDATE t1 SET user=weiqiong,password=weiqiong;

          ?

          7. 使用 name 列的頭 10 個字符創建一個索引 :

          CREATE INDEX part_of_name ON customer (name(10));

          ?

          posted on 2006-07-20 14:02 黑咖啡 閱讀(431) 評論(0)  編輯  收藏 所屬分類: Tec Article

          <2006年7月>
          2526272829301
          2345678
          9101112131415
          16171819202122
          23242526272829
          303112345

          留言簿(2)

          隨筆分類(67)

          文章分類(43)

          Good Article

          Good Blogs

          Open Source

          最新隨筆

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 德兴市| 海盐县| 东乌珠穆沁旗| 南丰县| 六盘水市| 龙山县| 通州市| 阳新县| 湟源县| 古田县| 阜南县| 金湖县| 凭祥市| 民丰县| 黑龙江省| 平乡县| 金湖县| 昌乐县| 和硕县| 河曲县| 河东区| 疏勒县| 尚义县| 高邑县| 陵水| 栾城县| 本溪| 隆子县| 宜昌市| 海伦市| 隆化县| 罗田县| 准格尔旗| 宜君县| 长丰县| 八宿县| 富锦市| 彭州市| 虎林市| 大姚县| 忻州市|