Re: will edbi work with maria db?
- Posted by egis Jun 06, 2014
- 1745 views
Also, can you confirm that your older mysql client library was in fact 64bit by running the file command on them? (This may not be possible, but I thought it was worth a try. It's possible you had both 32bit and 64bit mysql client libraries installed without realising it.)
Not sure how to do this as it is un-installed. But it should have been 64bit.
Can you at least confirm the original location of those files? (i.e. where they were located before they wre uninstalled.)
My best indicator is that in the working version of mysql/edbi the lib_mysql had the following.
constant lib_mysql = open_dll({ "/usr/lib64/mysql/libmysqlclient.so.16", -- stupid hack for openeuphoria.org "libmysqlclient.so", "/usr/lib/libmysqlclient.so", "/usr/local/lib/libmysqlclient.so", "libmysqlclient.dylib", "libmysql.dll" })
Finally, for one last sanity check, do a file on these to confirm that they really are 64bit.
/usr/lib64/mysql/libmysqlclient.so.16 /usr/lib64/mysql/libmysqlclient.so.16.0.0
Now this gets confusing. When I use locate libmysqlclient I get
locate libmysqlclient /usr/lib64/mysql/libmysqlclient.so.16 /usr/lib64/mysql/libmysqlclient.so.16.0.0 /usr/lib64/mysql/libmysqlclient_r.so.16 /usr/lib64/mysql/libmysqlclient_r.so.16.0.0
But ls -a shows:
ls -a /usr/lib64/mysql/ . .. plugin
When I use
find /usr/lib64/mysql/ -print /usr/lib64/mysql/ /usr/lib64/mysql/plugin /usr/lib64/mysql/plugin/query_response_time.so /usr/lib64/mysql/plugin/semisync_master.so /usr/lib64/mysql/plugin/semisync_slave.so /usr/lib64/mysql/plugin/ha_innodb.so /usr/lib64/mysql/plugin/metadata_lock_info.so /usr/lib64/mysql/plugin/ha_sphinx.so /usr/lib64/mysql/plugin/locales.so /usr/lib64/mysql/plugin/ha_sequence.so /usr/lib64/mysql/plugin/query_cache_info.so /usr/lib64/mysql/plugin/sql_errlog.so /usr/lib64/mysql/plugin/ha_oqgraph.so /usr/lib64/mysql/plugin/server_audit.so /usr/lib64/mysql/plugin/handlersocket.so /usr/lib64/mysql/plugin/ha_tokudb.so /usr/lib64/mysql/plugin/auth_pam.so /usr/lib64/mysql/plugin/ha_spider.so /usr/lib64/mysql/plugin/auth_socket.so
ls says there are no files in /usr/lib64/mysql. Locate says the libmysqlclient files are in /usr/lib64/mysql.
I confirmed that mariadb is up and running.
Then edit edbi/drivers/mysql/edbi_mysql.e at line 64 (around here ), so it looks like this:
constant lib_mysql = open_dll({ "/usr/lib64/mysql/libmysqlclient.so.16.0.0", stupid hack "/usr/lib64/mysql/libmysqlclient.so.16", stupid hack "libmysqlclient.so", "/usr/lib/libmysqlclient.so", "/usr/local/lib/libmysqlclient.so", "libmysqlclient.dylib", "libmysql.dll" })
Ok it is now set to:
constant lib_mysql = open_dll({ "/usr/lib64/mysql/libmysqlclient.so.16.0.0", -- stupid hack for openeuphoria.org "libmysqlclient.so", "/usr/lib/libmysqlclient.so", "/usr/local/lib/libmysqlclient.so", "libmysqlclient.dylib", "libmysql.dll" })
I also ran file on the edbi drivers
file /usr/local/share/euphoria/edbi/drivers/mysql/* edbi_mysql.e: ASCII English text edbi_mysql.so: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, not stripped eu.cfg: ASCII text