時間:2019-09-16 14:31:17 作者:無名 瀏覽量:28
大家好,小編是個電腦軟件控,在接入一個途徑的時分,由于對方不給ROOT權限,也沒有MYSQL的最高權限,MYSQL的裝備這些現已不受掌控.所以呈現了一下問題.

1.首要,為了計算服務器均勻在線人數,所以寫了個SHELL腳本,每天7點-0點之間每小時履行該指令,取得當時在線用戶,以便計算最高在線用戶,以及均勻在線用戶.
SHELL腳本如下:
time08_23.sh
------------------------------------------------------------------------------------------------------------------------------------
#!/bin/bash
# crontab -e 57 7-22 * * * /home/nemo/crontab/time08_23.bash
DB_USER=\"root\"
DB_PASS=\"***\"
DB_HOST=\"localhost\"
DB_PORT=\"3306\"
# Others vars
BIN_DIR=\"/usr/bin\"
# TODO
# 取得8080端口
THETIME=`netstat -ant / grep 8080 / wc -l`
# 取得當時小時
THEHOUR=`date +%H`
# 更新當時小時的現在人數
$BIN_DIR/mysql -u$DB_USER -p$DB_PASS -h$DB_HOST -P$DB_PORT << EOF
use wapgame4sky2;
UPDATE MgrSky SET time$THEHOUR = $THETIME WHERE TO_DAYS(date) = TO_DAYS(now());
EOF
------------------------------------------------------------------------------------------------------------------------------------

Linux cron執行mysql失敗(編碼問題)教程圖2
2.以上的SHELL腳本,在本地以及遠程服務器上,通過 source time08_23.sh 以及 ./time08_23.sh 都能正確運轉,數據無誤,一切正常
3.但以上腳本運用cron使命調度器履行數據庫卻沒有數據,這樣我一度認為是使命調度器裝備過錯,或許權限問題,但查詢過錯日志取得以下信息:
Character set \'ascii\' is not a compiled character set and is not specified in the \'/usr/local/share/mysql/charsets/Index.xml\'
4.剖析一下便清楚是編碼格局的問題.所以逐步查詢問題所在.
4.1檢查當時mysql編碼集設置:
然后,在shell中參加:
set names latin1;
修正腳本文件編碼格局;
修正linux體系默認編碼集;
等等等等計劃都測驗過了,都失利,cron履行該腳本任然報該過錯.
相同的腳本文件.為什么source 和 ./都履行正常,運用cron履行卻呈現編碼問題???這個問題,我問了2個linux群,居然沒有一個人能幫忙解決(或許他們底子就不愿意答理這樣的小問題)
show variables like \'%char%\';
+--------------------------+----------------------------+
/ Variable_name / Value /
+--------------------------+----------------------------+
/ character_set_client / utf8 /
/ character_set_connection / utf8 /
/ character_set_database / utf8 /
/ character_set_filesystem / binary /
/ character_set_results / utf8 /
/ character_set_server / latin1 /
/ character_set_system / utf8 /
/ character_sets_dir / /opt/mysql/share/charsets/ /
+--------------------------+----------------------------+
檢查本地mysql編碼集設置: