EMM - мигрировать с H2 на Mysql
Я хочу изменить свою базу данных и установить ее на mysql. Я прохожу через Как перейти с H2 на MySQL, но я не смог подключиться ни к каким консолям!
Вот изменение, внесенное в master-datasources.xml:
<datasource>
<name>WSO2_EMM_DB</name>
<description>The datasource used for EMM</description>
<jndiConfig>
<name>jdbc/WSO2EMMDB</name>
</jndiConfig>
<definition type="RDBMS">
<configuration>
<url>jdbc:mysql://localhost:3306/WSO2EMM_DB</url> // I also try by setting ip address
<username>admin</username>
<password>******</password>
<driverClassName>com.mysql.jdbc.Driver</driverClassName>
<maxActive>50</maxActive>
<maxWait>60000</maxWait>
<testOnBorrow>true</testOnBorrow>
<validationQuery>SELECT 1</validationQuery>
<validationInterval>30000</validationInterval>
</configuration>
</definition>
</datasource>
WSO2_CARBON_DB и WSO2AM_DB также редактируются как WSO2AM_DB.
Я проверяю базы данных, и все они созданы, вот изображение.
Сервер работает на Win 7 и MySQL версии 5.6 .
Вот журнал углерода и ошибка в веб-браузере.
Редактировать:
Вот некоторая часть углеродного журнала:
{org.wso2.carbon.user.core.util.DatabaseUtil} - Database Error - Unknown database 'wso2carbon_db' {org.wso2.carbon.user.core.util.DatabaseUtil} com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown database 'wso2carbon_db'
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:353)
...
Изменить 2:
вот master-datasources.xml с изменениями:
<datasources-configuration xmlns:svns="http://org.wso2.securevault/configuration">
<providers>
<provider>org.wso2.carbon.ndatasource.rdbms.RDBMSDataSourceReader</provider>
</providers>
<datasources>
<datasource>
<name>wso2_emm_db</name>
<description>The datasource used for EMM</description>
<jndiConfig>
<name>jdbc/WSO2EMMDB</name>
</jndiConfig>
<definition type="RDBMS">
<configuration>
<url>jdbc:mysql://localhost:3306/wso2_emm_db</url>
<username>admin</username>
<password>123456</password>
<driverClassName>com.mysql.jdbc.Driver</driverClassName>
<maxActive>50</maxActive>
<maxWait>60000</maxWait>
<testOnBorrow>true</testOnBorrow>
<validationQuery>SELECT 1</validationQuery>
<validationInterval>30000</validationInterval>
</configuration>
</definition>
</datasource>
<datasource>
<name>wso2_carbon_db</name>
<description>The datasource used for registry and user manager</description>
<jndiConfig>
<name>jdbc/WSO2CarbonDB</name>
</jndiConfig>
<definition type="RDBMS">
<configuration>
<url>jdbc:mysql://localhost:3306/wso2_carbon_db</url>
<username>admin</username>
<password>123456</password>
<driverClassName>com.mysql.jdbc.Driver</driverClassName>
<maxActive>50</maxActive>
<maxWait>60000</maxWait>
<!-- <minIdle>5</minIdle>-->
<testOnBorrow>true</testOnBorrow>
<validationQuery>SELECT 1</validationQuery>
<validationInterval>30000</validationInterval>
</configuration>
</definition>
</datasource>
<datasource>
<name>WSO2_IDENTITY_DB</name>
<description>The datasource used for Identity configurations</description>
<jndiConfig>
<name>jdbc/WSO2IdentityDB</name>
</jndiConfig>
<definition type="RDBMS">
<configuration>
<url>jdbc:h2:repository/database/WSO2IDENTITY_DB;DB_CLOSE_ON_EXIT=FALSE</url>
<username>wso2carbon</username>
<password>wso2carbon</password>
<driverClassName>org.h2.Driver</driverClassName>
<maxActive>50</maxActive>
<maxWait>60000</maxWait>
<testOnBorrow>true</testOnBorrow>
<validationQuery>SELECT 1</validationQuery>
<validationInterval>30000</validationInterval>
</configuration>
</definition>
</datasource>
<datasource>
<name>SOCIAL_CACHE</name>
<description>The datasource used for storing the cached social objects.</description>
<jndiConfig>
<name>jdbc/test</name>
</jndiConfig>
<definition type="RDBMS">
<configuration>
<url>jdbc:h2:repository/database/WSO2SOCIAL_CACHE_DB;DB_CLOSE_ON_EXIT=FALSE</url>
<username>wso2carbon</username>
<password>wso2carbon</password>
<driverClassName>org.h2.Driver</driverClassName>
<maxActive>50</maxActive>
<maxWait>60000</maxWait>
</configuration>
</definition>
</datasource>
<datasource>
<name>SOCIAL_CASSANDRA_DB</name>
<description>The cassandra datasource used for storing social activities</description>
<definition type="RDBMS">
<configuration>
<url>jdbc:cassandra://localhost:9160/EVENT_KS</url>
<username>admin@admin.com</username>
<password>admin</password>
<driverClassName>org.apache.cassandra.cql.jdbc.CassandraDriver</driverClassName>
</configuration>
</definition>
</datasource>
<datasource>
<name>wso2am_db</name>
<description>The datasource used for API Manager database</description>
<jndiConfig>
<name>jdbc/WSO2AM_DB</name>
</jndiConfig>
<definition type="RDBMS">
<configuration>
<!-- add line below -->
<defaultAutoCommit>false</defaultAutoCommit>
<url>jdbc:mysql://localhost:3306/wso2am_db</url>
<username>admin</username>
<password>123456</password>
<driverClassName>com.mysql.jdbc.Driver</driverClassName>
<maxActive>50</maxActive>
<maxWait>60000</maxWait>
<testOnBorrow>true</testOnBorrow>
<validationQuery>SELECT 1</validationQuery>
<validationInterval>30000</validationInterval>
</configuration>
</definition>
</datasource>
<datasource>
<name>JAGH2</name>
<description>The datasource used for by the Jaggery Storage Manager</description>
<jndiConfig>
<name>jdbc/test</name>
</jndiConfig>
<definition type="RDBMS">
<configuration>
<url>jdbc:h2:~/test;DB_CLOSE_ON_EXIT=FALSE;LOCK_TIMEOUT=60000</url>
<username>sa</username>
<password></password>
<driverClassName>org.h2.Driver</driverClassName>
<maxActive>50</maxActive>
<maxWait>60000</maxWait>
</configuration>
</definition>
</datasource>
</datasources>
Изменить 3:
Не нужно менять user-mgt.xml и реестр xml, поэтому я убираю их из вопроса. После этого изменения я перезагружаю сервер, теперь консоль загружена, но я не могу войти в emm consol, я получаю ошибку 500:
192.168.1.157 - - [28/Jul/2015:19:05:17 +0430] "POST /emm/acs HTTP/1.1" 500 1042 "https://192.168.1.157:9443/commonauth" "Mozilla/5.0 (Windows NT 6.1; WOW64)
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36"
Но я могу войти в издательство и хранить консоли.
Вот полный журнал для http-доступа и wso2carbon после перезапуска.
Редактировать 4: я изменяю master-datasources.xml в редактировании 2, и вот базы данных
2 ответа
Похоже, в вашей конфигурации есть проблемы с именами. Можем ли мы следовать этим шагам?
- Получите свежий пакет EMM.
- Создайте 4 пустые базы данных mysql, используя именно эти имена: WSO2AM_DB, WSO2CARBON_DB,WSO2EMM_DB и WSO2IDENTITY_DB.
- Замените ваш файл master-datasources.xml прикрепленным файлом [1] в этом ответе.
- Измените имя пользователя и пароль mysql, чтобы они совпадали с вашими.
- Запустите пакет, используя команду "sh ./wso2server.sh -Dsetup".
Вы должны быть в состоянии решить ваши проблемы, следуя этим. В противном случае это пустая трата времени, пытаясь исправить проблемы в вашем существующем пакете.
[1] - файл MASTER-DATASOURCES.XML
<datasources-configuration xmlns:svns="http://org.wso2.securevault/configuration">
<providers>
<provider>org.wso2.carbon.ndatasource.rdbms.RDBMSDataSourceReader</provider>
</providers>
<datasources>
<datasource>
<name>WSO2_EMM_DB</name>
<description>The datasource used for EMM</description>
<jndiConfig>
<name>jdbc/WSO2EMMDB</name>
</jndiConfig>
<definition type="RDBMS">
<configuration>
<url>jdbc:mysql://localhost:3306/WSO2EMM_DB</url>
<username>root</username>
<password>root</password>
<driverClassName>com.mysql.jdbc.Driver</driverClassName>
<maxActive>50</maxActive>
<maxWait>60000</maxWait>
<testOnBorrow>true</testOnBorrow>
<validationQuery>SELECT 1</validationQuery>
<validationInterval>30000</validationInterval>
</configuration>
</definition>
</datasource>
<datasource>
<name>WSO2_CARBON_DB</name>
<description>The datasource used for registry and user manager</description>
<jndiConfig>
<name>jdbc/WSO2CarbonDB</name>
</jndiConfig>
<definition type="RDBMS">
<configuration>
<url>jdbc:mysql://localhost:3306/WSO2CARBON_DB</url>
<username>root</username>
<password>root</password>
<driverClassName>com.mysql.jdbc.Driver</driverClassName>
<maxActive>50</maxActive>
<maxWait>60000</maxWait>
<testOnBorrow>true</testOnBorrow>
<validationQuery>SELECT 1</validationQuery>
<validationInterval>30000</validationInterval>
</configuration>
</definition>
</datasource>
<datasource>
<name>WSO2_IDENTITY_DB</name>
<description>The datasource used for Identity configurations</description>
<jndiConfig>
<name>jdbc/WSO2IdentityDB</name>
</jndiConfig>
<definition type="RDBMS">
<configuration>
<url>jdbc:mysql://localhost:3306/WSO2IDENTITY_DB</url>
<username>root</username>
<password>root</password>
<driverClassName>com.mysql.jdbc.Driver</driverClassName>
<maxActive>50</maxActive>
<maxWait>60000</maxWait>
<testOnBorrow>true</testOnBorrow>
<validationQuery>SELECT 1</validationQuery>
<validationInterval>30000</validationInterval>
</configuration>
</definition>
</datasource>
<datasource>
<name>SOCIAL_CACHE</name>
<description>The datasource used for storing the cached social objects.</description>
<jndiConfig>
<name>jdbc/test</name>
</jndiConfig>
<definition type="RDBMS">
<configuration>
<url>jdbc:h2:repository/database/WSO2SOCIAL_CACHE_DB;DB_CLOSE_ON_EXIT=FALSE</url>
<username>wso2carbon</username>
<password>wso2carbon</password>
<driverClassName>org.h2.Driver</driverClassName>
<maxActive>50</maxActive>
<maxWait>60000</maxWait>
</configuration>
</definition>
</datasource>
<datasource>
<name>SOCIAL_CASSANDRA_DB</name>
<description>The cassandra datasource used for storing social activities</description>
<definition type="RDBMS">
<configuration>
<url>jdbc:cassandra://localhost:9160/EVENT_KS</url>
<username>admin@admin.com</username>
<password>admin</password>
<driverClassName>org.apache.cassandra.cql.jdbc.CassandraDriver</driverClassName>
</configuration>
</definition>
</datasource>
<datasource>
<name>WSO2AM_DB</name>
<description>The datasource used for API Manager database</description>
<jndiConfig>
<name>jdbc/WSO2AM_DB</name>
</jndiConfig>
<definition type="RDBMS">
<configuration>
<url>jdbc:mysql://localhost:3306/WSO2AM_DB</url>
<username>root</username>
<password>root</password>
<driverClassName>com.mysql.jdbc.Driver</driverClassName>
<maxActive>50</maxActive>
<maxWait>60000</maxWait>
<testOnBorrow>true</testOnBorrow>
<validationQuery>SELECT 1</validationQuery>
<validationInterval>30000</validationInterval>
<defaultAutoCommit>false</defaultAutoCommit>
</configuration>
</definition>
</datasource>
<datasource>
<name>JAGH2</name>
<description>The datasource used for by the Jaggery Storage Manager</description>
<jndiConfig>
<name>jdbc/test</name>
</jndiConfig>
<definition type="RDBMS">
<configuration>
<url>jdbc:h2:~/test;DB_CLOSE_ON_EXIT=FALSE;LOCK_TIMEOUT=60000</url>
<username>sa</username>
<password></password>
<driverClassName>org.h2.Driver</driverClassName>
<maxActive>50</maxActive>
<maxWait>60000</maxWait>
</configuration>
</definition>
</datasource>
</datasources>
</datasources-configuration>
Спасибо
Возможно, на вашем сервере БД отсутствует WSO2CARBON_DB или вы не установили драйвер JDBC MySQL. Пожалуйста, следуйте [1], чтобы исправить вашу конфигурацию.
[1] - https://docs.wso2.com/display/EMM110/Setting+up+MySQL
Спасибо