公司服务器上,tomcat去读取mysql里的数据,居然无法读取成功,查看了下tomcat的日志,发现数据里有一句包含得有大小写的字母。
解决方法:
要让mysql忽略大小写,但公司的mysql是做了主从的,为了不影响主从环境和mysql里的数据,停web服务、tomcat服务和mysql服务2个小时,在紧张的气氛下终于搞定了。
修改mysql忽略大小写的操作。
系统:centos 6.x
软件版本:mysql 5.5.x tomcat-6.x
1、先停止web服务和tomcat
这里就不说怎么停止,是个搞运维的都应该知道.
2、停止mysql主从同步
先在从服务器上停止slave,然后再对主数据库进行锁定,不让数据再写进去了,再对主数据库里的数据进行备份.
3、修改mysql主从配置文件,让其忽略大小写
vi /etc/my.cnf
要添加在mysqld下面,不要添加错了地方,保存后重启mysql。
备注,lower_case_table_names这个参数是无法在mysql命令行里进行修改的,如果在mysql命令行里修改,如下:
mysql错误:
Error : Variable 'lower_case_table_names' is a read only variable
说明lower_case_table_names这个参数,只能在my.cnf配置里添加,是无法在mysql命令行里修改的.
4、恢复主从同步
先在主里,看主数据库的状态,再根据主的状态在从数据库里执行:
如果同步上了,再取消主数据库的锁定状态,命令如下:
5、进行验证
随便在主里插入条数据或者修改点数据,如果有同步起,那就说明主从正常了,如果没有同步起,检查从数据库是否有报错。