如何使 AWS RDS MySql 5.6 不区分大小写?
How to make AWS RDS MySql 5.6 case-insensitive?
我正在将基于 windows 的 Spring - Hibernate 应用程序迁移到 Amazon AWS。
我遇到了数据库问题,因为 Amazon RDS 中的 table 名称在休眠创建时以大写字母开头。
例如:userlogin_permissions in Windows local Mysql 更改为 Userlogin_permissions.
由于上述错误,我的服务器无法连接到 table 并且无法正常工作。
我试过使用
<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 ,或者让休眠在所有 OS.
中保持一致
我已经解决了这里的其他相关问题,但无法解决我的问题。
您要更改 lower_case_table_names
系统变量并将值设置为 1。
How to change MySQL table names in Linux server to be case insensitive?
您必须在 RDS 中创建一个新的参数组,然后将其关联到一个 mysql 实例,这很可能需要重新启动。要查看通过命令行执行此操作的说明,可以在下面找到。
我正在将基于 windows 的 Spring - Hibernate 应用程序迁移到 Amazon AWS。 我遇到了数据库问题,因为 Amazon RDS 中的 table 名称在休眠创建时以大写字母开头。
例如:userlogin_permissions in Windows local Mysql 更改为 Userlogin_permissions.
由于上述错误,我的服务器无法连接到 table 并且无法正常工作。
我试过使用
<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 ,或者让休眠在所有 OS.
中保持一致我已经解决了这里的其他相关问题,但无法解决我的问题。
您要更改 lower_case_table_names
系统变量并将值设置为 1。
How to change MySQL table names in Linux server to be case insensitive?
您必须在 RDS 中创建一个新的参数组,然后将其关联到一个 mysql 实例,这很可能需要重新启动。要查看通过命令行执行此操作的说明,可以在下面找到。