點擊這里給我發消息?? 點擊這里給我發消息
全國免費熱線:029-86478250
當前位置: 首頁 > 博客中心 > 行業隨筆 >
mysqld命令行選項
mysqld命令行選項

最常用的方法是在選項文件中或在命令行提供選項。但是,在大多數情況下,希望服務器每次運行時使用相同的選項。最好的方法是確保將它們列在選項文件中。

mysqld從[mysqld]和[server]組讀取選項。mysqld_safe從[mysqld]、[server]、[mysqld_safe]和[safe_mysqld]組讀取選項。mysql.server從 [mysqld]和[mysql.server]組讀取選項。嵌入式MySQL服務器通常從[server]、[embedded]和[xxxxx_SERVER]組讀取選項,其中xxxxx是服務器嵌入的應用程序名。

mysqld接受許多命令行選項。執行mysqld --help可以簡單列出來。要想看全部列表列,使用命令mysqld --verbose --help

下面列出了一些最常用的服務器選項。其它的選項在其它地方描述:

·         影響安全的選項

·         SSL-相關選項

·         二進制日志控制選項

·         復制相關選項

·         

你還可以將變量名作為一個選項,設置服務器系統變量的值,如本節后面所述。

·         --help,-?

顯示簡短的幫助消息并退出。使用--verbose和--help選項來看全部內容。

·         --allow-suspicious-udfs

該選項控制是否用戶定義的函數只有一個xxx符,用作可載入的主函數。默認情況下,該選項被關閉,只有至少有一個附屬符的UDF  可以載入。這樣可以防止從未包含合法UDF的共享文件裝載函數。

·         --ansi

使用標準(ANSI)SQL語法代替MySQL語法。使用--sql-mode選項可以更精確控制服務器SQL模式。

·         --basedir=path, -b path

MySQL安裝目錄的路徑。通常所有路徑根據該路徑來解析。

·         --bind-address=IP

待綁定的IP地址。

·         --bootstrap

mysql_install_db腳本使用該選項來創建MySQL授權表,不需要啟動MySQL服務器。

·         --console

將錯誤日志消息寫入stderr和stdout,即使指定了--log-error。在Windows中,如果使用該選項,mysqld不關閉控制臺窗口。

·         --character-sets-dir=path

字符集安裝的目錄。

·         --chroot=path

通過chroot()系統調用在啟動過程中將mysqld服務器放入一個封閉環境中。這是推薦的一個安全措施。請注意使用該選項可以 限制LOAD DATA INFILE和SELECT ... INTO OUTFILE。

·         --character-set-server=charset

使用charset作為 默認服務器字符集。

·         --core-file

如果mysqld終止,寫內核文件。在某些系統中,你還必須為mysqld_safe指定--core-file-size 選項。請注意對于一些系統,例如Solaris,如果你使用--user選項不會獲得內核文件。

·         --collation-server=collation

使用collation作為 默認服務器校對規則。

·         --datadir=path, -h path

數據目錄的路徑。

·         --debug[=debug_options], -# [debug_options]

如果MySQL配置了--with-debug,你可以使用該選項來獲得一個跟蹤文件,跟蹤mysqld正進行的操作。debug_options字符串通常為'd:t:o,file_name'。

·         (DEPRECATED) --default-character-set=charset

使用char設置作為 默認字符集。由于--character-set-server,反對使用該選項。

·         --default-collation=collation

使用collation 作為默認校對規則。由于--collation-server,反對使用該選項。

·         --default-storage-engine=type

該選項為--default-table-type的同義詞。

·         --default-table-type=type

設置表的默認類型。

·         --default-time-zone=type

設置默認服務器時區。該選項設置全局time_zone系統變量。如果未給出該選項, 默認時區與系統時區相同(用system_time_zone系統變量值給定)。

·         --delay-key-write[= OFF | ON | ALL]

如何使用DELAYED KEYS選項。鍵寫入延遲會造成再次寫MyISAM表時鍵緩沖區不能被清空。OFF禁用延遲的鍵寫入。ON啟用用DELAYED KEYS選項創建的表的延遲的鍵寫入。ALL延遲所有MyISAM表的鍵寫入。

釋:如果你將該變量設置為ALL,你不應從另一個正使用MyISAM表的程序中使用MyISAM表(例如從另一個MySQL服務器或用myisamchk)。這樣操作會導致索引破壞。

·         --des-key-file=file_name

從該文件讀DES_ENCRYPT()和DES_DECRYPT()使用的 默認鍵。

·         --enable-named-pipe

啟用命名管道支持。該選項只適用Windows NT、2000、XP和2003系統,并且只適用支持命名管道連接的mysqld-ntmysqld-max-nt服務器。

 

·         --exit-info[=flags], -T [flags]

這是不同標志的一個位掩碼,你可以用來調試mysqld服務器。不要使用該選項,除非你確切知道它在做什么!

·         --external-locking

啟用系統鎖定。請注意如果你在lockd不能完全工作的系統上使用該選項(例如在Linux中),mysqld容易死鎖。該選項以前叫--enable-locking。

釋:如果你在許多MySQL進程中使用該選項來更新MyISAM表,你必須確保滿足下述條件:

o        使用正被另一個進程更新的表的查詢的緩存不可使用。

o        不應在共享表中使用--delay-key-write=ALL或DELAY_KEY_WRITE=1。

最簡單的方法是結合使用--external-locking和--delay-key-write=OFF --query-cache-size=0。

(默認不能實現,因為在許多設置中,結合使用上述選項很有用)。

·         --flush

執行SQL語句后向硬盤上清空更改。一般情況執行SQL語句后 MySQL向硬盤寫入所有更改,讓操作系統處理與硬盤的同步。

·         --init-file=file

啟動時從該文件讀SQL語句。每個語句必須在同一行中并且不應包括注釋。

·         --language=lang_name, -L lang_name

用給定語言給出客戶端錯誤消息。lang_name可以為語言名或語言文件安裝目錄的全路徑名。

·         --large-pages

一些硬件/操作系統架構支持大于 默認值(通常4 KB)的內存頁。實際支持取決于使用的硬件和OS。大量訪問內存的應用程序通過使用較大的頁,降低了Translation Lookaside Buffer (TLB)損失,可以改善性能。

目前,MySQL只在Linux中支持大頁面(在Linux中被稱作HugeTLB)。我們已經計劃將該支持擴展到FreeBSD、Solaris和其它可能的平臺。

在Linux中可以使用大頁面前,需要配置HugeTLB內存池。參考Linux內核源碼中的hugetlbpage.txt文件。

默認情況下該選項被禁用。

·         ---log[=file], -l [file]

日志連接和對文件的查詢。如果你不指定文件名,MySQL使用host_name.log作為文件名。

·         --log-bin=[file]

二進制日志文件。將更改數據的所有查詢記入該文件。用于備份和復制。建議指定一個文件名,否則MySQL使用host_name-bin作為日志文件基本名。

·         --log-bin-index[=file]

二進制日志文件名的索引文件。如果你不指定文件名,并且如果你沒有在--log-bin中指定,MySQL使用host_name-bin.index作為文件名。

·         --log-bin-trust-routine-creators[={0|1}]

沒有參數或參數為1,該選項將系統變量log_bin_trust_routine_creators設置為1。為參數 0時,該選項將系統變量設置為0。log_bin_trust_routine_creators影響MySQL如何對保存的程序的創建強加限制。

·         --log-error[=file]

該文件的日志錯誤和啟動消息。如果你不指定文件名,MySQL使用host_name.err作為文件名。如果文件名沒有擴展名,則加上.err擴展名。

·         --log-isam[=file]

將所有MyISAM更改記入該文件(只有調試MyISAM時才使用)。

·         (DEPRECATED) --log-long-format

記錄激活的更新日志、二進制更新日志、和慢查詢日志的大量信息。例如,所有查詢的用戶名和時間戳將記錄下來。不贊成選用該選項,因為它現在代表 默認記錄行為。(參見--log-short-format描述)。--log-queries-not-using-indexes選項適合將未使用索引的查詢記錄到慢查詢日志中。

·         --log-queries-not-using-indexes

如果你結合--log-slow-queries使用該選項,未使用索引的查詢也被記錄到慢查詢日志中。

·         --log-short-format

記錄激活的更新日志、二進制更新日志、和慢查詢日志的少量信息。例如,用戶名和時間戳不記錄下來。

·         ---log-slow-admin-statements

將慢管理語句例如OPTIMIZE TABLE、ANALYZE TABLE和ALTER TABLE記入慢查詢日志。

·         --log-slow-queries[=file]

將所有執行時間超過long_query_time 秒的查詢記入該文件。詳細信息參見--log-long-format和--log-short-format選項描述。

 

·         --log-warnings, -W

將警告例如Aborted connection...打印到錯誤日志。建議啟用該選項,例如,如果你使用復制 (你可以得到關于所發生事情的詳細信息,例如關于網絡故障和重新連接的消息)。默認情況下啟用該選項;要想禁用它,使用--skip-log-warnings。中斷的連接不會記入錯誤日志,除非值大于1。

·         --low-priority-updates

表修改(INSERT, REPLACE, DELETE, UPDATE)比選擇的優先級要低。也可以通過{INSERT | REPLACE | DELETE | UPDATE} LOW_PRIORITY ... 來降低某個查詢的優先級來實現,或通過SET LOW_PRIORITY_UPDATES=1來更改一個線程的優先級。

·          --memlock

將mysqld 進程鎖定在內存中。在支持mlockall()系統調用的系統上有效,例如Solaris。如果操作系統使mysqld在硬盤上交換時出現問題,可以為你提供幫助。請注意使用該選項時需要以root運行服務器,但從安全考慮并不是一個好注意。

·         --myisam-recover [=option[,option...]]]

將存儲引擎MyISAM設置為恢復模式。該選項值是DEFAULT、BACKUP、FORCE或QUICK值的任何組合。如果你指定多個值,用逗號間隔開。你還可以使用""值來禁用該選項。使用如果該選項,當mysqld打開MyISAM表時,檢查是否表標記為崩潰或沒有正確關閉。(只有用--skip-external-lockingare運行時,最后的選項才工作)。 如果是這種情況,mysqld則檢查 表。如果表被破壞,mysqld試圖維護它。

下面的選項影響維護工作:

選項

描述

DEFAULT

與沒有使用--myisam-recover選項相同。

BACKUP

如果在恢復過程中,數據文件被更改了,將tbl_name.MYD文件備份為tbl_name-datetime.BAK。

FORCE

即使.MYD文件將丟掉多個行也進行恢復。

QUICK

如果沒有刪除塊,不要檢查表中的行。

在表自動修復前,MySQL錯誤日志添加一條注解。如果你不想用戶干涉干涉大多數問題,你應使用BACKUP,FORCE選項。該選項強制維護表,即使一些行將會被刪除也不例外,但它保持舊的數據文件做為備份,以便你可以在后來進行檢查。

·         --ndb-connectstring=connect_string

當使用NDB存儲引擎時,可以指出通過設置連接字符串選項來分發群集配置的管理服務器。

·         --ndbcluster

如果二進制支持NDB CLUSTER存儲引擎,使用該選項可以代替禁用MySQL Cluster支持的 默認設置。

·         --old-passwords

強制服務器為新密碼生成短(4.1前)密碼哈希。如果服務器必須支持舊客戶端程序,為保證兼容性這很有用。

·         --one-thread

只使用一個線程(用于在Linux中調試)。只有服務器啟用了調試,該選項才可用。

·         --open-files-limit=count

用來更改mysqld文件描述符的數量。如果沒有設置或設置為0,則mysqld通過setrlimit()使用該值來保存文件描述符。如果該值為0,則mysqld 保存max_connections*5或max_connections + table_cache*2(取較大者)個文件。如果mysqld給出你錯誤"打開的文件太多。",你應試試增加該值。

·         --pid-file=path

mysqld_safe使用的進程ID文件的路徑。

·         --port=port_num, -P port_num

幀聽TCP/IP連接時使用的端口號。

·         --safe-mode

跳過一些優化階段。

·         (DEPRECATED) --safe-show-database

·         --safe-user-create

啟用后如果用戶沒有mysql.user表或表中列的INSERT權限,則用戶不能用GRANT語句創建新用戶。

·         --secure-auth

不允許使用舊(4.1之前)密碼的賬戶進行鑒定。

·         --shared-memory

啟用本地客戶端的共享內存連接。該選項只用于Windows。

·         --shared-memory-base-name=name

共享內存連接名。該選項只用于Windows。

·         --skip-bdb

禁用BDB存儲引擎。這樣可以節省內存,并可能加速某些操作。如果你需要BDB表則不要使用該選項。

·         --skip-concurrent-insert

關閉在同一時間在MyISAM表中選擇和插入的能力。(只有你發現缺陷時才使用該選項)。

·         --skip-external-locking

不要使用系統鎖定。要想使用myisamchk,你必須關閉服務器。 要避免該需求,使用MySQL Monitor中的CHECK TABLE和REPAIR TABLE來檢查并維護MyISAM表。

·         --skip-grant-tables

該選項使服務器不使用權限系統。該權限允許訪問服務器的用戶不受限制地訪問所有數據庫。你可以從系統外殼命令行執行mysqladmin flush-privilegesmysqladmin reload命令,或執行MySQL FLUSH PRIVILEGES語句讓運行的服務器重新開始使用 授權表。

·         --skip-host-cache

為了更快地在名稱-IP之間進行解析,不要使用內部主機名緩存。相反,每次客戶端連接時查詢DNS服務器。

·         --skip-innodb

禁用InnoDB存儲引擎。這樣可以節省內存,并可能加速某些操作。如果你需要BDB表則不要使用該選項。

·         --skip-name-resolve

不要解析正檢查客戶端連接的主機名。只使用IP號。如果你使用該項, 授權表中的所有Host列值必須為IP號或localhost。

·         --skip-ndbcluster

禁用NDB CLUSTER存儲引擎。這是支持NDB CLUSTER存儲引擎的二進制的默認設置,說明只有用--ndbcluster選項顯式覆蓋--skip-ndbcluster選項時,系統才為該存儲引擎分配內存和其它資源。

·         --skip-networking

不幀聽TCP/IP連接。必須通過命名管道或共享內存(在Windows中)或Unix套接字文件(在Unix中)完成mysqld的相互操作。對于只允許本地客戶端的系統,大力推薦該選項。

·         --standalone

只適合基于Windows-NT的系統;指導MySQL服務器不做為服務來運行。

·         --symbolic-links, --skip-symbolic-links

啟用或禁用符號鏈接支持。在Windows和Unix中,該選項的作用是不同的:

o        在Windows中,啟用符號鏈接,你可以通過創建包含實際目錄路徑的directory.sym文件來建立數據庫目錄的符號鏈接。

在Unix中,啟用符號鏈接表示你可以用CREATE TABLE語句的INDEX DIRECTORY或DATA DIRECTORY選項將MyISAM索引文件或數據文件鏈接到另一個目錄。如果你刪除或重新命名表,符號鏈接所指的文件也被刪除或重新命名。

·         --skip-safemalloc

如果MySQL配置了--with-debug=full,所有MySQL程序在內存分配和釋放時檢查內存是否溢出。檢查很慢,因此如果你不需要你可以用--skip-safemalloc選項來避免。

·         --skip-show-database

使用該選項,只允許具有SHOW DATABASES權限的用戶執行SHOW DATABASES語句,該語句顯示所有數據庫名。不使用該選項,允許所有用戶執行SHOW DATABASES,但只向具有SHOW DATABASES權限或部分數據庫權限的用戶顯示每個數據庫名。請注意全局權限為數據庫的一種權限。

·         --skip-stack-trace

不跟蹤寫堆棧。當調試運行mysqld時該選項有用。在一些系統中,你還必須使用該選項來獲得內核文件。

·         --skip-thread-priority

在快速響應中禁用線程優先級。

·         --socket=path

在Unix中,該選項指定用于本地連接的Unix套接字文件。 默認值是/tmp/mysql.sock。在Windows中,該選項指定本地連接所使用的管道名。 默認值是MySQL。

·         --sql-mode=value[,value[,value...]]

將MySQL設置為SQL模式。

·         --temp-pool

該選項使服務器創建的大多數臨時文件使用一系列文件名,而不是每個新文件使用唯一的文件名。這樣解決了在Linux內核中用 不同的名創建許多新文件的問題。在以前,Linux似乎“泄漏”內存,因為它被直接分配到directory entry緩存而不是硬盤緩存。

·         --transaction-isolation=level

設置默認事務隔離級別,可以READ-UNCOMMITTED、READ-COMMITTEE、REPEATABLE-READ或SERIALIZABLE.

·         --tmpdir=path, -t path

創建臨時文件的目錄路徑。默認/tmp目錄在太小不能容納臨時表的分區時該選項很有用。該選項接受round-robin模式的幾個路徑。在Unix中路徑應用冒號(‘:’) 間隔開,在Windows、NetWare和OS/2中用分號(‘;’) 間隔開。如果MySQL服務器為復制從機,你不應讓--tmpdir指向基于內存的文件系統中的目錄或服務器主機重啟時會清除的目錄。復制從機需要臨時文件,機器重啟時可以復制臨時表或執行LOAD DATA INFILE操作。如果服務器重啟時臨時文件目錄中的文件丟失,復制失敗。

·         --user={user_name | user_id}, -u {user_name | user_id}

user_name或數字用戶ID user_id運行mysqld服務器。(“用戶”指系統登錄賬戶,而不是 授權表中所列的MySQL用戶)。

用root啟動mysqld時強制使用該選項。服務器在啟動序列中更改用戶ID,讓它做為具體用戶而不是root運行。

要避免用戶在my.cnf文件中添加--user=root選項(使服務器用root運行)時可能出現的安全漏洞,mysqld只使用指定的第1個--user選項,如果有多個--user選項則會出現警告。在命令行選項前處理/etc/my.cnf和$MYSQL_HOME/my.cnf中的選項,因此建議你在/etc/my.cnf中放一個--user選項,并指定root之外的其它值。在其它--user選項前先找到/etc/my.cnf中的選項,確保服務器用其它用戶運行,如果找到其它--user選項則會出現警告。

·         --version, -V

顯示版本信息并退出。

你可以使用--var_name=value形式的選項為服務器系統變量。例如,--key_buffer_size=32M將變量key_buffer_size設為32MB。

請注意設置變量時,MySQL可以自動將它糾正到某個給定范圍內,或如果只允許某個值,則將設置值調節到最接近允許的值。

還可以通過--set-variable=var_name=value或-O var_name=value語法來設置變量。但是,現在不贊成使用該語法。

你可以用SET語句更改大多數服務器系統變量的值。

如果你想用SET 限制啟動項可設的最大值,你可以使用--maximum-var_name命令行選項來定義。

 

海盗财富救援彩金 四川麻将要诀 老快3怎么容易中奖 安徽11选5任务最大遗漏 福彩开奖直播 重庆时时连线2元网 急速赛车3 重庆时时彩算法 幸运飞艇开奖记录_天天飞艇 手机购彩软件 体彩e球彩玩法 6场半全场一等奖的中奖条件是什么意思 2009年排列五走势图 7星彩18139期开奖 玩吃鸡游戏对青少年有害吗 快乐12出号规律 分彩最聪明的玩法