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

3
我正在将基于Spring-Hibernate的Windows应用程序迁移到Amazon AWS。但是,由于Amazon RDS中的表名以大写字母开头,因此Hibernate在创建它们时会出现问题。
例如:本地Windows MySQL中的userlogin_permissions更改为Userlogin_permissions。
由于上述错误,我的服务器无法连接到该表并且无法工作。
我尝试使用以下内容: org.hibernate.cfg.ImprovedNamingStrategy 但没有帮助。
以下是我的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,或使hibernate在所有操作系统中保持一致。

我已经查看了这里的其他相关问题,但无法解决我的问题。


我尝试在AWS控制台中将参数更改为1,但并没有解决问题。我也会尝试使用Cli命令。 - hybrid
1个回答

7

2
请注意:如果数据库已经存在,您将无法更改此变量。在这种情况下,您唯一能做的就是创建一个新的数据库,并配置包含设置“lower_case_table_names = 1”的参数组为新数据库的参数组。如果您尝试将参数组添加到现有的 MySql 8 数据库中,则在尝试保存数据库修改时会出现错误。 - Maurice

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接