MySQL Basis

brightking716發表於2010-11-05
Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4

MySql常用命令】

1:使用SHOW語句找出在伺服器上當前存在什麼資料庫:

mysql> SHOW DATABASES;

2:建立一個資料庫MYSQLDATA

mysql> CREATE DATABASE MYSQLDATA;

3:選擇你所建立的資料庫

mysql> USE MYSQLDATA; (按Enter鍵出現Database changed 時說明操作成功!)

4:檢視現在的資料庫中存在什麼表

mysql> SHOW TABLES;

5:建立一個資料庫表

mysql> CREATE TABLE MYTABLE (name VARCHAR(20), sex CHAR(1));

6:顯示錶的結構:

mysql> DESCRIBE MYTABLE;

7:往表中加入記錄

mysql> insert into MYTABLE values (”hyq”,”M”);

8:用文字方式將資料裝入資料庫表中(例如D:/mysql.txt

mysql> LOAD DATA LOCAL INFILE “D:/mysql.txt” INTO TABLE MYTABLE;

9:匯入.sql檔案命令(例如D:/mysql.sql

mysql>use database;

mysql>source d:/mysql.sql;

10:刪除表

mysql>drop TABLE MYTABLE;

11:清空表

mysql>delete from MYTABLE;

12:更新表中資料

mysql>update MYTABLE set sex=”f” where name=’hyq’;

[@more@] Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4

MySQL Security

windowsMySql以服務形式存在,在使用前應確保此服務已經啟動,未啟動可用net start mysql命令啟動。而Linux中啟動時可用“/etc/rc.d/init.d/mysqld start”命令,注意啟動者應具有管理員許可權。剛安裝好的MySql包含一個含空密碼的root帳戶和一個匿名帳戶,這是很大的安全隱患,對於一些重要的應用我們應將安全性儘可能提高,在這裡應把匿名帳戶刪除、root帳戶設定密碼,可用如下命令進行:

Mysql> use mysql;

Mysql> delete from User where User=”";

Mysql> update User set Password=PASSWORD(’newpassword’) where User=’root’;

如果要對使用者所用的登入終端進行限制,可以更新User表中相應使用者的Host欄位,在進行了以上更改後應重新啟動資料庫服務,此時登入時可用如下類似命令:

mysql -uroot -p;

mysql -uroot -pnewpassword;

mysql mydb -uroot -p;

mysql mydb -uroot -pnewpassword;

上面命令引數是常用引數的一部分,詳細情況可參考文件。此處的mydb是要登入的資料庫的名稱。

在進行開發和實際應用中,使用者不應該只用root使用者進行連線資料庫,雖然使用root使用者進行測試時很方便,但會給系統帶來重大安全隱患,也不利於管理技術的提高。我們給一個應用中使用的使用者賦予最恰當的資料庫許可權。如一個只進行資料插入的使用者不應賦予其刪除資料的許可權。MySql的使用者管理是透過 User表來實現的,新增新使用者常用的方法有兩個,一是在User表插入相應的資料行,同時設定相應的許可權;二是透過GRANT命令建立具有某種許可權的使用者。其中GRANT的常用用法如下:

grant all on mydb.* to NewUserName@HostName identified by “password” ;

grant usage on *.* to NewUserName@HostName identified by “password”;

grant select,insert,update on mydb.* to NewUserName@HostName identified by “password”;

grant update,delete on mydb.TestTable to NewUserName@HostName identified by “password”;

要給此使用者賦予他在相應物件上的許可權的管理能力,可在GRANT後面新增WITH GRANT OPTION選項。而對於用插入User表新增的使用者,Password欄位應用PASSWORD 函式進行更新加密,以防不軌之人竊看密碼。對於那些已經不用的使用者應給予清除,許可權過界的使用者應及時回收許可權,回收許可權可以透過更新User表相應欄位,也可以使用REVOKE操作。

全域性管理許可權:

FILE: MySQL伺服器上讀寫檔案。

PROCESS: 顯示或殺死屬於其它使用者的服務執行緒。

RELOAD: 過載訪問控制表,重新整理日誌等。

SHUTDOWN: 關閉MySQL服務。

資料庫/資料表/資料列許可權:

ALTER: 修改已存在的資料表(例如增加/刪除列)和索引。

CREATE: 建立新的資料庫或資料表。

DELETE: 刪除表的記錄。

DROP: 刪除資料表或資料庫。

INDEX: 建立或刪除索引。

INSERT: 增加表的記錄。

SELECT: 顯示/搜尋表的記錄。

UPDATE: 修改表中已存在的記錄。

特別的許可權:

ALL: 允許做任何事(root一樣)

USAGE: 只允許登入–其它什麼也不允許做。

MySQL 匯入匯出】

Export dmp:

C:>mysqldump -uroot -proot mydb1> C:mydb.dmp

Import dmp:

C:>mysql -h localhost -u root -p mydb2 < C:mydb.dmp

OR:

C:>mysql -uroot -proot

mysql> show databases;

mysql> use mydb2;

mysql> source C:mydb.dmp

匯入資料的時候發現有的地方有這個錯誤:

C:>mysql -h localhost -u root -p mydb2 < C:mydb.dmp

ERROR 1153 (08S01) at line 498: Got a packet bigger than 'max_allowed_packet' bytes

問題出在調整了bugzilla的上傳附件的大小卻沒有調整mysql的配置檔案,於是調整

/etc/my.cnf (Linux)

MySQL Server 5.0my.ini (Windows)

修改mysql的最大允許包大小

[mysqld]部分(不在這部分沒用)新增一句:

max_allowed_packet=10485760

PS:建議在5.0後的版本中關掉old_passwords選項。

如果你不知道你的OLD_PASSWORDS是不是開啟了,可以用命令。

mysql >show VARIABLES like '%old_passwords%';

重啟mysql服務就可以了,這裡設定的是10MB

Reference :

http://www.cnblogs.com/cnkenny/archive/2009/04/22/1441297.html

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12472709/viewspace-1040987/,如需轉載,請註明出處,否則將追究法律責任。

相關文章