redhat linux下配置JSP+mysql网站记录

          近期在redhat linux服务器下配置一个JSP网站,由于是第一次在linux上布署网站,遇到诸多问题,还好过五关斩六将,网站终于成功运行。遇到的一些问题和相关的解决方法记录如下。

         1:mysql的配置文件问题。

          服务器上的mysql版本为5.5.13,配置文件在/usr/share/mysql下,用find.*cnf查看该目录下的配置文件可发现有5个.cnf文件,可根据自己机器的需求选择其中一个配置文件 复制到/etc/下(如果/etc/目录下没的my.cnf文件),并重命名为my.cnf,如果服务器的机器内存大于1G,可以复制my-huge.cnf文件,命令为"cp /usr/share/mysql/my-huge.cnf  /etc/my.cnf"。这样就配置好了mysql的配置文件,如果不这样做,那么修改msyql的一些配置将无法起作用。

         2:网站中的中文乱码问题。

         这个问题纠结了好久,中文乱码与jsp页面,数据库的编码等都存在联系。在JSP页面中设置字符编码 gb2312,在tomcat服务器的server.xml配置文件中,在<Connctor  />元素的最后加上URIEncoding="GBK"。最关键点在于mysql数据的字符编码问题。在安装mysql时默认的字符编码为 lation1,登录到mysql时可以用如下命令查看数据库的字符编码:show variables like '%character%';

        mysql对字符编码细分到4 个层次,分别 为服务器,数据库,表,连接,为了完整的解决中文乱码问题,可以将这4个字符编码都设置为gbk,方法是修改mysql的配置文件.

打开/etc/my.cnf文件,在[client]下加上default_character_set=gbk;在[mysqld]下加上default_character_set=gbk;在[mysqld]下加入character_set_server=gbk;(这里有一个问题,原先在[mysqld]下加入的是default-character-set=gbk,结果在重启mysql时出现Starting MySQL............The server quit without updating PID file (/var/lib/mysql/XXX.pid). [失败]错误,这时可以到查看/var/lib/mysql/XXX.errory文件,可以发现[ERROR] /usr/sbin/mysqld: unknown variable 'default-character-set=utf8',应该是这个版 的mysqld不支持这个名称)。

        更改配置文件后中,重启msyql,再查看字符编码,应该都已经设置为了gbk,此时中文乱码问题应该已经解决。进一步可设置所使用的数据库的编码,可用命令"show create database 数据库名查看创建数据库时的编码,如果为latin1 可用以下命令"alter database 数据库名 character set gbk"修改字符集为gbk;可以用命令"show create table 表名查看相关表的字符编码设置,如为 latin1,可用以下命令"alter table 表名 character set GBK"修改编码;最后是修改表中相关字符的字符编码问题,如:“alter table  表名  modify 字段名 字段类型 character set gbk;”,如果表中已经有数据,可能修改失败,这时可先删除表中数据:truncate table 表名;再进行修改操作。

        经过一系列修改后,就应该不存在中文乱码问题了。

         3:mysql的登录问题。( rpm安装mysql方式下)

        如果root密码忘记了或不小心更改(因不小心操作),可用如下方法进行修复:在/etc/init.d/mysql文件283(大概) 行$binddir/mysqld_safe 后紧跟着加上 --skip-grant-tables ,再重启msyql,可以直接登录msyql,这时可以做root密码修改操作。完成操作后删除/etc/my.cnf中新加入的语句。

         4:通过网业访问mysql数据库时,出现'Access denied ....................................(password no)问题,出现此问题的原因是myql用户访问 的权限问题。为了安全考虑,默认情况下msyql只能进行本机登录,不能远程接入。表Mysql.user记录了不同用户不同主机不同的权限。可通过命令查看:Select * from mysql.user ;可以增加一个新用户如shuxia,host指定为%,表示任意主机,接着给shuxia@'%' 用户分配所有的权限Flush privileges Grant all privileges on *.* to shuxia@’%’ identified by ‘密码’;刷新权限列表:flush privileges。

        至此,一些关键问题都经解决(当然对于新手而言),还有些小问题这里没有记录,待以后补上。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值