分享一下Mysql常見的幾個錯誤問題及解決方案_Mysql

來源:互聯網
上載者:User

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不反解成網域名稱),這樣可以加快資料庫的反應時間。
 
修改設定檔添加並需要重啟:

[mysqld]
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不能比目標資料庫的配置數值大,否則可能出錯。
 
首先確定目標庫的參數值


mysql> show variables like 'max_allowed_packet';
+--------------------+---------+
| Variable_name | Value |
+--------------------+---------+
| max_allowed_packet | 1048576 |
+--------------------+---------+
1 row in set (0.00 sec)

mysql> show variables like 'net_buffer_length';

+-------------------+-------+
| Variable_name | Value |
+-------------------+-------+
| net_buffer_length | 16384 |
+-------------------+-------+
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現在幾十秒就可以完成了。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.