Mysql常見的幾個錯誤問題及解決方法:

 

Mysql常見的幾個錯誤問題及解決方法:
 
 
1.問題: mysql DNS反解:skip-name-resolve
 
錯誤日誌有類似警告:

點擊(此處)摺疊或打開

  1. 120119 16:26:04 [Warning] IP address '192.168.1.10' could not be resolved: Name or service not known
  2. 120119 16:26:04 [Warning] IP address '192.168.1.14' could not be resolved: Name or service not known
     
  3. 120119 16:26:04 [Warning] IP address '192.168.1.17' could not be resolved: Name or service not known

 
通過show processlist發現大量類似如下的連接:


點擊(此處)摺疊或打開

  1. |592|unauthenticated user|192.168.1.10:35320|NULL|Connect| |login|NULL|
  2. |593|unauthenticated user|192.168.1.14:35321|NULL|Connect| |login|NULL|
     
  3. |594|unauthenticated user|192.168.1.17:35322|NULL|Connect| |login|NULL|

 
 
skip-name-resolve 參數的作用:不再進行反解析(ip不反解成域名),這樣可以加快數據庫的反應時間。
 
修改配置文件添加並需要重啓:

點擊(此處)摺疊或打開

  1. [mysqld]
  2. skip-name-resolve
 
2.問題錯誤日誌:Error: Can't create a new thread (errno 12)

數據庫服務器問題,數據庫操作無法創建新線程。一般是有以下3個方面的原因:
1)、MySQL 線程開得太多。
2)、服務器系統內存溢出。
3)、環境軟件損壞或系統損壞。
 
【問題解決】


點擊(此處)摺疊或打開

  1. 1)進入 phpmyadmin 的 mysql 數據庫中的 user 表,對數據庫的用戶進行編輯,修改 max_connections 的值。適當的改小一點。
  2. 2)聯繫服務器管理員檢查服務器的內存和系統是否正常,如果服務器內存緊張,請檢查一下哪些進程消耗了服務器的內存,同時考慮是否增加服務器的內存來提高整個系統的負載能力。
     
  3. 3)mysql版本更改爲穩定版本
     
  4. 4)優化網站程序的sql等等

 
 
 
3.  操作報錯:ERROR 1010 (HY000): Error dropping database


點擊(此處)摺疊或打開

  1. mysql> drop database xjtrace;
  2. ERROR 1010 (HY000): Error dropping database (can't rmdir './xjtrace/

 

在做數據庫刪除時出現這種提示,其原因是在database下面含有自己放進去的文件,譬如*.txt文件或*.sql文件等,只要進去把這個文件刪了在執行。


點擊(此處)摺疊或打開

  1. mysql>drop database xjtrace;
  2. Query OK, 0 rows affected (0.00 sec)

果斷刪除即可!!
 
4.導出數據很快,導入到新庫時卻很慢:
 
MySQL導出的SQL語句在導入時有可能會非常非常慢,經歷過導入僅400萬條記錄,竟用了近2個小時。在導出時合理使用幾個參數,可以大大加快導入的速度。
 
-e 使用包括幾個VALUES列表的多行INSERT語法;
--max_allowed_packet=XXX 客戶端/服務器之間通信的緩存區的最大大小;
--net_buffer_length=XXX TCP/IP和套接字通信緩衝區大小,創建長度達net_buffer_length的行
注意:max_allowed_packet和net_buffer_length不能比目標數據庫的配置數值大,否則可能出錯。
 
首先確定目標庫的參數值
 

點擊(此處)摺疊或打開

  1. mysql> show variables like 'max_allowed_packet';
  2. +--------------------+---------+
     
  3. | Variable_name | Value |
     
  4. +--------------------+---------+
     
  5. | max_allowed_packet | 1048576 |
     
  6. +--------------------+---------+
     
  7. 1 row in set (0.00 sec)
     

  8.  
  9. mysql> show variables like 'net_buffer_length';
     

  10.  
  11. +-------------------+-------+
     
  12. | Variable_name | Value |
     
  13. +-------------------+-------+
     
  14. | net_buffer_length | 16384 |
     
  15. +-------------------+-------+
     
  16. 1 row in set (0.00 sec)

 

根據參數值書寫mysqldump命令,如:

mysql>mysqldump -uroot -p   數據庫名 -e --max_allowed_packet=1048576 -net_buffer_length=16384 > SQL文件
 
例如:

點擊(此處)摺疊或打開

  1. mysql> mysqldump -uroot -p xjtrace -e --max_allowed_packet=1048576 --net_buffer_length=16384 >xjtrace_data_`date +%F`.sql

 
 
之前2小時才能導入的sql現在幾十秒就可以完成了。
 
 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章