mysql的配置文件名称是_【MySQL学生手册】MySQL的配置文件
除了通過命令行來進(jìn)行MySQL參數(shù)項(xiàng)配置之外,你還可以將設(shè)置寫入一個(gè)配置文件中來實(shí)現(xiàn)設(shè)置。標(biāo)準(zhǔn)的MySQL客戶端程序會(huì)在啟動(dòng)時(shí)查找此類配置文件并使用文件中的相應(yīng)設(shè)置項(xiàng)。通過寫配置文件可以大大減少你運(yùn)維工作時(shí)間,因?yàn)槟悴槐卦诿看握{(diào)用程序的時(shí)候通過命令來重新定義這些參數(shù)項(xiàng)。
默認(rèn)情況下,MySQL server會(huì)在運(yùn)行時(shí)使用其預(yù)編譯的值作為其配置項(xiàng)值。如果這些默認(rèn)值在實(shí)際環(huán)境中是不適合的,你可以在server運(yùn)行時(shí)給予不同的運(yùn)行時(shí)參數(shù)值:
有幾個(gè)配置項(xiàng)定義了MySQL重要目錄和文件的位置信息。如,Windows下,默認(rèn)預(yù)編譯的安裝目錄(base directory)為C:\mysql。如果你系統(tǒng)將MySQL安裝在其他地方,你就必須通過使用 --basedir參數(shù)設(shè)置告知服務(wù)正確的目錄位置,否則服務(wù)無法啟動(dòng)。同樣的,如果你并非使用安裝目錄下的data子目錄作為你的數(shù)據(jù)存放目錄的話,你就必須使用 –datadir項(xiàng)設(shè)置來告訴服務(wù)正確的位置。
有些配置項(xiàng)對(duì)MySQL server寫哪些日志進(jìn)行了控制。
有些配置項(xiàng)被用于覆蓋調(diào)整server中與性能相關(guān)的內(nèi)部變量值,如控制最大同時(shí)連接數(shù)的配置項(xiàng),控制buffer和cache大小的配置項(xiàng)等等。
一些存儲(chǔ)引擎在預(yù)編譯時(shí)的設(shè)置為啟用或禁用狀態(tài)。如,服務(wù)程序已經(jīng)編譯啟用了InnoDB支持(默認(rèn)為啟用),假如你并不使用InnoDB表的話,你可以設(shè)置 --skip-innodb項(xiàng)來節(jié)省內(nèi)存(注意,由于現(xiàn)在InnoDB已成為標(biāo)準(zhǔn)配置,因此此參數(shù)在MySQL 5.7版本及其以后版本中被廢用,這里僅作為例子進(jìn)行說明)。你也可以設(shè)置默認(rèn)存儲(chǔ)引擎進(jìn)行設(shè)置修改。
有些配置項(xiàng)也可對(duì)InnoDB表空間進(jìn)行進(jìn)行設(shè)置。在未顯式配置的情況下,如 --innodb_autoextend_increment, -- innodb_page_size等,這些值也可以根據(jù)你的情況進(jìn)行調(diào)整。
你可以通過定義運(yùn)行時(shí)配置項(xiàng)在服務(wù)啟動(dòng)時(shí)改變其表現(xiàn)。通常,這種設(shè)置可以通過命令行和配置文件來達(dá)到你的目的。(例外的是,如果你是以Window Service服務(wù)運(yùn)行MySQL服務(wù)的話,你可能不能通過命令行來進(jìn)行配置設(shè)置,你必須在啟動(dòng)時(shí)使用 --defaults-file 參數(shù)項(xiàng),將配置設(shè)置于配置文件中。請(qǐng)依據(jù)對(duì)應(yīng)版本而定。)
為了了解哪些配置項(xiàng)是server支持的,我們可以手工調(diào)用以下命令:
# mysqld --verbose --help
在幫助中所看到的那些配置項(xiàng)都可以使用mysqld命令時(shí)同時(shí)進(jìn)行設(shè)置使用。當(dāng)然,更常見的是將它們寫入配置文件中,這都多方面原因:
通過將配置項(xiàng)寫入文件中,你可以不必每次在啟動(dòng)MySQL服務(wù)時(shí)將配置參數(shù)定義在命令中。這不僅方便,也可以避免太多復(fù)雜配置項(xiàng)造成的輸入錯(cuò)誤。
如果你是通過server啟動(dòng)腳本來調(diào)用服務(wù)的話,你就不能通過在命令中加入配置項(xiàng)來進(jìn)行啟動(dòng)。因?yàn)榇四_本僅有參數(shù)值start和stop,這里你不需使用配置文件來進(jìn)行啟動(dòng)設(shè)置。
如果你在配置文件中列出有所有你所需的服務(wù)配置,你可以從文件中快速方便得了解你所進(jìn)行的設(shè)置。
標(biāo)準(zhǔn)MySQL服務(wù)會(huì)在幾個(gè)位置查找配置文件。它會(huì)使用那些在相應(yīng)存放位置的配置文件,但是如果它找不到的話,服務(wù)也照樣正常啟動(dòng),不會(huì)報(bào)錯(cuò)。在Windows和Unix上,對(duì)應(yīng)的標(biāo)準(zhǔn)配置文件有所不同。
在Windows上,程序會(huì)在目錄(例如,C:\Winodws或C:\WinNT目錄)中按以下順序查找配置文件:my.ini,然后是my.cnf。
按目錄查找的順序如下:最上面的文件先讀。
注意:如果你使用配置精靈進(jìn)行的安裝(即將MySQL server注冊(cè)為一個(gè)Windows服務(wù)),那么服務(wù)就不會(huì)按照標(biāo)準(zhǔn)配置文件目錄順序進(jìn)行查找,它僅會(huì)找MySQL安裝目錄下的my.ini文件。當(dāng)然如果你在注冊(cè)服務(wù)時(shí)使用 --defaults-file指定過配置文件,那么服務(wù)只會(huì)找你指定位置的那份配置文件。因此,如果你需要進(jìn)行配置修改,請(qǐng)將設(shè)置放在服務(wù)會(huì)讀的那個(gè)配置文件中。
在Unix上,所查找的配置文件則包括兩個(gè)通用配置文件,/etc/my.cnf和$MYSQL_HOME/my.cnf。第二個(gè)文件僅在MYSQL_HOME環(huán)境變量已設(shè)置好的情況下才會(huì)被使用。通常你可以設(shè)置它作為MySQL安裝目錄。(如果在啟動(dòng)服務(wù)時(shí)此參數(shù)未設(shè)置,則mysql_safe腳本在執(zhí)行時(shí)會(huì)嘗試設(shè)置此MYSQL_HOME環(huán)境變量。)
Unix配置文件的查找順序中還包括了~/.my.cnf,配置文件可被放置在當(dāng)前啟動(dòng)MySQL的用戶HOME目錄下。不過,由于此文件是一個(gè)特定于用戶的文件,因此不太適合存放作為服務(wù)配置參數(shù)。(正常在你以root用戶且使用 --user=mysql調(diào)用mysql服務(wù)時(shí),服務(wù)會(huì)讀取的特定用戶配置文件取決于你調(diào)用服務(wù)的那個(gè)登陸用戶,這可能會(huì)導(dǎo)致不一致的配置信息被使用。)
按目錄查找的順序如下:最上面的文件先讀。
在配置文件中定義服務(wù)啟動(dòng)配置項(xiàng)時(shí),使用[mysqld]組。如果文件不存在,那么你可以使用編輯器新建一個(gè)平文件。建立和修改文件需要對(duì)應(yīng)的寫入權(quán)限。MySQL服務(wù)本身僅需要讀取權(quán)限即可;它會(huì)讀取其中信息,但并不會(huì)新建或改動(dòng)文件。
以下例子中,我們例舉了一些使用配置文件進(jìn)行設(shè)置的方法:
如果在的MySQL安裝在Windows上,服務(wù)假設(shè)默認(rèn)安裝目錄為C:\mysql且數(shù)據(jù)子目錄名為data。然而你希望將MySQL安裝在其它地方,如: E:\mysql,你就必須使用 --basedir參數(shù)項(xiàng)告知服務(wù)對(duì)應(yīng)路徑。配置文件中的配置項(xiàng)前不用寫雙橫杠【--】,你如下在配置文件中設(shè)置安裝目錄:
[mysqld]
basedir=E:/mysql
如果你將E:\mysql下的data子目錄作為數(shù)據(jù)目錄,那basedir值已近足夠了。不過如果你希望使用不同的數(shù)據(jù)目錄路徑,你就必須設(shè)置 --datadir項(xiàng),如:
[mysqld]
basedir=E:/mysql
datadir=D:/mysql-data
請(qǐng)注意,在這種情況下,你也需要將原數(shù)據(jù)目錄的拷貝到新對(duì)應(yīng)位置D:\mysql-data上。如果不這樣的話,當(dāng)啟動(dòng)服務(wù)時(shí),由于找不到配置文件對(duì)應(yīng)的數(shù)據(jù)目錄,會(huì)導(dǎo)致服務(wù)啟動(dòng)失敗。
對(duì)于配置參數(shù)中設(shè)置的Windows路徑名,你可以使用斜杠【/】或者【\\】。例如,定義basedir值為E:\mysql,你可以以以下兩種格式進(jìn)行設(shè)置:
basedir=E:/mysql
basedir=E:\mysql
如果路徑名包含空格,你可以用雙引號(hào)括起來,如:
basedir=” C:/Program Files/MySQL/MySQL Server 5.6”
在Windows上,默認(rèn)共享內(nèi)存(shared-memory)連接方式是未啟用的。為了使用此連接方式,使用以下配置項(xiàng):
[mysqld]
shared-memory
類似,mysqld-nt和mysql-max-nt服務(wù)程序都在Windows平臺(tái)上支持命名管道(named-pipe)連接方式,但它們都并未啟用。為了啟用這種連接方式,可使用以下配置項(xiàng):
[mysqld]
enable-named-pipe
為了啟用日志,可以使用配置項(xiàng)啟用你所希望的類型。以下配置項(xiàng)啟用了通用查詢?nèi)罩?#xff0c;二進(jìn)制日志以及長時(shí)間查詢?nèi)罩?以MySQL v5.7版本為例):
[mysqld]
general-log
log-bin
log-slow-queries
為了定義默認(rèn)存儲(chǔ)引擎為InnoDB,可以使用 --default-storage-engine項(xiàng):
[mysqld]
default-storage-engine=InnoDB
配置文件中也可設(shè)置許多MySQL服務(wù)系統(tǒng)變量值。例如,為了將最大客戶端連接數(shù)從默認(rèn)151提升至201,并增加MyISAM的鍵緩存(key cache)從8MB到128MB,你需要設(shè)置max_connections和key_buffer_size變量:
[mysqld]
max_connections = 201
key_buffer_size = 134217728
MySQL版本在v5.6.8之前包含有幾個(gè)模板配置文件。在Windows中,文件名如my-small.ini和my-large.ini。這些被安裝時(shí)同時(shí)建立在安裝目錄中。在Unix中,它們名為my-small.cnf和my-large.cnf。在my-default.cnf v5.6.8之后,這些文件被my-default.cnf文件代替。
你可以通過拷貝模板文件到標(biāo)準(zhǔn)配置文件路徑上,將其文件名修改為指定所用配置文件名。不過在使用模板文件時(shí),你需要確保能讀懂文件中的意思,理解其中配置項(xiàng)設(shè)置的效果并作出相應(yīng)修改。
3.5.1使用--safe-updates配置項(xiàng)
配置文件中的配置項(xiàng)按組進(jìn)行組織,每組配置項(xiàng)前都有一個(gè)以中括號(hào)括起來的組名(如:[group-name])。通常情況下,組名為所使用配置項(xiàng)對(duì)應(yīng)的程序名。例如, [mysql]和[mysqldump]組對(duì)應(yīng)的配置項(xiàng)被用于mysql和mysqldump命令工具。而特別的組名如[client]則被用于所有客戶端程序。一般[client]組被設(shè)置連接配置參數(shù),因?yàn)椴还苣闶褂媚膫€(gè)客戶端程序都連接到此相同server上。
在配置文件中進(jìn)行設(shè)置時(shí),請(qǐng)將使用于命令行時(shí)的參數(shù)前的雙橫杠去掉。如果配置項(xiàng)設(shè)置一個(gè)值,可與允許在等號(hào)【=】兩邊有空格,不過在用于命令行時(shí),這是不允許的。以下為一個(gè)配置文件例子:
[client]
host = myhost.example.com
compress
[mysql]
safe-updates
[mysqld]
port=3011
注意:除非服務(wù)由root用戶啟動(dòng),否則端口號(hào)必須為1024或比之更大的值。
在上面這個(gè)例子中,[client]組定義了主機(jī)名,且設(shè)定C/S訪問協(xié)議需使用壓縮模式進(jìn)行發(fā)送。組中的配置項(xiàng)應(yīng)用于所有標(biāo)準(zhǔn)的客戶端。而[mysql]組僅應(yīng)用于客戶端程序mysql。[mysql]組的設(shè)置要求了mysql命令應(yīng)該使用 --safe-updates項(xiàng)。(mysql命令程序?qū)?huì)同時(shí)使用[client]和[mysql]組中的配置,因此總共有3個(gè)配置項(xiàng)被mysql使用。)
3.5.2配置文件位置
配置文件的位置取決于你的操作系統(tǒng)。標(biāo)準(zhǔn)配置文件如:
在Windows上,一般MySQL會(huì)按以下順序查找配置文件: my.ini和cnf。而MSI安裝精靈會(huì)將配置文件放置在服務(wù)注冊(cè)設(shè)定時(shí)所指定的位置下)。
在Unix平臺(tái)上,文件/etc/my.cnf將作為全局配置文件被所有用戶使用。你也可以在你的HOME目錄中建立用戶自己定義的cnf文件。如果兩個(gè)都存在,全局文件會(huì)被先讀取。
當(dāng)然,MySQL的命令行程序會(huì)在查找$HOME目錄下的配置文件前,先在$MYSQL_HOME目錄下查找配置文件(例如,../MySQL Server 5.6)。
MySQL(客戶端)程序也可以對(duì)多個(gè)配置文件進(jìn)行訪問。程序會(huì)查找每個(gè)標(biāo)準(zhǔn)配置文件并在文件存在時(shí)進(jìn)行讀取。如果文件不存在也不會(huì)報(bào)錯(cuò)。
如果需要使用某個(gè)配置文件,你可以使用編輯器建立一個(gè)平文件進(jìn)行編輯。
為了建立或修改此文件,你必須有相應(yīng)的寫權(quán)限。客戶端程序僅需讀權(quán)限即可。
為了告知程序讀取指定的配置文件,使用命令行啟動(dòng)時(shí)可使用以下參數(shù)項(xiàng)(在命令中必須是第一個(gè)參數(shù)項(xiàng)):
配置項(xiàng)
注釋
--defaults-file=file_name
使用指定位置的配置文件
--defaults-extra-file=file_name
使用指定位置的額外配置文件
--no-defaults
使程序不使用配置文件
例如,使用mysql工具命令時(shí)使用C:\my-opts配置文件而不使用標(biāo)準(zhǔn)配置文件:
shell> mysql -–defaults-file=C:\my-opts
在配置文件中,你還可以使用 !include和 !includedir指令:
如果某行中出現(xiàn) !include file_name,那就會(huì)從這句指令開始跳轉(zhuǎn)到對(duì)應(yīng)file_name進(jìn)行讀取,讀完后再調(diào)回原先的配置文件繼續(xù)之前的讀取。
如果某行中出現(xiàn) !includedir dir_name,那么類似的會(huì)從這句指令開始跳轉(zhuǎn)到對(duì)應(yīng)dir_name目錄并查找尾綴為.cnf的文件(Windows平臺(tái)上為.cnf和.ini)進(jìn)行配置讀取,在讀完后回到之前跳出的配置文件完成余下的讀取工作。
如果一個(gè)配置項(xiàng)被定義多次,不管是在同一個(gè)文件中還是在不同的多個(gè)配置文件中,配置項(xiàng)的值取最后設(shè)置的那個(gè)。
注意:在命令行中設(shè)置的配置項(xiàng)會(huì)最終覆蓋配置文件讀取的配置項(xiàng)的值。
總結(jié)
以上是生活随笔為你收集整理的mysql的配置文件名称是_【MySQL学生手册】MySQL的配置文件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ajax传递数组,后台更新
- 下一篇: 变频器服务器电路板维修,变频器电路板维修