Подключение 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.
Ссылки на англоязычные ресурсы:
- Setting up the MySQL database for Alfresco
- Using Alfresco with other databases than MySQL
- Alfresco on Debian: using MySQL
Похожие записи:


