MYSQL 網頁設計 技巧
伺服器既監聽端口設置
-
TCP/IP端口3306係MySQL伺服器默認既網路監聽端口,如用--skip-networking選項啟動伺服器,就唔監聽TCP/IP端口。可用--port端口另行指定一個監聽端口。如伺服器主機有多個IP,還可用--bind-address選項對伺服器在監聽客戶連接時使用既IP地址進行設定
-
在UNIX系統上,MySQL可在一個UNIX域套接字文件上監聽有無本地客戶在試圖以localhost為主機名進行連接。默認既套接字文件是/tmp/mysql.sock,可用--socket選項指定另外一個套接字文件。
-
在基於NT既Windows平台上,有-nt的MySQL伺服器都支持命名管道。默認既命名管道係MySql,可用--socket選項另行指定。
啟用或禁用LOAD DATA語句既LOCAL能力
-
可在MySQL伺服器編譯時,用configure腳本既--enable-local-infile或--disable-local-infile選項把LOAD DATA語句既LOCAL能力設置為啟用或禁用;
-
在MySQL伺服器啟動係,可以用--local-infile或--disable-local-infile選項來啟用或禁用伺服器既LOCAL能力(在MySQL 4.0.2之前既版本裡,要用--local-infile=0黎禁用它)。
如果在伺服器端禁用左LOCAL既能力,則客戶端就唔可以用呢個功能;如伺服器啟用LOCAL既能力,客戶端默認亦係禁止使用,但可用mysql程式既--local-infile選項啟用它。
國際化和本地化,國際化係指軟體能夠在世界多個國家地區使用,而本地化則係指可從國際化軟體中選擇一套適合本地區既語言和習慣既設置來使用。在MySQL中既國際化和本地化設置有以下幾方面內容:
-
時區,如果時區設置不對,則伺服器顯示既時間將會和當地時間有衝突。設置方法可通過mysqld_safe腳本的--timezone選項來設置,但最好都係在選項文件裡設置,如:
[mysqld_safe] timezone=US/Central
-
配置顯示資訊既語言,MySQL能用多種語言來顯示診斷資訊與出錯資訊,默認係英語。查看share/mysql目錄下有幾個以語言名稱作為目錄名既目錄就知道有邊d語言可以揀。可用--language啟動選項來指定語言,如--language=/usr/local/mysql/share/mysql/french。
-
配置伺服器既字符集,MySQL支持多種字符集,可在share/mysql/charsets目錄下查詢支持既字符集,也可用show variables like 'character_sets'來顯示支持既字符集清單。MySQL把latin1作為默認既字符集。可在編譯時用--with-charset指定另外一個字符集為默認字符集。如要增加另外既字符集支持,可用--with-extra-charasets選項進行添加。如:
% ./configure --with-extra-charsets=latin1,gb2312,big5
--with-extra-charsets有兩個特殊的選項,一個係all,代表所有可用字符集;一個係complex,代表所有既複雜字符集(包括多位元組字符集和有特殊排序規則的字符集)。
伺服器啟動時,使用默認字符集,如需指定另外的字符集,需用--default-character-set選項指明。
在MySQL 4.1以前,如果在創建好數據表後改變伺服器既默認字符集,就需對索引重新排序先可以保證索引鍵值能夠正確反映出數據表記錄在新字符集下既排列順序。重新排序既操作命令如下:
% myisamchk --recover --quick --set-character-set=gb2312 #在執行該語句需關閉伺服器,適用於MyISAM數據表 也可用: % mysqlcheck --repair --quick #不需關閉伺服器,適用於各種數據表 或者用: mysql> REPLACE TABLE ... QUICK;
在客戶端,可用--default-character-set選項指定客戶程式使用的字符集。--character-sets-dir選項可指出字符集文件的安裝目錄。
升級數據表到4.1,支持多字符集數據表。步驟如下:
-
用mysqldump程式備份數據庫:
% mysqldump -p -u root --all-databases --opt > dumpfile.sql --all-databases選項的作用是轉儲所有數據庫; --opt選項的作用是對轉儲文件進行優化。
-
關閉伺服器,升級MySQL伺服器軟體到4.1版。
-
用備份文件重新加載數據表:
% mysql -p -u root < dumpfile.sql
這樣,字符集資訊就被分配到每一個數據列中,此後,即使伺服器改變了默認的字符集,各數據列的字符集也不會改變。當以後修改某個數據列的字符集時,伺服器會自動重索引,以反映最新變化。
配置InnoDB表空間。InnoDB表空間在邏輯上是一個連接的存儲區域,但實際上是由一個或多個磁碟文件組成。這些文件可以是普通的文件,也可以是一個未格式化的原始硬碟分區。InnoDB表空間通過一系列的配置選項來設置,其中最重要的有以下兩個:
為確保伺服器每次啟動時都能調用同樣的選項,InnoDB的選項最好存放到選文件中。下面是一個例子:
innodb_data_home_dir = innodb_data_file_path=/usr/loca/mysql/data/idbdata1:10M:autoextend:max:100M 說明: InnoDB表空間文件默認存放到了MySQL的數據目錄中,名字叫idbdata1; 文件長度為10M; 可自動擴展,以8M為步長擴展,如有多個數據文件,只允許最後一個文件可自動擴展; 規定了最大的可擴展尺寸為100M。
-
innodb_data_home_dir,設置InnoDB表空間各組成文件的父目錄,如果沒有指出,則默認是MySQL的數據目錄。
-
innodb_data_file_path,描述InnoDB主目錄中各有關文件,包括文件名,文件長度和一些選項。各文件以分號分隔,各組成文件長度至少為10M。
把選項寫入選項文件後,啟動伺服器就可自動創建和初始化InnoDB表空間。
利用原始磁碟分區作為InnoDB表空間可創建一個非常大的表空間,不受作業系統單文件最大容量的限制。並且能有效減少磁碟碎片的產生。要使用原始磁碟分區,需作如下配置:
-
首先,要進行初始化,在選項文件的[mysqld]中配置:
innodb_data_home_dir= innodb_data_file_path=/dev/hda1:10Gnewraw #初始化/dev/hda1這個10G容量的分區
啟動伺服器,伺服器會對這個10G的分區進行初始化。
-
接著,關閉伺服器,修改配置文件,把newraw改為raw,如:
innodb_data_home_dir= innodb_data_file_path=/dev/hda1:10Graw
重新啟動伺服器,MySQL就會以讀/寫方式使用該表空間了。在windows平台上配置InnoDB表空間時,windows路徑名中的反斜槓可以寫成單個的斜線字符(/)。也可寫成兩個反斜槓(\\)。如:
innodb_data_home_dir= innodb_data_file_path=c:/mysql/data/ibdata1:10M;d:/ibdata2:20M
默認情況下,InnoDB的日誌文件會存儲在MySQL的數據目錄,文件名以ib開頭。一旦完成InnoDB表空間的初始化,就不能改變組成文件的大小,但可通過添加數據文件或設置自動擴展來增加表空間容量。如需通過增加文件的方法擴大表空間的容量,可按以下步驟進行:
-
關閉正在運行的MySQL伺服器
-
如果InnoDB表空間的最後一個組成文件是可自擴展的,就要先把它改變成一個固定長度文件才能把另一個文件添加到它後面。方法是先計算出該文件的近似大小,重新設置,如:
innodb_data_file_path=ibdata1:100M:autoextend 改成: innodb_data_file_path=ibdata1:150M
-
把新的組成文件添加到文件清單的末尾,該文件可以是普通文件,也可以是一個原始硬碟分區。
-
重啟伺服器。
還有一種方法重新配置InnoDB表空間,就是先備份,再重新配置,最後重新加載備份。具體步驟如下:
-
使用mysqldump備份整個InnoDB數據庫;
-
關閉伺服器,刪除所有InnoDB表空間、InnoDB日誌文件 及InnoDB數據表的.frm文件;
-
重新配置InnoDB表空間;
-
配置完成後,用備份文件重載數據,生成新的InnoDB數據表
留言列表