自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Linux cron執(zhí)行MySQL失敗的問題解決方案

數(shù)據(jù)庫 MySQL
本文我們主要介紹了一個(gè)Linux cron執(zhí)行MySQL失敗的實(shí)例的問題解決方案,通過這個(gè)實(shí)例讓我們一起來了解一下這類問題的解決吧。

Linux cron執(zhí)行MySQL失敗的實(shí)例的問題解決方案是本文我們主要要介紹的,接下來就讓我們一起來了解一下這部分內(nèi)容吧。

1.首先,為了統(tǒng)計(jì)服務(wù)器平均在線人數(shù),于是寫了個(gè)SHELL腳本,每天7點(diǎn)-0點(diǎn)之間每小時(shí)執(zhí)行該命令,獲得當(dāng)前在線用戶,以便統(tǒng)計(jì)最高在線用戶,以及平均在線用戶.

SHELL腳本如下:

  1. time08_23.sh  
  2. -----------------------------------------------------------------------------------  
  3.  
  4. #!/bin/bash  
  5. # crontab -e 57 7-22 * * * /home/nemo/crontab/time08_23.bash  
  6. DB_USER="root" 
  7. DB_PASS="***" 
  8. DB_HOST="localhost" 
  9. DB_PORT="3306" 
  10. # Others vars  
  11. BIN_DIR="/usr/bin" 
  12. # TODO  
  13. # 獲得8080端口  
  14. THETIME=`netstat -ant | grep 8080 | wc -l`  
  15. # 獲得當(dāng)前小時(shí)  
  16. THEHOUR=`date +%H`  
  17.  
  18. # 更新當(dāng)前小時(shí)的現(xiàn)在人數(shù)  
  19. $BIN_DIR/mysql -u$DB_USER -p$DB_PASS -h$DB_HOST -P$DB_PORT << EOF 
  20. use wapgame4sky2;  
  21. UPDATE MgrSky SET time$THEHOUR = $THETIME WHERE TO_DAYS(date) = TO_DAYS(now());  
  22. EOF 

 

2.以上的SHELL腳本,在本地以及遠(yuǎn)程服務(wù)器上,通過 source time08_23.sh 以及 ./time08_23.sh 都能正確運(yùn)行,數(shù)據(jù)無誤,一切正常。

3.但以上腳本使用cron任務(wù)調(diào)度器執(zhí)行數(shù)據(jù)庫卻沒有數(shù)據(jù),這樣我一度認(rèn)為是任務(wù)調(diào)度器配置錯(cuò)誤,或者權(quán)限問題,但查詢錯(cuò)誤日志獲得以下信息:

  1. Character set 'ascii' is not a compiled character set and is not specified in the '/usr/local/share/mysql/charsets/Index.xml'   
  2. <img src='http://hi.csdn.net/attachment/201108/25/0_1314264038vkzR.gif' /> 

 

4.分析一下便清楚是編碼格式的問題.于是逐步查詢問題所在.

  1. show variables like '%char%';  
  2. +--------------------------+----------------------------+  
  3. | Variable_name            | Value                      |  
  4. +--------------------------+----------------------------+  
  5. | character_set_client     | utf8                       |  
  6. | character_set_connection | utf8                       |  
  7. | character_set_database   | utf8                       |  
  8. | character_set_filesystem | binary                     |  
  9. | character_set_results    | utf8                       |  
  10. | character_set_server     | latin1                     |  
  11. | character_set_system     | utf8                       |  
  12. | character_sets_dir       | /opt/mysql/share/charsets/ |  
  13. +--------------------------+----------------------------+ 

 

查看本地mysql編碼集設(shè)置:

  1. +--------------------------+----------------------------+  
  2. | Variable_name            | Value                      |  
  3. +--------------------------+----------------------------+  
  4. | character_set_client     | latin1                     |  
  5. | character_set_connection | latin1                     |  
  6. | character_set_database   | latin1                     |  
  7. | character_set_filesystem | binary                     |  
  8. | character_set_results    | latin1                     |  
  9. | character_set_server     | latin1                     |  
  10. | character_set_system     | utf8                       |  
  11. | character_sets_dir       | /usr/share/mysql/charsets/ |  
  12. +--------------------------+----------------------------+ 

 

然后,查詢mysql官網(wǎng),對(duì)于該問題的解決辦法如下:http://dev.mysql.com/doc/refman/5.0/en/charset-configuration.html

  1. [client]  
  2. character-sets-dir=/usr/local/mysql/share/mysql/charsets  
  3. [client]  
  4. character-sets-dir="C:/Program Files/MySQL/MySQL Server 5.0/share/charsets" 
  5.  
  6. Character set 'charset_name' is not a compiled character set and is not  
  7. specified in the '/usr/share/mysql/charsets/Index.xml' file  
  8. [client]  
  9. default-character-set=charset_name 

 

問題應(yīng)該算是明確了.按照我的理解,linux cron 在編譯shell腳本的時(shí)候,應(yīng)該采用的是latin1字符集.而這里卻使用UTF-8,導(dǎo)致編碼不支持.遂聯(lián)系那邊運(yùn)維,取得了my.cnf,以及mysql的root權(quán)限.

5.修改vi /etc/my.cnf,在[client]下添加,default-character-set=latin1,在[mysqld]下添加,default-character-set=latin1,重啟mysql。

開啟mysql命令:

  1. /usr/local/mysql/bin   
  2. ./mysqld_safe &   
  3. 關(guān)閉mysql服務(wù)的命令是:   
  4. ./mysqladmin -u root -p shutdown 

 

按照以上的步驟操作,問題就解決了。

關(guān)于Linux cron執(zhí)行MySQL失敗的問題解決方案的相關(guān)知識(shí)就介紹到這里了,希望本次的介紹能夠?qū)δ兴斋@!

【編輯推薦】

  1. MySQL死鎖問題實(shí)例分析及解決方法
  2. MySQL數(shù)據(jù)庫丟失root密碼后該如何補(bǔ)救?
  3. Debian+vsftpd+MySQL實(shí)現(xiàn)虛擬用戶zz詳解
  4. MySQL支撐百萬級(jí)流量高并發(fā)的網(wǎng)站部署詳解
  5. MySQL數(shù)據(jù)庫TIMESTAMP設(shè)置默認(rèn)值的幾個(gè)應(yīng)用實(shí)例
責(zé)任編輯:趙鵬 來源: CSDN博客
相關(guān)推薦

2010-03-30 16:04:34

Linux Nginx

2011-08-10 13:46:36

Navicat MySMySQL

2012-05-09 10:08:41

跨機(jī)房

2020-05-06 14:14:50

Linux依賴軟件

2010-09-27 13:14:42

JVM內(nèi)存限制

2009-10-28 11:27:49

linux服務(wù)器安全

2010-10-08 13:09:38

JavaScript數(shù)

2010-02-06 14:54:11

C++指針漂移

2010-05-31 12:53:56

Nagios apac

2009-09-03 16:09:48

.net回車符

2010-05-04 11:30:29

Oracle漢字長度

2010-04-28 19:24:17

Hp unix

2011-03-23 16:38:28

LAMP

2010-04-06 09:33:37

CentOS系統(tǒng)

2010-08-04 10:20:30

Flex組件開發(fā)

2010-09-07 09:08:03

DIV彈出層

2010-10-09 12:58:59

JS腳本兼容

2021-01-13 10:18:29

SocketNetty粘包

2010-08-26 12:59:29

marginCSS

2010-02-23 17:49:56

WCF傳輸大數(shù)據(jù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)