1. Tomcat启动缓慢,长达282652+ms或者更长(Creation of SecureRandom instance for session ID generation )
原因: /dev/random会根据噪音产生随机数,如果噪音不够它就会阻塞,Linux是通过I/O,键盘终端、内存使用量、CPU利用率等方式来收集噪音的,如果噪音不够生成随机数的时候就会被阻塞。
解决方法一:Tocmat的Session ID是通过SHA1算法计算得到的,计算Session ID的时候必须有一个密钥。为了提高安全性Tomcat在启动的时候回通过随机生成一个密钥。
在 http://wiki.apache.org/tomcat/HowTo/FasterStartUp(Entropy Source部分)有一段解释。stackoverflow上面也有一大批这方面的说明,所以这里就不再多做介绍。明白了问题的原因解决起来就非常简单了——替换/dev/random为/dev/unrandom,用伪随机函数生成器(/dev/urandom)来替代随机函数生成器(/dev/random)。
1.vim /usr/local/services/jdk1.8.0_91/jre/lib/security/java.security
2.用/dev/urandom替换/dev/random
3.securerandom.source=file:/dev/urandom
解决方法二:增大/dev/random的熵池。问题的原因是由于熵池不够大,所以增大它是最彻底的方法。
通过cat/proc/sys/kernel/random/entropy_avail我们可以查看现在的熵池大小;
● yum install rngd-tools 安装rngd服务(熵服务)
● systemctl start rngd 启动服务
● systemctl daemon-reload 重新载入服务
● systemctl restart rngd 重启服务
经过上面的修改,我们再观察/proc/sys/kernel/random/entropy_avail基本上在3000左右。我们可以测试一下随机数的生成速度:
- watch -n 1 cat /proc/sys/kernel/random/entropy_avail观察这个值
- 新打开一个shell,用dd命令测试随机数。
dd if=/dev/random of=random.dat count=40960
[root@localhost bin]# dd if=/dev/random of=random.dat count=40960
记录了0+40960 的读入
记录了6004+1 的写出
3074362字节(3.1 MB)已复制,5.01017 秒,614 kB/秒
5秒产生了40960个随机数,/proc/sys/kernel/random/entropy_avail会有剧烈的变化,所有随机数产生之后它又会保持在3000左右。
对于以上问题个人建议使用解决方法二,(参考文章
)
2. Mysql安装:
-
错误:FATAL ERROR: please install the following Perl modules before executing ./scripts/mysql_install_db:Data::Dumper
原因:初始化mysql数据库提示缺少Data:dumper模块解决方法
解决方法 :安装autoconf库
命令:yum -y install autoconf //安装时会安装Data:Dumper模块
安装完成:
yum install -y libaio //安装后在初始化就OK了 然后在重新执行否在会出现如下错误:
-
错误: 登录到mysql数据库(首次登陆若未设置密码是无需输入的)
原因:因为系统默认会查找/usr/bin下的命令,由于mysql没有在这个目录下,所以出现not found。因此需要做一个软连接到/usr/bin目录下。
解决方法:
执行命令: ln -s /usr/local/mysql/bin/mysql /usr/bin
注意:其中/usr/local/mysql 为:mysql的安装路径
-
错误:执行update语句时出现ERROR 1062 (23000): Duplicate entry '%-root' for key 'PRIMARY'
原因:有多个ROOT用户纪录在USER表中了
解决方案:
需要 select host from user where user = 'root';
查看一下host是否已经有了%这个值,有了就可以了
很显然host已经有了%这个值,所以直接运行命令:
MySQL> flush privileges;