Confluence : Known Issues for MySQL
This page last changed on Jan 03, 2007 by ivan@atlassian.com.
Configuring Database Character EncodingTo prevent problems with character encoding, for consistency, we recommend to use Unicode character encoding UTF-8 among all the entities of your system. See Configuring Database Character Encoding for more details. MySQL JDBC DriversFor users using MySQL with Confluence 2.2 (or higher), please ensure that you are using the latest (3.1.14) MySQL Java Connector. Earlier versions of the MySQL connector have a bug which is triggered by improvements in Confluence 2.2. These earlier connector versions will result in an error being recorded in your logs on upgrade (and will result in unstable operation of Confluence) ERROR [hibernate.tool.hbm2ddl.SchemaUpdate] execute could not complete schema update You can download the latest MySQL connector from the MySQL Java Connector 3.1 download page. Please be sure that you remove any older versions of the connector from your application server. Don't use the debug version of these drivers (the jar file ending in '-g.jar'). This requires extra configuration, see Installing the Driver and Configuring the CLASSPATH If you get a connection error: Access denied for user 'confluenceuser'@'localhost.localdomain' this may be because 127.0.0.1 resolves to 'localhost.localdomain' in your environment. Create a user 'confluenceuser@localhost%' to match any domain starting with localhost. MySQL and Character encoding:When specifying a character encoding as part of your mysql connection url (eg: &characterEncoding=utf8), it is important to ensure that the specified encoding is compatible with the default encoding used by your database. Note: if you do not specify a characterEncoding on the connection url, the connection will default to the servers default character set. Full details of MySQLs character support is available here: http://dev.mysql.com/doc/mysql/en/charset.html
Find a list of MySQL related configuration hints below:MySQL Connector-J 3.1.10 bug.If you are wondering why a large number of '!' marks are appearing in your log files, it is likely to be caused by http://bugs.mysql.com/bug.php?id=11629. BadSqlGrammarException and character encoding exceptions using MySQL Connector-J 3.1.10User reports that adding a "useOldUTF8Behavior=true" parameter to the JDBC URL allowed Confluence to work with this driver. DataIntegrityViolationException when running MySQL 5Running MySQL 5 as the database for Confluence is currently not a supported configuration. However, if it is used, the following exception may occur in the logs: org.springframework.dao.DataIntegrityViolationException: (Hibernate operation): data integrity violated by SQL ''; nested exception is java.sql.BatchUpdateException: Data too long for column 'boolean_val' at row 1 A temporary fix for this is to manually modify the boolean_val column in the OS_PROPERTYENTRY table, so that it is of type bit(8). Note that this won't allow you to restore a backup, as the first thing the restore does is rebuild the DB. java.sql.SQLException: Invalid authorization specificationSome users reported problems getting MySQL running under Tomcat, throwing an exception similar to the following: Connection failed to open on the JDBC URL: java.sql.SQLException: Invalid authorization specification, message from server: "Access denied for user: 'your_username@localhost.localdomain' (Using password: YES)"
However, it is still possible to easily connect to MySQL from the shell and from PhpMyAdmin. The problem seems to be a known bug and seems to be related to the hostname portion in mysql:users. I figured out the problem. Changing "host" in mysql:users to "127.0.0.1" enabled Confluence to access the database. Therefore instead of granting permissions using the following command: GRANT ALL PRIVILEGES ON .\* to 'example'@'localhost.localdomain' identified by '<the password>'; FLUSH PRIVILEGES; you should use: GRANT ALL PRIVILEGES ON .\* to 'example'@'127.0.0.1' identified by '<the password>'; FLUSH PRIVILEGES; You can do it this way, but it seems you should ensure that the canonical host name is the first item in the /etc/hosts line for 127.0.0.1. Make sure it's not localhost.localdomain but localhost. e.g.: 127.0.0.1 localhost localhost.localdomain myfunkyboxname anotheralias.foobar.com And then make sure you use the same thing, i.e. localhost in the GRANT line and the JDBC URL. Inconsistency across these things is the root problem (and perhaps we can blame the JDBC Driver?)
Max Allowed Packet Size ExceededIf you are using MySQL 4 and prior, you may come across a problem with max_allowed_packet size. ERROR [sf.hibernate.util.JDBCExceptionReporter] logExceptions Packet for query is too large (1259485 > 1048576). You can change this value on the server by setting the max_allowed_packet' variable.
To resolve this problem, you need to increase the value for max_allowed_packet Prior MySQL 4.0, use this syntax instead:shell> mysqld --set-variable=max_allowed_packet=16M From MySQL 4.0, use this syntaxshell> mysql --max_allowed_packet=32M
|
![]() |
Document generated by Confluence on Feb 08, 2007 00:10 |