Ôàéë îïöèé my.cnf
Ãëàâíàÿ Ñòðàíèöà » Êíèãè ïî PHP » MySQL óðîêè äëÿ íà÷èíàþùèõ ñ íóëÿ » Ôàéë îïöèé my.cnf â MySQL
Íà÷èíàÿ ñ âåðñèè 3.22, MySQL ìîæåò ÷èòàòü çàäàííûå ïî óìîë÷àíèþ ïàðàìåòðû çàïóñêà äëÿ êëèåíòîâ è ñåðâåðà èç ôàéëîâ îïöèé.
MySQL (â Unix) ÷èòàåò çàäàííûå ïî óìîë÷àíèþ ïàðàìåòðû èç ñëåäóþùèõ ôàéëîâ (òàáë. 4.11):
Òàáëèöà 4.11. Ôàéëû ïàðàìåòðîâ êëèåíòà è ñåðâåðà
| Èìÿ ôàéëà | Çà÷åì îí íóæåí |
| /etc/my.cnf | Ãëîáàëüíûå îïöèè äëÿ âñåõ |
| DATADIR/my.cnf | Îïöèè äëÿ ñåðâåðà |
| defaults-extra-file | Ôàéë, îïðåäåëåííûé ÷åðåç —defaults-extra-file=# |
| ~/.my.cnf | Ñïåöèôè÷åñêèå äëÿ ïîëüçîâàòåëåé îïöèè |
DATADIR ïðåäñòàâëÿåò ñîáîé êàòàëîã äàííûõ MySQL (îáû÷íî ýòî /usr/local/mysql/data èëè /usr/local/var). Îáðàòèòå âíèìàíèå, ÷òî ýòî òîò êàòàëîã, êîòîðûé áûë îïðåäåëåí â êîíôèãóðàöèè, à íå óêàçàí â îïöèè —datadir ïðè çàïóñêå mysqld! Ïàðàìåòð —datadir íå èìååò íèêàêîãî ýôôåêòà â òî âðåìÿ, êîãäà ñåðâåð èùåò ôàéëû îïöèé, ïîòîìó ÷òî îí èõ èùåò ïðåæäå, ÷åì îáðàáàòûâàåò ëþáûå ïàðàìåòðû èç êîìàíäíîé ñòðîêè.
MySQL (òîëüêî â ÎÑ Windows) ÷èòàåò çàäàííûå ïî óìîë÷àíèþ ïàðàìåòðû èç ñëåäóþùèõ ôàéëîâ (òàáë. 4.12):
Òàáëèöà 4.12. Ôàéëû íàñòðîéêè â ÎÑ Windows.
| Èìÿ ôàéëà | Çà÷åì îí íóæåí |
| windows-system-directory\my.ini | Ãëîáàëüíûå îïöèè äëÿ âñåõ |
| Ñ: \my.cnf | Ãëîáàëüíûå îïöèè äëÿ âñåõ |
| Ñ: \mysql\data\my.cnf | Îïöèè äëÿ ñåðâåðà |
Îáðàòèòå âíèìàíèå, ÷òî â Windows âû äîëæíû îïðåäåëèòü âñå ïóòè ñ / âìåñòî \. Åñëè âû èñïîëüçóåòå \, âû äîëæíû îïðåäåëèòü ýòî äâàæäû, ïîñêîëüêó \ ïðåäñòàâëÿåò ñîáîé ñèìâîë ESC â MySQL.
MySQL ïðîáóåò ÷èòàòü ôàéëû îïöèé â ïîðÿäêå, ïåðå÷èñëåííîì âûøå. Åñëè åñòü íåñêîëüêî ôàéëîâ íàñòðîåê, èñïîëüçóåòñÿ îïöèÿ, îïðåäåëåííàÿ â òîì ôàéëå, êîòîðûé ÷èòàåòñÿ ïîçæå. Ïàðàìåòðû, îïðåäåëåííûå â êîìàíäíîé ñòðîêå, èìåþò ïðèîðèòåò íàä ïàðàìåòðàìè, îïðåäåëåííûìè â ëþáîì ôàéëå îïöèé. Íåêîòîðûå ïàðàìåòðû ìîãóò áûòü îïðåäåëåíû ñ èñïîëüçîâàíèåì ñèñòåìíûõ ïåðåìåííûõ. Ïàðàìåòðû, îïðåäåëåííûå â êîìàíäíîé ñòðîêå èëè â ôàéëàõ îïöèé, èìåþò ïðèîðèòåò íàä çíà÷åíèåì ñîîòâåòñòâóþùåé ñèñòåìíîé ïåðåìåííîé.
Ñëåäóþùèå ïðîãðàììû ïîääåðæèâàþò ôàéëû îïöèé: mysql, mysqladmin, mysqld, mysqldump, mysqlimport, mysql.server, myisamchk è myisampack.
Âû ìîæåòå èñïîëüçîâàòü ôàéëû îïöèé, ÷òîáû îïðåäåëèòü ëþáóþ äëèííóþ îïöèþ, êîòîðóþ ïðîãðàììà ïîääåðæèâàåò. Âûïîëíèòå ïðîãðàììó ñ ïàðàìåòðîì —help, ÷òîáû ïîëó÷èòü ñïèñîê äîñòóïíûõ ïàðàìåòðîâ.
Ôàéë îïöèé ìîæåò ñîäåðæàòü ñòðîêè ñëåäóþùèõ ôîðì:
#comment
Ñòðîêè êîììåíòàðèÿ íà÷èíàþòñÿ ñ “#” èëè ñ ";". Ïóñòûå ñòðîêè èãíîðèðóþòñÿ.
[group]
Çäåñü group ïðåäñòàâëÿåò ñîáîé èìÿ ïðîãðàììû èëè ãðóïïû, äëÿ êîòîðîé âû õîòèòå óñòàíàâëèâàòü ïàðàìåòðû. Ïîñëå ñòðîêè ãðóïïû ëþáàÿ ñòðîêà option èëè set-variable îáðàùàåòñÿ ê èìåíîâàííîé ãðóïïå, ïîêà íå áóäåò äîñòèãíóò êîíåö ôàéëà îïöèé èëè æå äðóãàÿ ñòðîêà ãðóïïû.
option
Ýêâèâàëåíòíî —option â êîìàíäíîé ñòðîêå.
option=value
Ýêâèâàëåíòíî —option=value â êîìàíäíîé ñòðîêå.
set-variable = variable=value
Ýêâèâàëåíòíî -set-variable variable=value â êîìàíäíîé ñòðîêå. Ýòîò ñèíòàêñèñ äîëæåí èñïîëüçîâàòüñÿ, ÷òîáû óñòàíîâèòü ïåðåìåííóþ â mysqld.
Ãðóïïà client ïîçâîëÿåò îïðåäåëÿòü ïàðàìåòðû, êîòîðûå îáðàùàþòñÿ êî âñåé êëèåíòóðå MySQL (íî íå ê ñåðâåðó mysqld). Ýòî ñàìàÿ ïîäõîäÿùàÿ ãðóïïà, ÷òîáû îïðåäåëèòü â íåé ïàðîëü, êîòîðûé âû èñïîëüçóåòå, ÷òîáû ñîåäèíèòüñÿ ñ ñåðâåðîì. Íî óäîñòîâåðüòåñü, ÷òî ôàéë îïöèé ÷èòàåòå è ïåðåçàïèñûâàåòå òîëüêî âû.
Îáðàòèòå âíèìàíèå, ÷òî äëÿ ïàðàìåòðîâ è çíà÷åíèé âñå êîíå÷íûå è íà÷àëüíûå ïðîáåëû àâòîìàòè÷åñêè óäàëåíû. Âû ìîæåòå èñïîëüçîâàòü óïðàâëÿþùèå ïîñëåäîâàòåëüíîñòè \b, \t, \n, \r, \\ è \s â ñòðîêå (\s çàäàåò ïðîáåë).
Èìååòñÿ òèïè÷íûé ãëîáàëüíûé ôàéë îïöèé:
[client]
port=3306
socket=/tmp/mysql.sock
[mysqld]
port=3306
socket=/tmp/mysql.sock
set-variable = key_buffer_size=16M
set-variable = max_allowed_packet=1M
[mysqldump]
quick
Èìååòñÿ òèïè÷íûé ôàéë îïöèé ïîëüçîâàòåëÿ:
[client]
# The following password will be sent to all standard MySQL clients
password=my_password
[mysql]
no-auto-rehash
set-variable=connect_timeout=2
[mysqlhotcopy]
interactive-timeout
Åñëè âû èìååòå äèñòðèáóòèâ ñ èñõîäíûìè òåêñòàìè, òèïîâûå ôàéëû êîíôèãóðàöèè íàçûâàþòñÿ my-xxxx.cnf è ðàñïîëîæåíû â êàòàëîãå support-files. À âîò â äâîè÷íîì äèñòðèáóòèâå ñìîòðèòå â êàòàëîãå DIR/support-files, ãäå DIR çàäàåò èìÿ ïóòè ê êàòàëîãó óñòàíîâêè MySQL (îáû÷íî ýòî /usr/local/mysql).  íàñòîÿùåå âðåìÿ èìåþòñÿ òèïîâûå ôàéëû êîíôèãóðàöèè äëÿ ìàëåíüêîé, ñðåäíåé, áîëüøîé è î÷åíü áîëüøîé ñèñòåìû. Âû ìîæåòå êîïèðîâàòü my-xxxx.cnf â îñíîâíîé êàòàëîã (ïåðåèìåíóéòå êîïèþ â .my.cnf), ÷òîáû ýêñïåðèìåíòèðîâàòü.
Âñÿ êëèåíòóðà MySQL, êîòîðàÿ ïîääåðæèâàåò ôàéëû îïöèé, èñïîëüçóåò è ñëåäóþùèå ïàðàìåòðû:
-no-defaults
Íå ÷èòàòü ëþáûå ôàéëû îïöèé.
-print-defaults
Ïå÷àòàòü èìÿ ïðîãðàììû è âñå ïàðàìåòðû, êîòîðûå åé ïåðåäàþòñÿ.
-defaults-file=full-path-to-default-file.
Èñïîëüçîâàòü òîëüêî äàííûé ôàéë êîíôèãóðàöèè è íèêàêîé äðóãîé.
-defaults-extra-file=full-path-to-default-file
×èòàòü ýòîò ôàéë êîíôèãóðàöèè ïîñëå ãëîáàëüíîãî ôàéëà îïöèé, íî ïåðåä ÷òåíèåì ôàéëà íàñòðîåê ïîëüçîâàòåëÿ.
Îáðàòèòå âíèìàíèå, ÷òî âûøåóïîìÿíóòûå ïàðàìåòðû äîëæíû áûòü ïåðâûìè â êîìàíäíîé ñòðîêå, ÷òîáû îíè ðàáîòàëè! Îäíàêî —print-defaults ìîæåò èñïîëüçîâàòüñÿ íåïîñðåäñòâåííî ïîñëå êîìàíäû —defaults-xxx-file.
 ñêðèïòàõ îáîëî÷êè âû ìîæåòå èñïîëüçîâàòü êîìàíäó my_print_defaults, ÷òîáû àíàëèçèðîâàòü ôàéëû êîíôèãóðàöèè:
shell> my_print_defaults client mysql -port=3306
—socket=/tmp/mysql.sock -no-auto-rehash
Âûøåóïîìÿíóòûé âûâîä ñîäåðæèò âñå ïàðàìåòðû äëÿ ãðóïï client è mysql.



