Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 11711|Atbildi: 0

[Avots] MySQL konfigurācijas fails my.cnf ir detalizēti izskaidrots

[Kopēt saiti]
Publicēts 13.11.2017 11:55:59 | | |
Pielāgojiet MySQL darbības parametrus, modificējiet failu /etc/my.cnf Pielāgojiet MySQL darbības parametrus, lai tie stātos spēkā pēc MySQL 4 restartēšanas, pēc MySQL 4 versijas MySQL izpildlaikā var iestatīt dažus iekšējos mainīgos, bet tas būs nederīgs, kad MySQL tiks restartēts.
MySQL programma - direktoriji un faili
basedir = ceļš # Izmantojiet doto direktoriju kā saknes direktoriju (instalācijas direktoriju).
datadir = ceļš # Izlasiet datu bāzes failu no noteikta direktorija.
pid-file = faila nosaukums # Norādiet failu mysqld programmai, lai saglabātu procesa ID (pieejams tikai UNIX/Linux sistēmām);

[mysqld]                        
socket = /tmp/mysql.sock # Norāda ligzdas failu vietējai saziņai starp MySQL klienta programmu un serveri (noklusējums ir /var/lib/mysql/mysql.sock fails operētājsistēmā Linux)
port=3306 # Norāda portu, kuru klausās MsSQL
key_buffer = 384M # key_buffer ir bloku indeksēšanai izmantotā bufera lielums, palielinot indeksu, ko tas labāk apstrādā (visiem lasījumiem un vairākrakstiem).
                               Indeksa bloks tiek buferizēts un koplietots visiem pavedieniem, un key_buffer lielums ir atkarīgs no atmiņas lieluma.
table_cache = 512 # Visiem pavedieniem atvērto tabulu skaits. Palielinot šo vērtību, palielinās mysqld nepieciešamo failu deskriptoru skaits. Tas ļauj izvairīties no bieži atvērtām datu tabulām
sort_buffer_size = 2M # Piešķiriet šāda lieluma buferi katram pavedienam, kas jākārto. Šīs vērtības palielināšana paātrina ORDER BY vai GROUP BY operācijas.
                               Piezīme: Šim parametram atbilstošā atmiņa ir ekskluzīva katram savienojumam! Ja ir 100 savienojumi, tad kopējais faktiski piešķirtais kārtošanas bufera lielums ir 100×6 = 600 MB
read_buffer_size = 2M # Bufera lielums, ko var izmantot lasīšanas vaicājuma operācijai. Tāpat kā sort_buffer_size, piešķirtā atmiņa, kas atbilst šim parametram, ir ekskluzīva katram savienojumam.
query_cache_size = 32M # Norāda MySQL vaicājuma rezultātu bufera lielumu
read_rnd_buffer_size = 8M # Mainiet parametru, kas jālasa nejauši pēc kārtošanas, izmantojot rindas rādītāju.
myisam_sort_buffer_size =64M # Buferis, kas nepieciešams, lai pārkārtotu MyISAM tabulas, kad tās mainās
thread_concurrency = 8 # Maksimālais vienlaicīgo pavedienu skaits ir iestatīts kā servera loģisko procesoru skaits ×2, un, ja CPU atbalsta H.T hiperpavedienu, × 2
thread_cache = 8 # #缓存可重用的线程数
izlaišanas bloķēšana # izvairās no MySQL ārējās bloķēšanas, samazina kļūdu iespējamību un uzlabo stabilitāti.
[mysqldump]
max_allowed_packet =16M # Maksimālā iespējamā informācijas pakete, ko var nosūtīt starp serveri un klientu

[myisamchk]
key_buffer = 256 miljoni
sort_buffer = 256M
read_buffer = 2M
write_buffer = 2M

Citi izvēles parametri:
back_log = 384
    Norāda iespējamo MySQL savienojumu skaitu.
    Kad MySQL galvenais pavediens ļoti īsā laika periodā saņem ļoti lielu skaitu savienojuma pieprasījumu, šis parametrs stājas spēkā, un galvenais pavediens aizņem īsu laiku, lai pārbaudītu savienojumu un sāktu jaunu pavedienu.
    Parametra back_log vērtība norāda, cik pieprasījumu var saglabāt stekā īsu laika periodu, pirms MySQL īslaicīgi pārtrauc atbildēt uz jauniem pieprasījumiem.
    Ja sistēmai īsā laika periodā ir daudz savienojumu, ir jāpalielina šī parametra vērtība, kas norāda klausīšanās rindas lielumu ienākošajiem TCP/IP savienojumiem.
    Mēģinājums iestatīt ierobežojumu, kas back_log augstāks par jūsu operētājsistēmu, būs neefektīvs. Noklusējuma vērtība ir 50. Linux sistēmām ieteicams iestatīt veselu skaitli, kas ir mazāks par 512.
max_connections = n
    Maksimālais datu bāzes savienojumu skaits, ko MySQL serveris var apstrādāt vienlaicīgi (noklusējuma iestatījums ir 100). Ja ierobežojums ir pārsniegts, tiks ziņots par kļūdu Pārāk daudz savienojumu
key_buffer_size = n
    RMA vērtība indeksa blokiem (noklusējuma iestatījums ir 8M), indeksa palielināšana labākai apstrādei (visiem lasījumiem un vairākrakstiem)
record_buffer:
    Katrs pavediens, kas veic secīgu skenēšanu, piešķir šāda lieluma buferi katrai skenētajai tabulai.
    Ja veicat daudz secīgu skenēšanu, iespējams, vēlēsities palielināt šo vērtību. Noklusējuma vērtība ir 131072 (128K)
wait_timeout:
    Sekunžu skaits, kad serveris gaida darbību ar savienojumu pirms tā izslēgšanas.
interactive_timeout:
    Sekunžu skaits, kad serveris gaida darbību interaktīvajā savienojumā pirms tā izslēgšanas.
    Klients, kas mijiedarbojas, tiek definēts kā klients, kurš izmanto opciju CLIENT_INTERACTIVE mysql_real_connect().
    Noklusējuma vērtība ir 28800, to var mainīt uz 3600.
izlaist nosaukumu-atrisināt            
    Atspējojiet MySQL no DNS izšķirtspējas ārējos savienojumos, izmantojot šo opciju, tiek novērsts laiks, kas nepieciešams, lai MySQL atrisinātu DNS.
    Tomēr jāatzīmē, ka, ja šī opcija ir iespējota, visai attālinātā resursdatora savienojuma autorizācijai jāizmanto IP adreses metode, pretējā gadījumā MySQL nevarēs normāli apstrādāt savienojuma pieprasījumu!
log-lēni-vaicājumi = slow.log
    Ierakstiet lēnus vaicājumus un optimizējiet tos pa vienam
izlaist-innodb
Izlaist-BDB
    Aizveriet nevajadzīgos tabulu tipus un nepievienojiet to, ja nepieciešams
         
         
# > RĀDĪT MAINĪGOS, PIEMĒRAM, '%query_cache%';
# > RĀDĪT STATUSU, PIEMĒRAM, 'Qcache%';
Ja Qcache_lowmem_prunes vērtība ir ļoti liela, tas norāda, ka bieži vien ir nepietiekama buferizācija;
Ja Qcache_hits vērtība ir ļoti liela, tas norāda, ka vaicājuma buferis tiek izmantots ļoti bieži, un, ja vērtība ir maza, bet ietekmēs efektivitāti, varat apsvērt iespēju neizmantot vaicājuma buferizāciju.
Ja Qcache_free_blocks vērtība ir ļoti liela, tas norāda, ka buferī ir daudz atkritumu.


##########################################
###### max_allowed_packet      ######
##########################################
Sakaru pakete ir viens SQL paziņojums, kas nosūtīts uz MySQL serveri vai viena rindiņa klientam.
Maksimālā iespējamā pakete, ko var nosūtīt starp MySQL 5.1 serveri un klientu, ir 1 GB.
Kad MySQL klients vai mysqld serveris saņem paketi, kas lielāka par max_allowed_packet baitiem, tiek izdota kļūda "pakete ir pārāk liela" un savienojums tiek slēgts. Dažiem klientiem, ja sakaru pakete ir pārāk liela, vaicājuma laikā var rasties kļūda "Savienojuma zudums ar MySQL serveri".
Gan klientam, gan serverim ir savi max_allowed_packet mainīgie, tāpēc, ja plānojat apstrādāt lielas paketes, šis mainīgais ir jāpievieno gan klientam, gan serverim.
Ja izmantojat mysql klienta programmu, tās max_allowed_packet mainīgais pēc noklusējuma ir 16 MB. Lai iestatītu lielāku vērtību, varat sākt mysql šādā veidā:
mysql> mysql --max_allowed_packet=32M
Tas nosaka informācijas paketes lielumu uz 32 MB.
Servera noklusējuma max_allowed_packet vērtība ir 1 MB. Ja serverim ir jāapstrādā lieli vaicājumi, varat palielināt šo vērtību (piemēram, ja gatavojaties apstrādāt lielas BLOB kolonnas). Piemēram, lai iestatītu to uz 16 MB, serveri var startēt šādi:
mysql> mysqld --max_allowed_packet=16M

Varat arī izmantot opciju failus, lai iestatītu max_allowed_packet. Lai iestatītu šo mainīgo serverim uz 16 MB, pievienojiet lejupsaites saturu opciju failam:
[mysqld]
max_allowed_packet=16M
Ir droši palielināt šī mainīgā vērtību, jo papildu atmiņa tiek piešķirta tikai tad, ja tas ir nepieciešams. Piemēram, mysqld piešķirs vairāk atmiņas tikai tad, ja izdodat garu vaicājumu vai mysqld ir jāatgriež lielas rezultātu rindas. Šī mainīgā mazā noklusējuma vērtība ir piesardzības pasākums, lai noķertu kļūdu paketes starp klientu un serveri un nodrošinātu, ka atmiņas pārpildes neizraisa nejauša lielu pakešu izmantošana.
Ja izmantojat lielas blob vērtības un nepiešķirat mysqld atļauju piekļūt pietiekami daudz atmiņas, lai apstrādātu vaicājumus, jūs arī saskarsieties ar dīvainām problēmām, kas saistītas ar lielām paketēm. Ja jums ir aizdomas, ka tas tā ir, mēģiniet sākt palielināt ulimit -d 256000 mysqld_safe skriptā un restartējiet mysqld.
##########################################
##### Kā atvērt un aizvērt datu bāzes tabulas MySQL #####
##########################################
table_cache, max_connections un max_tmp_tables ietekmē maksimālo failu skaitu, ko serveris tur atvērtu. Ja palielināsiet vienu vai abas šīs vērtības, varat sasniegt operētājsistēmas noteikto ierobežojumu failu deskriptoru skaitam, ko atver katrs process. Tomēr jūs varat palielināt ierobežojumu daudzām sistēmām. Jautājiet savai OS dokumentācijai, lai noskaidrotu, kā to izdarīt, jo ierobežojumu maiņas metodes dažādās sistēmās ievērojami atšķiras.
table_cache, kas saistīti ar max_connections. Piemēram, 200 atvērtiem savienojumiem tabulas buferim jābūt vismaz 200 * n, kur n ir maksimālais tabulu skaits savienojumā.
Atvērto tabulu kešatmiņu var palielināt līdz ne vairāk kā vienai table_cache (64 pēc noklusējuma; To var izdarīt ar mysqld -O table_cache=#选项来改变). Tabula nekad netiek aizvērta, izņemot gadījumus, kad kešatmiņa ir pilna un cits pavediens mēģina atvērt tabulu vai ja izmantojat mysqladmin atsvaidzināšanas vai mysqladmin flush-tables.
Kad tabulas kešatmiņa ir pilna, serveris izmanto šādu procedūru, lai atrastu izmantojamo kešatmiņas ierakstu:
Tabulas, kas pašlaik netiek izmantotas, tiek publicētas vismazāk izmantotās (LRU) secībā.
Ja kešatmiņa ir pilna un nav izlaižamu tabulu, bet ir jāatver jauna tabula, kešatmiņa ir īslaicīgi jāpalielina.
Ja kešatmiņa ir īslaicīgi izvērsta un tabula mainās no aktīvas uz neaktīvu, tā tiek aizvērta un atbrīvota no kešatmiņas.
Atveriet tabulu katrai vienlaicīgai piekļuvei. Tas nozīmē, ka, ja jums ir 2 pavedieni, kas piekļūst vienai un tai pašai tabulai vai piekļūst tabulai divas reizes vienā vaicājumā (ar AS), tabula ir jāatver divas reizes. Jebkuras tabulas pirmā atvēršana veido 2 failu deskriptorus; Katrs tabulas papildu lietojums veido tikai vienu faila deskriptoru. Pirmajai atvēršanai faila indeksēšanai tiek izmantots papildu deskriptors; Šis deskriptors ir koplietots visos pavedienos




Iepriekšējo:Izprotiet direktoriju /etc/init.d un /etc/rc.local skriptus Linux sistēmās
Nākamo:Kā apstiprināt, ka MySQL pakalpojums ir sākts Linux CentOS
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com