Move users table to external db: reconfigure openfire settings?


I need to use an external users table of another mysql database.

I read the guide and with the help of this message I have configured new openfire.xml file.

When I tried to access to my web control panel (http://server:9090), openfire asked me to reconfigure all settings.

is it normal? Because I had already configured the server with mysql. Now I just need to use an external table for users.


It shouldn’t do any harm to run this setup again and connect it to the same database.

it seemed odd. Nevertheless, I tried to redo the web configuration wizard of openfire.

Unfortunately, the server still takes users from the main mysql database of openfire.

I want to better sum up the situation.

Now I have a single database, called openfire, which also contains the users table.

Instead I want to move only the users table to another database called myapp, leaving the entire configuration in openfire database.

Is it possibile? I think so from what I read in the guide.

So I just changed the openfire.xml configuration file that I write below:

<?xml version="1.0" encoding="UTF-8"?>
<jive>     <adminConsole>         <port>9090</port>          <securePort>9091</securePort>     </adminConsole>      <locale>en</locale>      <connectionProvider>         <className>org.jivesoftware.database.DefaultConnectionProvider</className>     </connectionProvider>      <database>
        <defaultProvider>             <driver>com.mysql.jdbc.Driver</driver>              <serverURL>jdbc:mysql://localhost:3306/openfire</serverURL>              <username>DbOpenfireUser</username>              <password>DbOpenfirePassword</password>              <testSQL>select 1</testSQL>              <testBeforeUse>true</testBeforeUse>              <testAfterUse>true</testAfterUse>              <minConnections>5</minConnections>              <maxConnections>25</maxConnections>              <connectionTimeout>1.0</connectionTimeout>         </defaultProvider>     </database>       <!-- THIS SHOULD BE MYAPP DATABASE THAT CONTAINS USERS TABLE -->
    <jdbcProvider>         <driver>com.mysql.jdbc.Driver</driver>          <connectionString>jdbc:mysql://localhost/myapp?user=dbMyappUser&amp;password=dbMyappPassword</connectionString>     </jdbcProvider>      <provider>         <auth>             <className>org.jivesoftware.openfire.auth.JDBCAuthProvider</className>         </auth>          <user>             <className>org.jivesoftware.openfire.user.JDBCUserProvider</className>         </user>     </provider>      <jdbcAuthProvider>         <passwordSQL>SELECT pass FROM users WHERE user=?</passwordSQL>          <passwordType>plain</passwordType>     </jdbcAuthProvider>      <jdbcUserProvider>         <loadUserSQL>SELECT name,email FROM users WHERE user=?</loadUserSQL>          <userCountSQL>SELECT COUNT(*) FROM users</userCountSQL>          <allUsersSQL>SELECT user FROM users</allUsersSQL>          <searchSQL>SELECT user FROM users WHERE</searchSQL>          <usernameField>user</usernameField>          <nameField>name</nameField>          <emailField>email</emailField>     </jdbcUserProvider>
    <admin/>      <log>         <debug>             <enabled>true</enabled>         </debug>     </log>

This configuration does not work because I always see the list of users stored in the openfire database.