Подключение Alfresco к MySQL в Solaris 10

10 Июль 2009

В этой стать статье я расскажу, как подключить Alfresco к MySQL в Solaris 10.

Используемые версии ПО:

  • Alfresco Lab 3.1 Final Preconfigured Tomcat bundle
  • MySQL 5.1.2 for Solaris x86-64
  • Solaris 10/08 x64

Подключать Alfresco к MySQL рекомендую сразу же после установки и до первого запуска Alfresco. Иначе возможны проблемы, решить которые не всегда удается. Подробнее об этом в конце статьи.

Будем считать, что Alfresco и MySQL уже установлены. Последовательность действий по подключению Alfresco к MySQL:

1. Скачайте MySQL Connector/J и скопируйте jar-файл в каталог /opt/alfresco/tomcat/shared/lib/

2. Отредактируйте файл создания базы данных  /opt/alfresco/extras/databases/mysql/db_setup.sql:

create database alfresco;
grant all on alfresco.* to 'alfresco'@'localhost' identified by 'alfresco' with grant option;
grant all on alfresco.* to 'alfresco'@'localhost.localdomain' identified by 'alfresco' with grant option;

Желательно поменять пароль к базе данных, можно также заменить имя пользователя и имя базы.

MySQL я ставил уже скомпилированный для Solaris 10 из tar архива, там кодировка по-умолчанию для базы данных Latin 1. Чтобы не было проблем с русским языком в Alfresco, база данных должна быть в кодировке utf8. Поэтому надо явно указать кодировку по умолчанию для базы данных в первой строке файла db_setup.sql:

create database alfresco default character set utf8;

3. Создайте базу данных. В каталоге /opt/alfresco/extras/databases/mysql/ запустите команду:

mysql -u root -p < db_setup.sql

4. Отредактируйте конфигурационные файлы Alfresco с параметрами базы данных. Файлы находятся в каталоге /opt/alfresco/tomcat/shared/classes/alfresco/extension. Первый файл custom-repository.properties. В нем нужно поменять имя и пароль пользователя базы данных, закомментировать строки, относящиеся к HSQL и раскомментировать строки, относящиеся к MySQL:

#
# Sample database connection properties
#
db.username=alfresco
db.password=alfresco
#db.pool.initial=10
#db.pool.max=100
...
#
# HSQL connection
#
#db.driver=org.hsqldb.jdbcDriver
#db.url=jdbc:hsqldb:file:alf_data/hsql_data/alfresco;ifexists=true;shutdown=true
;

#
# MySQL connection (This is default and requires mysql-connector-java-5.0.3-bin.
jar, which ships with the Alfresco server)
#
db.driver=org.gjt.mm.mysql.Driver
db.url=jdbc:mysql://localhost/alfresco?useUnicode=true&characterEncoding=UTF-8

В последней строке пришлось явно указать, чтобы драйвер JDBC MySQL использовал кодировку UTF-8. Без этого вместо русских символов в базу записывались вопросительные знаки.

Следующий файл, который нужно отредактировать custom-hibernate-dialect.properties. В нем также нужно закомментировать все, что относится к HSQL и раскомментировать строки, относящиеся к MySQL.

#
# HSQL dialect
#
#hibernate.dialect=org.hibernate.dialect.HSQLDialect

#
# MySQL dialect (default)
#
hibernate.dialect=org.hibernate.dialect.MySQLInnoDBDialect

На этом установка заканчивается. Если Вы ни разу не запускали Alfresco до этого, то все должно заработать.

Если Вы уже запускали Alfresco на HSQL, и записали туда документы, то после подключения MySQL Alfresco может не запустится. В логе должны появится ошибки следующего вида:

Caused by: org.alfresco.repo.search.SearcherException: More than one root node in index 2

Средства для гарантированного решения этой проблемы нет. Можете попробовать сделать следующее:

1. Остановите Alfresco.

2. Полностью удалите каталог /opt/alfresco/alf_data/lucene_indexes.

3. Отредактируйте файл /opt/alfresco/tomcat/webapps/alfresco/WEB-INF/classes/alfresco/repository.properties. Нужно поменять значения параметров index.recovery.mode и system.bootstrap.config_check.strict:

# The index recovery mode (NONE, VALIDATE, AUTO, FULL)
#index.recovery.mode=VALIDATE
index.recovery.mode=FULL

# Change the failure behaviour of the configuration checker
#system.bootstrap.config_check.strict=true
system.bootstrap.config_check.strict=false

4. Попробуйте запустить ALfresco. Есть шанс, что все заработает.

Если Alfresco не заработало, попробуйте снова удалить каталог /opt/alfresco/alf_data/lucene_indexes, пересоздать базу данных и опять опытаться запустить Alfresco. В случае успешного запуска не забудьте поменять параметр index.recovery.mode, иначе Alfresco будет перестраивать индексы при каждом запуске.

Если и это не поможет, то придется переустанавливать и настраивать подключение к MySQL до первого запуска Alfresco.

Ссылки на англоязычные ресурсы:

  1. Setting up the MySQL database for Alfresco
  2. Using Alfresco with other databases than MySQL
  3. Alfresco on Debian: using MySQL

Похожие записи:

  1. Русификация Alfresco
  2. Установка Alfresco 3.2 на Solaris
  3. Установка Alfresco на Solaris 10
  4. Проблемы при установке MySQL из Sun Web Stack
  5. Alfresco – enterprise content management с открытым исходным кодом

Рубрики: Alfresco, Mysql

Метки: , , Оставить комментарий

Оставить комментарий

Feed

http://solarisblog.ru / Подключение Alfresco к MySQL в Solaris 10