Announcement

Collapse
No announcement yet.

createcontext fails; "Could not create connection to database server"

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • createcontext fails; "Could not create connection to database server"

    Hi
    i try to install OX on OpenSUSE 11.1 with MySQL on a different (virtual) host. I used the tutorial at http://www.open-xchange.com/wiki/ind...ion_openSUSE11. All steps succeeded, but the createcontext fails with
    Code:
    context 1 could not be created:
    Server response:
     Error unmarshaling return; nested exception is:
            java.lang.ClassNotFoundException: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException (no security manager: RMI class loader disabled)
    The main cause seems to be the exception in the /var/log/open-xchange/open-xchange-admin.log.0:
    Code:
    SEVERE: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: 
    Could not create connection to database server. 
    Attempted reconnect 3 times. Giving up.
    com.openexchange.admin.rmi.exceptions.StorageException:
    com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: 
    Could not create connection to database server. Attempted reconnect 3 times. Giving up.
    The parameters in both configdb.property files are the same:
    Code:
    readUrl=jdbc:mysql://arealhostname.de:3306/openexchange
    readProperty.1=user=openexchange
    readProperty.2=password=not24get
    writeUrl=jdbc:mysql://arealhostname.de:3306/openexchange
    writeProperty.1=user=openexchange
    writeProperty.2=password=not24get
    I can connect to the database:
    mysql -u openexchange -h arealhostname.de -p openexchange < "not24get"
    Code:
    show tables;
    +------------------------+
    | Tables_in_openexchange |
    +------------------------+
    | configdb_sequence      |
    | context                |
    | context_server2db_pool |
    | db_cluster             |
    | db_pool                |
    | filestore              |
    | login2context          |
    | reason_text            |
    | server                 |
    +------------------------+
    I don't know what i could do to find the error. Can anybody help me?

    Thanks a lot
    mamue

  • #2
    Hi,

    there are several postings in this forums about the issue. The most usual cause is that the database server is not accessible remotely.

    "Could not create connection to database server. Attempted reconnect 3 times. Giving up."

    This looks like connection problems, can you analyze the network traffic?

    Greetings

    Comment


    • #3
      Originally posted by Martin Braun View Post
      Hi,

      there are several postings in this forums about the issue. The most usual cause is that the database server is not accessible remotely.

      "Could not create connection to database server. Attempted reconnect 3 times. Giving up."

      This looks like connection problems, can you analyze the network traffic?

      Greetings
      Yes, i read that posts. But I think i can exclude that the database is not accesible, as i tested that with the mysql client. As i said:
      mysql -u openexchange -h arealhostname.de -p openexchange < "not24get"
      That works from the remote host. I think that network problems are unlikely, because there is no real switch and no real cabeling. All hosts are virtual machines on the same iron. Besides the MySQL DB is already used by a third VM which serves a CMS. There have never been any problems. The setup-process runs with no problems, all tables are created without errors. Wouldn't it be more likely that i misconfiguered something?

      Thanks
      mamue

      Comment


      • #4
        Is it possible to enable a debugging mode, so that i could see which credentials are used for the database connection?

        Thanks
        mamue

        Comment


        • #5
          Hi,

          we don't log any passwords. You might sniff the network traffic (port 3306) for this.

          Greetings

          Comment


          • #6
            I tried my best sniffing the network.
            I try to get the credentials:
            Code:
            tshark -Tfields -e mysql.user -e mysql.passwd -i eth0 -R mysql.user
            That shows me the correct user, with a hashed password. Then i try to capture the queries:
            Code:
            tshark -Tfields -e mysql.query -i eth0 -R 'mysql.query'
            
            SELECT cid FROM context WHERE cid = 1;
            SELECT id FROM filestore WHERE uri LIKE '%'
            SELECT uri,size,max_context FROM filestore WHERE id=3
            SELECT cid FROM context WHERE filestore_id=3
            SELECT db_pool_id,url,driver,login,password,name,weight,max_units FROM db_pool, db_cluster WHERE db_cluster.write_db_pool_id = db_pool_id
            SELECT COUNT(server_id) FROM context_server2db_pool WHERE write_db_pool_id=4
            SELECT read_db_pool_id FROM db_cluster WHERE write_db_pool_id = 4
            SET autocommit=0
            SELECT db_schema,COUNT(db_schema) AS count FROM context_server2db_pool WHERE write_db_pool_id=4 GROUP BY db_schema HAVING count<1000 ORDER BY count
            UPDATE configdb_sequence SET id=id+1
            SELECT id FROM configdb_sequence
            rollback
            SET autocommit=1
            I can connect to the remote MySQL instance with the username tshark shows me and the password i configured. Using the mysql client, i can execute the statements shown above - no errors.
            What else can i do to track down the error?

            Thanks
            mamue

            Comment


            • #7
              I had what appeared to be the same problem, and fixed it.

              I had what appeared to be the same problem, and fixed it. To fix, I manually made sure the password was the same in 4 places, after finding a certain query in the tcpdump output (which is the 5th one in your output):

              # tcpdump -v -i lo port 3306 -Xs 0

              ...

              .........SELECT.
              db_pool_id,url,d
              river,login,pass
              word,name,weight
              ,max_units.FROM.
              db_pool,.db_clus
              ter.WHERE.db_clu
              ster.write_db_po
              ol_id.=.db_pool_
              id

              So silly that it was logging in as openexchange twice; once to read the password (which it already knew and was using), and again to do who knows what with the wrong password.

              Fix:
              mysql> update configdb.db_pool set password = 'asdfasdf';
              mysql> update mysql.user set password = password('asdfasdf') where user = 'openexchange';
              (then restart mysql, since I set it using UPDATE instead of the proper way)

              $ vim /opt/open-xchange/etc/admindaemon/configdb.properties
              $ vim /opt/open-xchange/etc/groupware/configdb.properties

              possible cause:
              The previous commands I was typing (found here: http://oxpedia.org/wiki/index.php?ti..._openSUSE_11.0) somehow resulted in the correct 'openexchange' password everywhere except configdb.db_pool, which instead had my mysql root password, not the openexchange one. That is the table found in that SQL above.

              Comment


              • #8
                Had the same Problem, thanks for your info.

                I solved it via phpmyadmin, just changed the PW in DB "configdb"/db_pool.

                Comment

                Working...
                X