Using a remote MySQL database with SugarCRM

The Sugar installer must be “tricked” in certain ways, but it works. This setup assumes you have two separate, physical servers:

1) Web: A working Apache version 2.x server with a functional MySQL-enabled PHP library.
2) Database: A working MySQL server

This is the usual setup for n-tier architectures. It is unusual to have both a web server and database reside on the same physical server, which is what the SugarCRM installer presupposes.

The workaround:

1) Temporarily install the MySQL server RPM on the Apache server:
rpm -ivh MySQL-server-standard-5.0.18-0.rhel4.i386.rpm

The database server should install and start automatically.

2) Login to the remote MySQL server, and add a user named “sugarcrm” and grant it full privileges.

mysql> GRANT ALL PRIVILEGES ON *.* to ‘sugarcrm’@’%’ IDENTIFIED BY ‘sugarcrm’ WITH GRANT OPTION; Query OK, 0 rows affected (0.00 sec)

3) Start the SugarCRM installer.

4) At Step 3: Database Configuration, enter the following information:

Host Name: The FQDN of the remote MySQL server.
Database Name: sugarcrm
Create database: CHECKED
User Name for SugarCRM: sugarcrm
Create user: UNCHECKED
Password for SugarCRM: sugarcrm
Database account above is a privleged user? CHECKED

5) Continue through the rest of the SugarCRM installation.

6) After the installation succeeds, some cleanup is necessary.

a) MySQL priviledge reduction.
Login to the remote MySQL server and drop the privileges of the sugarcrm account. You will likely want to restrict it to the sugarcrm database, and only allow logins from the Apache server IP address.

mysql> GRANT ALL PRIVILEGES ON sugarcrm to ‘sugarcrm’@’’ IDENTIFIED BY ‘sugarcrm’ WITH GRANT OPTION;

b) Remove the temporary installation of MySQL on the Apache server.
# rpm -e mysql-server