时间: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编码集设置: