No idea how many people still operate Empressa on their own servers. If you do, I'd like to pick your brain some. I have installed Empressa numerous times over the years, but this install (update) is not going well. Diagtool works flawlessly - but accessing MySQL fails. I suspect it is the client library. Running on Amazon EC2 - installed CentOS 6 64bit version.
Announcement
Collapse
No announcement yet.
Empressa 5.34 - anyone installed outside Miva?
Collapse
X
-
I backtracked, so can't give you exact wording - but it did show the mysql library was installed, although my gut tells me it found the path, but did not necessarily test it. I had to locate and yum update mysql with "yum install mysql57-libs-5.7.30-1.15.amzn1.x86_64"William Gilligan - Orange Marmalade, Inc.
www.OrangeMarmaladeinc.com
Comment
-
My guess is his initial install did not include the new required MYSQLCLIENT system library directive, OR, the operating system's libmysqlclient library was not present or not in a place the Empresa config pointed at. Diagtool will show the previous "MySQL" database library as present, but that library is no longer used for mysql connections; the new system library with code MYSQLCLIENT is instead.
So, you'd need to be sure that you have either a:
<SYSTEM-LIB CODE="MYSQLCLIENT" LIBRARY="/path/to/libmysqlclient.so">
or
MvCONFIG_SYSTEMLIB_MYSQLCLIENT environment variable set with path to library
You'd use the first for 3x.so style config, and the second for env.so style config. The library it points at needs to be known to the operating system's dynamic loader if you do not use a full path, otherwise, full path to the file is required and must be accessible to Empresa. Most operating systems include a mysql client library with major version suffix if the mysql client software is installed, but some will have a pointer to the appropriate file without the version, i.e. could be a libmysqlclient.so, or may have to explicitly use libmysqlclient.so.15, etc. If the appropriate client library is not using a full path, and was added to the OS, it may be required to execute 'ldconfig' to make the OS aware of it.
Comment
-
Hi Dave, I did have this in the mivavm.conf: <SYSTEM-LIB CODE="MYSQLCLIENT" LIBRARY="/path/to/libmysqlclient.so"> and diagtools showed it installed and "passed". Diagtools also reported everything working - but - when actually loading a page with a mysql (amazon rds) connection - server error.William Gilligan - Orange Marmalade, Inc.
www.OrangeMarmaladeinc.com
Comment
-
Okay. Just for confirmation, in diagtool, under installed database libraries: PASS -> MySQL
is no longer usable. We need to be seeing this under installed system libraries: PASS->MYSQLCLIENT
That latter one should never show as pass if it could not actually load the necessary mysql client functions. Is that the one you were seeing as a pass but were unable to make use of mysql client functionality? And then installing the mysql-libs package resolved it? Do you recall what the error was before it was resolved?
Comment
-
Dave and all...
I just redid this - and the issue apparently was that I grabbed the wrong "builtins". This is now working on our test system. No issues. One remaining question - the "certs" directory was not moved over or updated. Is this no longer used / needed?William Gilligan - Orange Marmalade, Inc.
www.OrangeMarmaladeinc.com
Comment
-
Correct; the certs directory was deprecated several years ago because it allowed for a scenario of an Empresa update being required to not only add new recognized roots, but more importantly, to remove roots that were eliminated / replaced for security breach reasons. We did not want to have copies of Empresa out there that would trust certs from an issuer whose root had to be replaced, or who went out of business, etc.
The replacement is to rely on the operating system's maintained root certificate bundle, in file format, not directory format. For example, on RedHat/CentOS, this would look like one of these two common locations:
cafile=/etc/ssl/certs/ca-bundle.crt
cafile=/etc/pki/tls/certs/ca-bundle.crt
which are generally part of the rpm "ca-certificates" which is hopefully receiving automated updates on the system in question.
Comment
-
I am trying to update to 5.34. I get this error when I try to run a script that uses mysql:
System library "MYSQLCLIENT" is not registered
What file do I need to edit and what do I need to put in the file? Please talk to me like I know absolutely nothing about how servers work. I can switch directories and I can edit files, that's about it.
I ran the new diagtoo.mvc file and for "installed database libraries" I get:
Pass MySQL MivaSQL
Comment
-
I figured it out!
I added this line:
<SYSTEM-LIB CODE="MYSQLCLIENT" LIBRARY="/path/to/libmysqlclient.so">
to my mivavm-v5.34.conf file.
However, the file libmysqlclient.so was not there, so I pointed to this instead:
<SYSTEM-LIB CODE="MYSQLCLIENT" LIBRARY="/usr/lib/i386-linux-gnu/libmysqlclient.so.18.0.0">
Will there by any problems pointing to the ...so.18.0.0 file rather than just a .so file?
Comment
Comment