`

linux mysql tomcat

 
阅读更多
grep "export LC_ALL=zh_CN.UTF-8" /usr/local/tomcat/bin/startup.sh




tomcat支持中文要在tomcat启动脚本中加入export LC_ALL=zh_CN.UTF-8

比如startup.sh中加入



-----------------------------------------------------------------
还有一种情况控制台打印信息中文不乱码,程序插到数据库中乱码。怀疑是mysql问题。解决办法:

修改 /etc/my.cnf 由
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid


改成:
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
init-connect = SET NAMES utf8
character-set-server = utf8
collation-server = utf8_general_ci
lower_case_table_names=1

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
[client]
port            = 3306
default-character-set = utf8



然后再修改 tomcat  server.xml  数据源配置 由原来:
                            url="jdbc:mysql://127.0.0.1:3306/xiaoshuocity"


改成:
                            url="jdbc:mysql://127.0.0.1:3306/xiaoshuocity?useUnicode=true&characterEncoding=utf8&autoReconnect=true&autoReconnectForPools=true"


重启mysql 重启tomcat

问题就解决了。


    出现异常”The last packet sent successfully to the server was 0 milliseconds ago.“的大部分原因是由于数据库回收了连接,而系统的缓冲池不知道,继续使用被回收的连接所致的。

           以mysql为例:

           第一种解决办法,就是将mysql回收空闲连接的时间变长,mysql默认回收时间是8小时,可以在mysql目录下的my.ini中增加下面配置,将时间改为1天。

           单位是秒,最大好像是24天:

          [mysqld]

          wait_timeout=86400

           第二种解决办法,可以通过配置,让缓冲池去测试连接是否被回收,如果被回收,则不继续使用,以dbcp为例:

          #SQL查询,用来验证从连接池取出的连接
          dbcp.validationQuery=SELECT 1
          #指明连接是否被空闲连接回收器(如果有)进行检验,如果检测失败,则连接将被从池中去除
          dbcp.testWhileIdle=true
          #在空闲连接回收器线程运行期间休眠的时间值,以毫秒为单位,一般比minEvictableIdleTimeMillis小
          dbcp.timeBetweenEvictionRunsMillis=300000
          #在每次空闲连接回收器线程(如果有)运行时检查的连接数量,最好和maxActive一致
         dbcp.numTestsPerEvictionRun=50
          #连接池中连接,在时间段内一直空闲,被逐出连接池的时间(1000*60*60),以毫秒为单位
          dbcp.minEvictableIdleTimeMillis=3600000
  • 大小: 5.2 KB
  • 大小: 41.2 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics