如何使AWS RDS MySql 5.6不区分大小写?

如何使AWS RDS MySql 5.6不区分大小写?

问题描述:

我正在将基于Spring的Spring - Hibernate应用程序迁移到Amazon AWS。 由于Amazon RDS中的表名在hibernate创建时以大写字母开头,因此我遇到了数据库问题。如何使AWS RDS MySql 5.6不区分大小写?

例如:Windows本地的userlogin_permissions Mysql更改为Userlogin_permissions。

由于上述错误,我的服务器无法连接到表并且无法正常工作。

我尝试使用

<prop key="org.hibernate.ejb.naming_strategy">org.hibernate.cfg.ImprovedNamingStrategy</prop>

,但并没有帮助。

以下是我的XML结构:

<beans profile="awsSql"> 
     <bean class="org.apache.tomcat.jdbc.pool.DataSource" id="dataSource"> 
      <property name="url" value="jdbc:mysql://-----------"/> 
      <property name="driverClassName" value="com.mysql.jdbc.Driver"/> 
      <property name="username" value="@@@@@@@"/> 
      <property name="password" value="##########"/> 
     </bean> 
     <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> 
      <property name="persistenceUnitName" value="***-jpa"/> 
      <property name="dataSource" ref="dataSource"/> 
      <property name="jpaDialect"> 
       <bean class="org.springframework.orm.jpa.vendor.HibernateJpaDialect"/> 
      </property> 
      <property name="jpaVendorAdapter"> 
       <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"> 
        <property name="showSql" value="false"/> 
        <property name="generateDdl" value="true"/> 
        <property name="databasePlatform" value="org.hibernate.dialect.MySQL5Dialect"/> 
       </bean> 
      </property> 
      <property name="jpaProperties"> 
       <props> 
        <prop key="org.hibernate.envers.auditTablePrefix"></prop> 
        <prop key="org.hibernate.envers.auditTableSuffix">_AUD</prop> 
        <prop key="org.hibernate.ejb.naming_strategy">org.hibernate.cfg.ImprovedNamingStrategy</prop> 
        <!--<prop key="org.hibernate.ejb.naming_strategy">org.hibernate.cfg.DefaultNamingStrategy</prop>--> 

        <!--<prop key="hibernate.cache.provider_class">org.hibernate.cache.SingletonEhCacheProvider</prop>--> 
        <!--<prop key="hibernate.cache.provider_configuration">/META-INF/cache/ehcache.xml</prop>--> 
        <prop key="hibernate.cache.use_second_level_cache">false</prop> 
        <prop key="hibernate.cache.use_query_cache">false</prop> 
        <!--<prop key="hibernate.cache.region.factory_class">org.hibernate.cache.ehcache.EhCacheRegionFactory</prop>--> 
        <prop key="hibernate.generate_statistics">false</prop> 
       </props> 
      </property> 
     </bean> 

有什么办法中,我可以让RDS使用不区分大小写MYSQL,或使休眠中的所有操作系统保持一致。

我已经通过这里的其他相关问题,但无法解决我的问题。

+0

我试图改变在AWS控制台中的参数为1,这并没有解决porblem。我也会尝试Cli命令 – hybrid

你希望改变lower_case_table_names系统变量并将其值设置为1

How to change MySQL table names in Linux server to be case insensitive?

你必须在RDS创建一个新的参数组,然后将它关联到MySQL实例这很可能需要重启。要通过命令行查看说明,可以在下面找到它。

http://www.kulawik.de/blog/2011/02/lower_case_table_names/