欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL常見(jiàn)故障與優(yōu)化方式

 更新時(shí)間:2024年04月03日 09:33:27   作者:敢敢936  
這篇文章主要介紹了MySQL常見(jiàn)故障與優(yōu)化方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教<BR>

一、mysql單實(shí)例常見(jiàn)故障

1.故障一

ERROR 2002 (HY000): Can't connect to local MySQL server through socket/data/mysql/mysql.sock'(2)

問(wèn)題分析:以上這種情況一般都是數(shù)據(jù)庫(kù)未啟動(dòng)或者數(shù)據(jù)庫(kù)端口被防火墻攔截導(dǎo)致。

解決方法:?jiǎn)?dòng)數(shù)據(jù)庫(kù)或者防火墻開(kāi)放數(shù)據(jù)庫(kù)監(jiān)聽(tīng)端口。

2.故障二

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

問(wèn)題分析:密碼不正確或者沒(méi)有權(quán)限訪問(wèn)。

解決方法:

  • 修改my.cnf主配置文件,在[mysqld]下添加 skip-grant-tables
  • update更新user表authentication_string字段
  • 重新授權(quán)

3.故障三

在使用遠(yuǎn)程連接數(shù)據(jù)庫(kù)時(shí)偶爾會(huì)發(fā)生遠(yuǎn)程連接數(shù)據(jù)庫(kù)很慢的問(wèn)題。

問(wèn)題分析:

  • 如果 MySQL 主機(jī)查詢 DNS 很慢或是有很多客戶端主機(jī)時(shí)會(huì)導(dǎo)致連接很慢.
  • 由于開(kāi)發(fā)機(jī)器是不能夠連接外網(wǎng)的,在進(jìn)行 MySQL 連接時(shí),DNS 解析是不可能完成的, 從而也就明白了為什么連接那么慢了。

解決方法:

  • 修改 my.cnf 主配置文件,在[mysqld]下添加 skip-name-resolve,重啟數(shù)據(jù)庫(kù)可以解決。
  • 注意在以后授權(quán)里面不能再使用主機(jī)名授權(quán)。

4.故障四

Can't open file: 'xxx_forums.MYI'. (errno: 145)

問(wèn)題分析:

服務(wù)器非正常關(guān)機(jī),數(shù)據(jù)庫(kù)所在空間已滿,或一些其它未知的原因?qū)?shù)據(jù)庫(kù)表造成了損壞因拷貝數(shù)據(jù)庫(kù)導(dǎo)致文件的屬組發(fā)生變化

解決方法:

修復(fù)數(shù)據(jù)表 (myisamchk、phpMyAdmin)修改文件的屬組

5.故障五

ERROR 1129 (HY000): Host 'xxx.xxx.xxx.xxx' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'

問(wèn)題分析:

超出最大連接錯(cuò)誤數(shù)量限制

解決方法:

清除緩存(flush-hosts關(guān)鍵字)修改mysql配置文件 (max_connect_errors=1000)

6.故障六

Too many connections

問(wèn)題分析:

連接數(shù)超出MySQL的最大連接限制

解決方法:

修改MySQL配置文件 (max_connections=2000)臨時(shí)修改參數(shù):set GLOBAL max_connections=2000;

7.故障七

Warning:World-writable config file '/etc/my.cnf' is ignoredERROR! MySQL is running but PlD file could not be found

問(wèn)題分析:

MySQL的配置文件/etc/my.cnf 權(quán)限問(wèn)題

解決方法:

chmod 644 /etc/my.cnf

8.故障八

InnoDB:Error: page 14178 log sequence number 29455369832InnoDB: is in the future! Current system log sequence number 29455369832

問(wèn)題分析:

innodb數(shù)據(jù)文件損壞

解決方法:

修改 my.cnf 配置文件 (innodb_force_recovery=4)啟動(dòng)數(shù)據(jù)庫(kù)后備份數(shù)據(jù)文件利用備份文件恢復(fù)數(shù)據(jù)

二、主從環(huán)境常見(jiàn)故障

1.故障一

從庫(kù)的Slave_lO_Running為NO

The slave I/O thread stops because master and slave have equal MySQL serverids; these ids must be different for replication to work (or the --replicate-same-server-idoption must be used on slave but this does not always make sense;please check the manual before using it).

問(wèn)題分析:

主庫(kù)和從庫(kù)的server-id值一樣

解決方法:

修改從庫(kù)的 server-id 的值,修改為和主庫(kù)不一樣重新啟動(dòng)數(shù)據(jù)庫(kù)并再次同步

2. 故障二

從庫(kù)的Slave_lO_Running為NO

問(wèn)題分析:

主鍵沖突或者主庫(kù)刪除或更新數(shù)據(jù),從庫(kù)內(nèi)找不到記錄,數(shù)據(jù)被修改導(dǎo)致

解決方法:

方法一 

mysql> stop slave;

mysqI> set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;

mysql> start slave;

方法二

set global read_only=true;

3. 故障三

Error initializing relay log position: I/O error reading the header from the binary log

問(wèn)題分析:

從庫(kù)的中繼日志 relay-bin 損壞

解決方法:

手工修復(fù),重新找到同步的 binlog 和 pos 點(diǎn),然后重新同步即可

mysqI> CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.xxx',MASTER_LOG_POS=xxx;

三、mysql優(yōu)化

可以從不同角度進(jìn)行優(yōu)化:

  • 硬件優(yōu)化
  • MySQL配置文件優(yōu)化
  • SQL優(yōu)化
  • MySQL架構(gòu)優(yōu)化

1.硬件優(yōu)化

cpu:64位,高主頻,高緩存,高并行處理能力

內(nèi)存:大內(nèi)存,主頻高,盡量不要使用SWAP

硬盤:15000轉(zhuǎn),RAID5 ,RAID10   ,SSD

網(wǎng)絡(luò):標(biāo)配的千兆網(wǎng)卡,10G網(wǎng)卡,bond0,MySQL服務(wù)器盡可能和使用它的web服務(wù)器在同一局域網(wǎng)內(nèi),盡量避免諸如防火墻策略等不必要的開(kāi)銷

2.查詢優(yōu)化

1.優(yōu)化建表結(jié)構(gòu)

2.建立合適的索引

3.查詢時(shí)盡量減少邏輯運(yùn)算

4.減少不當(dāng)?shù)牟樵冋Z(yǔ)句,不要查詢應(yīng)用中不需要的列

5.減少事務(wù)包大小

6.將多個(gè)小的查詢適當(dāng)合并成一個(gè)大的查詢,減少每次建立/關(guān)閉查詢的開(kāi)銷

7.將某些過(guò)于復(fù)雜的查詢拆解成多個(gè)小查詢,和上一條正好相反

8.建立和優(yōu)化存儲(chǔ)過(guò)程來(lái)代替大量的外部程序交互

3.操作系統(tǒng)的優(yōu)化

網(wǎng)卡bond技術(shù)

設(shè)置TCP連接數(shù)量限制,優(yōu)化系統(tǒng)打開(kāi)文件的最大限制

使用64位操作系統(tǒng),64位系統(tǒng)可以分給單個(gè)進(jìn)程更多內(nèi)存,計(jì)算更快

禁止不必要啟動(dòng)的服務(wù)

4.my.cnf內(nèi)參數(shù)的優(yōu)化

4.1連接參數(shù):

  • max_connections:限制并發(fā)連接數(shù),根據(jù)應(yīng)用需求適當(dāng)調(diào)整
  • thread_cache_size:控制線程緩存的大小,以減少創(chuàng)建和銷毀線程的開(kāi)銷

4.2緩存池設(shè)置:

  • innodb_buffer_pool_size:設(shè)置lnnoDB緩沖池的大小,通常建議設(shè)置為物理內(nèi)存的50%-70%
  • key_buffer_size:對(duì)于MyISAM表,這個(gè)參數(shù)表示鍵緩存的大小

4.3日志設(shè)置:

  • log_error:指定錯(cuò)誤日志文件的路徑
  • slow_query_log:?jiǎn)?dòng)慢查詢?nèi)罩?,幫助識(shí)別需要優(yōu)化的查詢
  • general_log:啟動(dòng)通用查詢?nèi)罩荆糜谡{(diào)試目的

4.4lnnoDB參數(shù)設(shè)置:

  • lnnodb_log_file_size:設(shè)置lnnoDB事務(wù)日志文件的大小
  • innodb_flush_log_at_trx_commit:控制事務(wù)提交時(shí)日志刷新的行為
  • innodb_file_per_table:對(duì)于innoDB表,啟動(dòng)獨(dú)立表空間

4.5查詢緩存和臨時(shí)表位置:

  • query_cache_type和query_cache_size:如果使用查詢緩存,可以設(shè)置緩存的類型和大小
  • tmp_table_size和max_heap_table_size:控制臨時(shí)表的內(nèi)存和磁盤使用

4.6其他參數(shù):

  • table_open_cache:設(shè)置打開(kāi)表的緩存數(shù)量,以提高性能
  • innodb_io_capacity:設(shè)置lnnoDB的I/O容量,適應(yīng)存儲(chǔ)設(shè)備的性能
  • skip-name-reslove:禁止使用使用DNS查找,只能使用ip地址

4.7安全參數(shù):

  • secure_fiel_priv:限制導(dǎo)入/導(dǎo)出數(shù)據(jù)的目錄
  • skip_networking:禁止網(wǎng)絡(luò)連接,只允許本地連接

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論