,
我正在尝试将docker mysql与hibernate应用程序一起使用。 我的db.properties是:
on compress(put(a.ID,8.)) = compress(put(b.ID,8.));
使用 docker container ip(172.17.0.2)。
我的hibernate配置是:
hibernate.connection.username=root hibernate.connection.password=pass hibernate.hbm2ddl.auto=update hibernate.connection.url=jdbc:mysql://172.17.0.2:3306/keystone?autoReconnect=true hibernate.connection.driver_class=com.mysql.jdbc.Driver hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
我可以使用任何客户端访问docker mysql 但是当我尝试从我的应用程序连接时,我收到此错误:
<property name="show_sql">false</property>
<property name="format_sql">true</property>
<property name="use_sql_comments">false</property>
<property name="generate_statistics">false</property>
<property name="max_fetch_depth">2</property>
<property name="default_batch_fetch_size">16</property>
<property name="use_streams_for_binary">true</property>
<property name="connection.isolation">2</property>
<property name="hibernate.transaction.flush_before_completion">true</property>
<property name="hibernate.temp.use_jdbc_metadata_defaults">false</property>
<property name="hibernate.c3p0.min_size">2</property>
<property name="hibernate.c3p0.max_size">20</property>
<property name="hibernate.c3p0.timeout">300</property>
<property name="hibernate.c3p0.max_statements">300</property>
<property name="hibernate.c3p0.idle_test_period">3000</property>
<property name="hibernate.cache.use_structured_entries">true</property>
<property name="hibernate.cache.use_query_cache">true</property>
<property name="hibernate.cache.use_second_level_cache">true</property>
<property name="hibernate.cache.region.factory_class">org.hibernate.cache.ehcache.EhCacheRegionFactory</property>
</session-factory>
Hibernate无法从mysql连接池获得连接。不知道为什么。
有人可以帮忙吗?
答案 0 :(得分:1)
我找到了这个问题的解决方案。我使用了以下命令。
sudo docker run --name keystone -e MYSQL_ROOT_PASSWORD = pass -e MYSQL_DATABASE = keystone -d mysql:latest
安装了 mysql verison 8.0.11 和身份验证类型 &#39; caching_sha2_password&#39; 是问题所在。 这answer给了我很多帮助。
我使用以下命令( mysql:5.7)
创建了容器sudo docker run --name keystone -e MYSQL_ROOT_PASSWORD = pass -e MYSQL_DATABASE = keystone -d mysql:5.7
允许我使用标准身份验证类型创建用户。
N.B不要忘记添加必需的管理角色和架构特权