日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線(xiàn)溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
Linux cron執(zhí)行MySQL失敗的問(wèn)題解決方案

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

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

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ù)器上,通過(guò) source time08_23.sh 以及 ./time08_23.sh 都能正確運(yùn)行,數(shù)據(jù)無(wú)誤,一切正常。

3.但以上腳本使用cron任務(wù)調(diào)度器執(zhí)行數(shù)據(jù)庫(kù)卻沒(méi)有數(shù)據(jù),這樣我一度認(rèn)為是任務(wù)調(diào)度器配置錯(cuò)誤,或者權(quán)限問(wèn)題,但查詢(xú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.  

4.分析一下便清楚是編碼格式的問(wèn)題.于是逐步查詢(xún)問(wèn)題所在.

 
 
 
  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. +--------------------------+----------------------------+ 

然后,查詢(xún)mysql官網(wǎng),對(duì)于該問(wèn)題的解決辦法如下: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 

問(wèn)題應(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。

開(kāi)啟mysql命令:

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

按照以上的步驟操作,問(wèn)題就解決了。

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

【編輯推薦】

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

分享題目:Linux cron執(zhí)行MySQL失敗的問(wèn)題解決方案
URL網(wǎng)址:http://m.5511xx.com/article/dpjidoc.html