Search code examples
mysqlwindowsliferay-6

Cannot connect MySQL with Liferay in Windows


I have created MySQL database using create database dblife character set utf8. I have using MySQL version 8.0.11 and MySQL-connector version 5.1.4. After downloading MySQL-connector, I have replaced .jar file with the Mysql.jar inside lib/ext directory. So, When I run the Liferay server version 6.2, It gives me following error shown below.

Error I am getting on eclipse console:

09:51:13,420 INFO  [localhost-startStop-1][DialectDetector:71] Determine dialect for MySQL 8
09:51:13,445 INFO  [localhost-startStop-1][DialectDetector:136] Found dialect org.hibernate.dialect.MySQLDialect
    09:40:37,209 INFO  [http-bio-8080-exec-2][StartupAction:97] There are no patches installed
09:40:37,216 ERROR [http-bio-8080-exec-2][JDBCExceptionReporter:82] Table 'dblife.lock_' doesn't exist
09:40:37,221 WARN  [http-bio-8080-exec-2][StartupAction:147] Unable to clear locks because Lock table does not exist
09:40:37,223 WARN  [http-bio-8080-exec-2][ReleaseLocalServiceImpl:171] Table 'dblife.release_' doesn't exist
09:40:37,226 INFO  [http-bio-8080-exec-2][ReleaseLocalServiceImpl:84] Create tables and populate with default data
09:40:38,058 WARN  [http-bio-8080-exec-2][BaseDB:457] You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'system tinyint,    maxUsers integer,   active_ tinyint) engine InnoDB' at line 1: create table Company (   companyId bigint not null primary key,  accountId bigint,   webId varchar(75) null, key_ longtext null, mx varchar(75) null,    homeURL longtext null,  logoId bigint,  system tinyint, maxUsers integer,   active_ tinyint) engine InnoDB;_ [Sanitized]
09:40:47,056 WARN  [http-bio-8080-exec-2][BaseDB:457] Table 'dblife.company' doesn't exist: create index IX_38EFE3FD on Company (logoId);_ [Sanitized]
09:40:47,058 WARN  [http-bio-8080-exec-2][BaseDB:457] Table 'dblife.company' doesn't exist: create index IX_12566EC2 on Company (mx);_ [Sanitized]
09:40:47,059 WARN  [http-bio-8080-exec-2][BaseDB:457] You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'system)' at line 1: create index IX_35E3E7C6 on Company (system);_ [Sanitized]
09:40:47,060 WARN  [http-bio-8080-exec-2][BaseDB:457] Table 'dblife.company' doesn't exist: create unique index IX_EC00543C on Company (webId);_ [Sanitized]
09:40:58,636 WARN  [http-bio-8080-exec-2][BaseDB:457] Specified key was too long; max key length is 3072 bytes: create index IX_7020130F on SCProductVersion (directDownloadURL);_ [Sanitized]
09:40:58,637 ERROR [http-bio-8080-exec-2][BaseDB:464] create index IX_7020130F on SCProductVersion (directDownloadURL);
09:41:01,417 WARN  [http-bio-8080-exec-2][BaseDB:457] Specified key was too long; max key length is 3072 bytes: create index IX_89509087 on User_ (companyId, openId);_ [Sanitized]
09:41:01,418 ERROR [http-bio-8080-exec-2][BaseDB:464] create index IX_89509087 on User_ (companyId, openId);
09:41:03,401 INFO  [http-bio-8080-exec-2][BaseDB:484] Database does not support case sensitive queries
09:41:04,169 INFO  [http-bio-8080-exec-2][VerifyProcess:65] Verifying com.liferay.portal.verify.VerifyProcessSuite
09:41:04,170 INFO  [http-bio-8080-exec-2][VerifyProcess:65] Verifying com.liferay.portal.verify.VerifyProperties
09:41:04,195 ERROR [http-bio-8080-exec-2][DBUpgrader:247] Unable to execute verify process: com.liferay.portal.verify.VerifyException: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'dblife.company' doesn't exist
com.liferay.portal.verify.VerifyException: com.liferay.portal.verify.VerifyException: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'dblife.company' doesn't exist

Caused by: com.liferay.portal.verify.VerifyException: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'dblife.company' doesn't exist

Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'dblife.company' doesn't exist

Furthermore, I am unable to add portal-ext.properties inside liferay.home directory. When I add this portal-ext.properties file, then I get Error: Liferay v6.2(tomcat7 at localhost has encountered a problem.

I have checked existing solution liferay-not-working-with-mysql, but I cannot see Database Migration options inside Control Panel > Administration Tools

Could anyone please suggest me solution. I will be very thankful to you.


Solution

  • When you install Liferay, it requires CREATE TABLE and other DDL permissions on the database. Make sure that you grant those to the user you're running Liferay as. You can revoke them, once the tables are created - after installation Liferay only needs the standard CRUD operations (until you upgrade or deploy new components that require such permissions).

    Also, Liferay 6.2 predates mysql 8 by a few years - it's safe to assume that both have never been tested together, and I'd recommend to go with a database that's been tested with it, rather than trying to make work what nobody has ever tried before. You'll find the enterprise-supported versions in the compatibility matrix.