Skip to main content

 Installation

PageSeeder installation and upgrade instructions

Configuring MySQL

Install MySQL 5.7

PageSeeder supports MySQL 5.6.4 or higher and if this is a new installation, it is generally best to install the latest release of 5.7 from http://www.mysql.com .

MySQL 8 is not yet supported by PageSeeder. See warning in following JDBC section.

  • On Linux use commands (CentOS 6) like:
$ rpm -Uvh https://dev.mysql.com/get/mysql57-community-release-el6-7.noarch.rpm
  • Or (CentOS 7)
$ rpm -Uvh https://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm
$ yum install mysql-server

Changing where data is stored

On Linux, MySQL usually stores data under /var/lib/mysql but if you want to use mounted storage for PageSeeder (for example storage mapped to the /opt folder) you can configure MySQL to store data there as well. To do this follow these steps:

Stop MySQL by entering:

$ service mysqld stop

Move the existing MySQL data to the new location:

$ mv /var/lib/mysql /opt/mysql

Edit the /etc/my.cnf file as follows:

[mysqld]
...
datadir=/opt/mysql
socket=/opt/mysql/mysql.sock
...
[client]
socket=/opt/mysql/mysql.sock

Start MySQL by entering:

$ service mysqld start

Upgrading 5.6 to 5.7

Upgrading from MySQL 5.6 to 5.7 requires editing the following file:

pageseeder/webapp/WEB-INF/config/database.properties

To the end of the DBURL add:

?useSSL=false

For example:

DBURL=jdbc:mysql://localhost/pageseeder?useSSL=false

Also, add (or modify) the following line in my.ini or my.cnf:

sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

Finally, ensure that mysql-connector-java-5.1.39.jar or newer is in pageseeder/webapp/WEB-INF/lib and drivers folders.

Restart PageSeeder after making these changes.

Install the JDBC driver

The PageSeeder app requires a JDBC driver to communicate with MySQL. Download the appropriate version of MySQL Connector/J (JDBC Driver) for your MySQL and extract it on your server.

Do not use Connector/J v8 or newer due to the possible error: “The server time zone value ‘AEDT’ is unrecognized or represents more than one time zone”.

  • On Windows it can be downloaded from http://www.mysql.com  . Subject to Oracle/MySQL website changes, older versions of Connector/J versions are listed under ‘Archive’ in the ‘Downloads’ section.
  • On Linux, use the following commands (URL and version might have changed):
$ wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.45.tar.gz
$ tar xzvf mysql-connector-java-5.1.45.tar.gz

The PageSeeder installer asks for the location of the JDBC driver JAR file to be identified.

Use UTF-8mb4 character set

To correctly process special characters (see Character Encoding)—MySQL must be configured for UTF-8mb4. To do this, edit the following:

  • On Windows (to see the ProgramData folder might require showing “hidden” items):
\ProgramData\MySQL\MySQL Server 5.7\my.ini
  • On Linux:
/etc/my.cnf

When saving edits, do NOT change the file encoding from ascii. Doing so might prevent MySQL from starting.

After [mysqld] (add it if it doesn’t exist), add or modify the following line:

character-set-server=utf8mb4

Change any other character-set properties to utf8mb4.

Add (or modify) the following line as shown:

sql-mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

If spare RAM is available increase the InnoDB buffer to 80% of available RAM (minus what is used by  other processes). For example, with 6GB total RAM and PageSeeder using 1GB, the InnoDB buffer could be set to 4GB by adding:

innodb_buffer_pool_size=4G

On Windows restart MySQL using the Services Control Panel, on Linux type:

$ service mysqld restart

Or

$ service mysql restart

On Amazon RDS, the only value that MUST be set using DB parameter groups is:

character-set-server=utf8mb4

To increase the number of Database connections, see  Database Properties.

Backup and restore

When manually creating a PageSeeder database, DO NOT use uft8mb4, DO use utf8 as shown in the following command.

However, to backup use --default-character-set=utf8mb4 and -r flag.

To backup the PageSeeder database on Linux use a command like this:

$ mysqldump --single-transaction -u pageseeder -p --default-character-set=utf8mb4 -r ps.sql pageseeder

 Optionally compress the backup:

$ gzip ps.sql

Restore with overwrite

To overwrite an existing database first drop it, then recreate it using commands like this:

$ mysql -u root -p
drop database pageseeder;
create database pageseeder character set utf8;
grant all on pageseeder.* to pageseeder@localhost;
quit

To restore the PageSeeder database, use a command like this:

$ mysql -u pageseeder -p pageseeder < ps.sql

or if the backup is compressed:

$ gunzip -c ps.sql.gz | mysql -u pageseeder -p pageseeder

Restore with create

If no database or user exists, create them using commands like this:

$ mysql -u root -p
create database pageseeder character set utf8;
create user pageseeder@localhost identified by '<password>';
grant all on pageseeder.* to pageseeder@localhost;
quit

To restore the PageSeeder database use a command like this:

$ mysql -u pageseeder -p pageseeder < ps.sql

or if the backup is compressed:

$ gunzip -c ps.sql.gz | mysql -u pageseeder -p pageseeder

If PageSeeder is running on a different server to MySQL, replace @localhost with @"%"

On Linux, if you get an error ERROR 2006 (HY000) at line 207: MySQL server has gone away while restoring add max_allowed_packet=32M just under [mysqld]in the /etc/my.cnf file and restart MySQL before trying again.

Created on , last edited on