遇到的麻烦:
1.创建数据库以后创建用户名和密码,正确赋权限以后,mysql客户端可以连上,java程序连不上
解决:自己写了段java代码,发现无法执行。
java -cp "./;mysql-java-connector-5.1.7.jar" Test不好用,原因是windows下分隔符是;linux下是:
java -cp "./:mysql-java-connector-5.1.7.jar" Test这样才好用
然后发现连不上数据库,没有route;想起来还有iptables,把防火墙规则里面加入允许对3306的访问,问题解决。
2.mysql要做一个正确的设置,修改/etc/my.cnf
[mysqld]
lower_case_table_names=1
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=0
bind-address=127.0.0.1
port=3306
default-character-set=utf8
default-storage-engine=INNODB
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
这样mysql在localhost监听,保证了安全性。lower_case_table_names=1很重要,否则的话大小写的问题很让人头疼。
修改完事以后/etc/init.d/mysqld restart
然后从新执行初始化的sql;source /home/flashing/all.sql
3.启动tomcat/jboss-web,使用startup.sh脚本;但是shutdown.sh脚本不好用。tomcat需要监听8005端口用来监听关闭的命令,在防火墙里面打开8005端口,一切搞定。
4.tomcat只能监听在8080端口(非root用户不能监听1024以下端口),没办法只能做一条端口映射数据把80端口“乾坤大挪移”到8080上:
*nat
:PREROUTING ACCEPT [272:33320]
:POSTROUTING ACCEPT [101:7215]
:OUTPUT ACCEPT [101:7215]
-A PREROUTING -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080
COMMIT
至此一切搞定,总算能跑起来了。话说很多东西我觉得debian还是比centos要方便啊。
下面要做的是让jbossweb/tomcat作为服务启动。
首先需要安装jsvc,当然如果你不用jsvc也可以,自己写段脚本一样可以;问题是jsvc可以解决不能直接在80监听的问题,这样可以取消iptables的端口映射,所以还是用jsvc。
在centos下,最好在/usr/java下面加入两个soft link指向jdk目录,分别为default和latest。
首先进入jbossweb或者tomcat的bin目录,tar xzfv jsvc.tar.gz,然后
cd jsvc-src
chmod 775 ./configure
./configure
然后我把编译完的jsvc文件拷贝到bin目录下了,再把support/Tomcat5.sh拷贝为/etc/init.d/jbossweb
用nano打开然后进行修改(我一直不太会用vi,只好用nano凑合了),调整各个目录指向正确的位置。
此时万事俱备,你也可以把tomcat server.xml的端口改为80了,下面就是调整为服务。
首先保证/etc/init.d/jbossweb的头三行为:
#!/bin/sh
# chkconfig: 2345 10 90
# description: Starts and Stops the Tomcat daemon.
主要是第二行很重要!没有的话chkconfig会报错。
然后:
chmod a+x /etc/init.d/jbossweb
chkconfig --add /etc/init.d/jbossweb
chkconfig --list此时应该可以看到这个服务了。
/etc/init.d/jbossweb start就可以启动服务了。