Installation SuiteCRM on Synology NAS - Database unavailable

Hi,

I am installing SuiteCRM on my Synology NAS and I keep getting this error message:
“Database Support was not found. Please make sure you have the necessary drivers for one of the following supported Database Types: MySQL or MS SQLServer. You might need to uncomment the extension in the php.ini file, or recompile with the right binary file, depending on your version of PHP. Please refer to your PHP Manual for more information on how to enable Database Support”

I succesfully run Joomla, using PHP7 on this machine so I do not get why this is apparently a problem for my SuiteCRM installation.

Any advise/direction is much appreciated! :slight_smile:

Regards, Derk

Well, did you check your php.ini as instructed? How is the database configuration there?

Note that there can be multiple PHP installations on the same server, and multiple php.ini’s. You need to make sure you’re editing the correct one.

To list all of them:

find / -name php.ini 2>/dev/null

Hi,

Thnx for the info and I checked and found some 7 php.ini files.

How do I know which one is active? --> Just figured ut that this can be done using the command “php --ini”

What do I need to look for in this ini file when I edit/vi it?

My Unix is a bit rusty. Thanks for your help.

Kind regards,
Derk

You’re probably using at least two of those. The one you get from “php --ini” is the CLI (command-line one). This only affects SuitecRM for Scheduler jobs launched via crontab.

The one you really need is the one your web server is using.

Use this command

sh -c 'echo "<?php phpinfo(); ?>" > /var/www/html/info.php'

This will create a file called info.php in /var/www/html. I am assuming that is the root directory your web server is serving; if not, please adjust the command.

Then you can call it from your browser:

http://your.site.com/info.php

And check PHP settings from there.

Make sure the file has enough permissions to run.

Hi,

Thnx again. I can now confirm the version is indeed 7.0! So far so good. I now run into the next issue: when connecting to the MySQL database it does not recognize the database/credential:

“The provided database host, username, and/or password is invalid, and a connection to the database could not be established. Please enter a valid host, username and password”

l know rhat the username and pwd I used are the correct ones (used them on the Joomla installation, but it seems that the db cannot be called.

Any thought on this one?

Kind regards, Derk

That was meant to help you with the database problem, not just to check PHP version.

From the output of phpinfo, you can check two things:

  1. The path to your php.ini, where you can change settings

  2. The modules that are loaded, where you can confirm your settings become effective.

There are some modules for database access, I believe it should be mysqli but there might be different names on different systems.

Then to get the connection right you will probably want to use just “localhost” as the host, and then your username and password. Don’t add a port number, and don’t use 127.0.0.1 (I am assuming the database is on the same server, and in the standard port - tell me if not).

Hi,

The MySQLi database is indeed on the same system and I see the path to the php.ini file. Running the php info shows that MySQLi is active (see below). I do not know exactly what to look for in the php.ini file.

mysqli
MysqlI Support enabled
Client API library version mysqlnd 5.0.12-dev - 20150407 - $Id: b5c5906d452ec590732a93b051f3827e02749b84 $
Active Persistent Links 0
Inactive Persistent Links 0
Active Links 0
Directive Local Value Master Value
mysqli.allow_local_infile On On
mysqli.allow_persistent On On
mysqli.default_host no value no value
mysqli.default_port 3306 3306
mysqli.default_pw no value no value
mysqli.default_socket /run/mysqld/mysqld.sock /run/mysqld/mysqld.sock
mysqli.default_user no value no value
mysqli.max_links Unlimited Unlimited
mysqli.max_persistent Unlimited Unlimited
mysqli.reconnect Off Off
mysqli.rollback_on_cached_plink Off Off

Your current error is “database support not found” or “invalid host, user or password”?

If it is the second, which host name are you using, exactly?

Can you log in to mysql from the command line with those credentials?

mysql -u username -p

When I type in the command it says “command not found”. I think it has to do with not sufficient rights (though I a logged in via SSH as admin), or there is a PATH issue and cannot find the mysql command…

I searched for the mysql command (using “find”) and found it at the following location: “/usr/local/mariadb10/bin/mysql”.

I ran the command you gave me earlier with the full path and was able to log in as root! :slight_smile:

Therefore I assume I need to add /usr/local/mariadb10/bin/ to my $PATH? Is that correct, or is it better to do something else?

… almost there!!!..

If your error is still “database support missing”, yes, try adding that to the path.

I would like to keep my $PATH as clean as possible so I tried

  1. to make a symbolic link (sudo ln -s) to the file mysql from the /usr/bin directory
  2. to make a symbolic link to the mariadb10/bin directory from the /usr/bin directory

Now I can call the mysql command and log in, however when I use the installation program it still cannot find/connect to the db.

I am very positive I use the right credentials, so maybe it has something to do with user rights.

Is there a log creaated by the suiteCRM that provides me a bit more detail so I can troubleshoot further?

I will have a go at it again tonight, now I need to go to work.

Thanks for your efforts and patience!

Cheers, Derk

Here is a post about the logs.

Other than that, I am a bit confused by your feedback, I’ve asked several questions that have gone unanswered - I would prefer to know clearly the exact text of your error, and the exact values you’re trying.

Hi,

I added a screenshot of where I get stuck. The credentials can be found in that screenshot 9of course not the passwords). The software resides in the directory /web/kantoor on my Synology DiskStation

Below is also the part from the log file:
2018-09-20 05:56:00…Begin DB Check Process *************
2018-09-20 05:56:00…testing with mysql:mysqli
2018-09-20 05:56:00…Basic form info is valid, continuing Process.
2018-09-20 05:56:00…Testing user account…
2018-09-20 05:56:00…ERROR:: The provided database host, username, and/or password is invalid, and a connection to the database could not be established. Please enter a valid host, username and password
2018-09-20 05:56:00…FATAL:: errors have been detected! User will not be allowed to continue. Errors are as follow:
2018-09-20 05:56:00… The provided database host, username, and/or password is invalid, and a connection to the database could not be established. Please enter a valid host, username and password
2018-09-20 05:56:00…End DB Check Process *************

Thanks for that.

I wonder if this could be a connectivity problem, something peculiar about the Synology set up.

You could try setting the host as 127.0.0.1 to see if it makes a difference (although network performance will suffer).

Also, is mysql listening in the default port? You can try Telnet to that port to see if it responds.

Hi,

I am about to give up on this one… seems something funky in the Synology set-up, but cannot figure it out… installing packages via the Synology interface goes fine, but when I do not have a package and do a manual install it gets stuck. There is SugarCRM package and I could then take it from there ad migrate it to SuiteCRM (used to work some years ago). I also logged a ticket with Synology, though no response yet.

But to answer your questions:

  • Using 127.0.0.1 as host also does not resolve the issue
  • No response wehn telnetting to port 3306 (mysqli listening port). Also netstat -nld|grep 3306 shows there is no listening port 3306 active. But I am not sure if this is needed as SueCRM is installed on the same machine as the MariaDB and mysql.

Any last suggestions? Else we call it a day and maybe I will recommence my quest to get this fixed; I do know now it is a Synology issue, not SuiteCRM issue.

Kind regards, Derk

Hi,

I cannot believe it, but it seems to be working now!

Basically two items I did, but I do not knwo what lead to the resolution:

  1. I added PHP5.6 to the system again. PHP7 is still installed and actually active in my /web directory (using the info.php file).
  2. I installed MariaDB5 again on my machine. I left MariaDB10 installed, so both coexist.

I think the solution is in the 2nd item ince I see the suteCRM db created under MariaDB5 now.

MariaDB5 listens to port 3306 whereas MariaDB10 listens to port 3307. Maybe in the install files a call to port 3306 is default, but I am certainly not the expert on that.

Maybe this information is of some value to you. Let me know if this can solve the problem so I can later retry the insal on MariaDB10 al well.

For now I will start the configuration of my CRM (happy!!!)

Thanks so much for your patience and support! B-)

I see that both MariaDB 5 and 10 are included in our Compatibility matrix, so I believe this is already taken care of.

But I tried to find the part of the code that uses these port numbers and I couldn’t… :frowning:

Actually the port number is probably coming from your php.ini, in the section about mysqli configuration there is a default port number.