Someone early in the thread said that it can be fixed by using
install_name_tool.

sudo install_name_tool -change libmysqlclient.16.dylib
/full/path/to/libmysqlclient.16.dylib {file which can't load dylib}

Stuff elsewhere I have read has suggested that something like this is the
only way. When they built the shared library they screwed up with the
naming or something.

Another link about it is:

http://bugs.mysql.com/bug.php?id=61243

but I have seen other pages somewhere which describe the whole problem
better, I just don't remember where.

Graham


On 6 December 2012 11:39, Joe Siravo <[email protected]> wrote:

> Graham, i found this searching google and was wondering how you fixed this
> issue? i am having the same issue with libmysqlclient_r.so.16 and i am
> not sure what to do... any suggestions? just a fyi i cannot get root access
> from my hosting provider.
>
>
> On Monday, November 21, 2011 7:22:57 PM UTC-5, Graham Dumpleton wrote:
>
>> Some details on this finally.
>>
>> FWIW, this may be a MySQL 5.5 issue.
>>
>> At least I used to do this on MySQL 5.1 and had no problems at all. I
>> have though since upgraded to MySQL 5.5 and see potential for
>> problems.
>>
>> If you try and build MySQL client lib and don't have MySQL bin
>> directory in path it will fail with:
>>
>> $ python setup.py build
>> sh: mysql_config: command not found
>> Traceback (most recent call last):
>>   File "setup.py", line 15, in <module>
>>     metadata, options = get_config()
>>   File "/Users/graham/Packages/MySQL-**python-1.2.3/setup_posix.py",
>> line 43, in get_config
>>     libs = mysql_config("libs_r")
>>   File "/Users/graham/Packages/MySQL-**python-1.2.3/setup_posix.py",
>> line 24, in mysql_config
>>     raise EnvironmentError("%s not found" % (mysql_config.path,))
>> EnvironmentError: mysql_config not found
>>
>> If however the MySQL bin directory is in path you would on MacOS X
>> 10.6 (Snow Leopard) get:
>>
>> $ PATH=/usr/local/mysql/bin:$**PATH python setup.py build
>> running build
>> running build_py
>> creating build
>> creating build/lib.macosx-10.6-**universal-2.6
>> copying _mysql_exceptions.py -> build/lib.macosx-10.6-**universal-2.6
>> creating build/lib.macosx-10.6-**universal-2.6/MySQLdb
>> copying MySQLdb/__init__.py -> build/lib.macosx-10.6-**
>> universal-2.6/MySQLdb
>> copying MySQLdb/converters.py -> build/lib.macosx-10.6-**
>> universal-2.6/MySQLdb
>> copying MySQLdb/connections.py -> build/lib.macosx-10.6-**
>> universal-2.6/MySQLdb
>> copying MySQLdb/cursors.py -> build/lib.macosx-10.6-**
>> universal-2.6/MySQLdb
>> copying MySQLdb/release.py -> build/lib.macosx-10.6-**
>> universal-2.6/MySQLdb
>> copying MySQLdb/times.py -> build/lib.macosx-10.6-**universal-2.6/MySQLdb
>> creating build/lib.macosx-10.6-**universal-2.6/MySQLdb/**constants
>> copying MySQLdb/constants/__init__.py ->
>> build/lib.macosx-10.6-**universal-2.6/MySQLdb/**constants
>> copying MySQLdb/constants/CR.py ->
>> build/lib.macosx-10.6-**universal-2.6/MySQLdb/**constants
>> copying MySQLdb/constants/FIELD_TYPE.**py ->
>> build/lib.macosx-10.6-**universal-2.6/MySQLdb/**constants
>> copying MySQLdb/constants/ER.py ->
>> build/lib.macosx-10.6-**universal-2.6/MySQLdb/**constants
>> copying MySQLdb/constants/FLAG.py ->
>> build/lib.macosx-10.6-**universal-2.6/MySQLdb/**constants
>> copying MySQLdb/constants/REFRESH.py ->
>> build/lib.macosx-10.6-**universal-2.6/MySQLdb/**constants
>> copying MySQLdb/constants/CLIENT.py ->
>> build/lib.macosx-10.6-**universal-2.6/MySQLdb/**constants
>> running build_ext
>> building '_mysql' extension
>> creating build/temp.macosx-10.6-**universal-2.6
>> gcc-4.2 -fno-strict-aliasing -fno-common -dynamic -DNDEBUG -g -fwrapv
>> -Os -Wall -Wstrict-prototypes -DENABLE_DTRACE -pipe
>> -Dversion_info=(1,2,3,'final',**0) -D__version__=1.2.3
>> -I/usr/local/mysql/include
>> -I/System/Library/Frameworks/**Python.framework/Versions/2.6/**
>> include/python2.6
>> -c _mysql.c -o build/temp.macosx-10.6-**universal-2.6/_mysql.o -Os -g
>> -fno-common -fno-strict-aliasing -arch x86_64
>> In file included from _mysql.c:36:
>> /usr/local/mysql/include/my_**config.h:329:1: warning: "SIZEOF_SIZE_T"
>> redefined
>> In file included from
>> /System/Library/Frameworks/**Python.framework/Versions/2.6/**
>> include/python2.6/Python.h:9,
>>                  from pymemcompat.h:10,
>>                  from _mysql.c:29:
>> /System/Library/Frameworks/**Python.framework/Versions/2.6/**
>> include/python2.6/pymacconfig.**h:33:1:
>> warning: this is the location of the previous definition
>> In file included from _mysql.c:36:
>> /usr/local/mysql/include/my_**config.h:422:1: warning: "HAVE_WCSCOLL"
>> redefined
>> In file included from
>> /System/Library/Frameworks/**Python.framework/Versions/2.6/**
>> include/python2.6/Python.h:8,
>>                  from pymemcompat.h:10,
>>                  from _mysql.c:29:
>> /System/Library/Frameworks/**Python.framework/Versions/2.6/**
>> include/python2.6/pyconfig.h:**803:1:
>> warning: this is the location of the previous definition
>> gcc-4.2 -Wl,-F. -bundle -undefined dynamic_lookup
>> build/temp.macosx-10.6-**universal-2.6/_mysql.o -L/usr/local/mysql/lib
>> -lmysqlclient_r -lpthread -o
>> build/lib.macosx-10.6-**universal-2.6/_mysql.so -arch x86_64
>>
>> Important to note here is that it links against "-lmysqlclient_r".
>>
>> The "_r" version is reentrant and is what should be used if running
>> multithread process.
>>
>> Which library is linked is dependent on code defined in
>> 'setup_posix.py' of the MySQL package.
>>
>> In that file it has:
>>
>> def get_config():
>>     import os, sys
>>     from setup_common import get_metadata_and_options, enabled,
>> create_release_file
>>
>>     metadata, options = get_metadata_and_options()
>>
>>     if 'mysql_config' in options:
>>         mysql_config.path = options['mysql_config']
>>
>>     extra_objects = []
>>     static = enabled(options, 'static')
>>     if enabled(options, 'embedded'):
>>         libs = mysql_config("libmysqld-libs")
>>         client = "mysqld"
>>     elif enabled(options, 'threadsafe'):
>>         libs = mysql_config("libs_r")
>>         client = "mysqlclient_r"
>>         if not libs:
>>             libs = mysql_config("libs")
>>             client = "mysqlclient"
>>     else:
>>         libs = mysql_config("libs")
>>         client = "mysqlclient"
>>
>> The flags actually come from site.cfg which has by default:
>>
>> [options]
>> # embedded: link against the embedded server library
>> # threadsafe: use the threadsafe client
>> # static: link against a static library (probably required for embedded)
>>
>> embedded = False
>> threadsafe = True
>> #threadsafe = False
>> static = False
>>
>> So, by default if build package from source yourself (not using pip)
>> it should find threadsafe and link against _r version of library.
>>
>> For MySQL 5.5 at least:
>>
>> $ ls -las /usr/local/mysql/lib
>> total 368624
>>      0 drwxr-xr-x  12 root  wheel       408 31 Oct 14:23 .
>>      0 drwxr-xr-x  16 root  wheel       544 12 Oct 23:21 ..
>>   7400 -rwxr-xr-x   1 root  wheel   3787624 12 Oct 23:19
>> libmysqlclient.18.dylib
>>  19552 -rw-r--r--   1 root  wheel  10008760 12 Oct 23:19 libmysqlclient.a
>>      8 lrwxr-xr-x   1 root  wheel        23 31 Oct 14:23
>> libmysqlclient.dylib -> libmysqlclient.18.dylib
>>      8 lrwxr-xr-x   1 root  wheel        20 31 Oct 14:23
>> libmysqlclient_r.18.dylib -> libmysqlclient.dylib
>>      8 lrwxr-xr-x   1 root  wheel        16 31 Oct 14:23
>> libmysqlclient_r.a -> libmysqlclient.a
>>      8 lrwxr-xr-x   1 root  wheel        20 31 Oct 14:23
>> libmysqlclient_r.dylib -> libmysqlclient.dylib
>> 175552 -rw-r--r--   1 root  wheel  89879064 12 Oct 23:16 libmysqld-debug.a
>> 166064 -rw-r--r--   1 root  wheel  85023840 12 Oct 23:19 libmysqld.a
>>     24 -rw-r--r--   1 root  wheel      8488 12 Oct 23:19
>> libmysqlservices.a
>>      0 drwxr-xr-x  14 root  wheel       476 12 Oct 23:21 plugin
>>
>> Under MySQL 5.1 am pretty sure the _r library wasn't a symlink.
>>
>> Changing site.cfg to not say threadsafe and ensure -l option matches
>> library used makes no difference.
>>
>> So basically this looks like an issue with how MySQL 5.5 libraries are
>> built. There didn't used to be an issue with MySQL 5.1.
>>
>> FWIW, I now get:
>>
>> $ otool -L build/lib.macosx-10.6-**universal-2.6/_mysql.so
>> build/lib.macosx-10.6-**universal-2.6/_mysql.so:
>>         libmysqlclient.18.**dylib (compatibility version 18.0.0, current
>> version 18.0.0)
>>         /usr/lib/libSystem.B.**dylib (compatibility version 1.0.0,
>> current
>> version 125.2.11)
>>
>> Under 5.1 it used to resolve the library no problem.
>>
>> I will have to rebuild my MySQL Python client library properly at some
>> point and will look more at the problem then.
>>
>> Graham
>>
>> On 20 November 2011 23:00, mathew davis <[email protected]> wrote:
>> > Thanks Graham,
>> >
>> > the current solution at least allows me to get on with other
>> > development work,
>> > and I'd be happy to try and help resolve this when you can.
>> >
>> > Mat
>> >
>> > On Nov 20, 6:45 am, Graham Dumpleton <[email protected]>
>> > wrote:
>> >> Sorry for not replying, but I have lost Internet access at home and
>> may not
>> >> get it back for a few more days.
>> >>
>> >> Right now you are treating the symptom and not the cause.
>> >>
>> >> What you have may still not work reliably because the extension is only
>> >> linked with single threaded version of MySQL library and not the re
>> entrant
>> >> _r version.
>> >>
>> >> Not linking with _r version would be caused by MySQL config script not
>> >> being found or not running properly when pip was run to install module.
>> >>
>> >> I would like to sort this out properly still when I get my Internet
>> back.
>> >>
>> >> Graham
>> >>
>> >> On Saturday, 19 November 2011, Simon Kesenci <[email protected]>
>> wrote:
>> >> > I've solved this with install_name_tool:
>> >>
>> >> > sudo install_name_tool -change libmysqlclient.16.dylib
>> >>
>> >> /full/path/to/libmysqlclient.**16.dylib {file which can't load dylib}
>> >>
>> >>
>> >>
>> >>
>> >>
>> >>
>> >>
>> >>
>> >>
>> >> > --S.
>> >>
>> >> > On Nov 18, 2011, at 16:33, Graham Dumpleton <
>> [email protected]>
>> >> wrote:
>> >>
>> >> >> This is an issue with how MySQLdb Python module is built. Can you
>> tell
>> >> >> me how you installed it?
>> >>
>> >> >> Did you use pip, or did you download package as tar.gz and run
>> setup.py
>> >> in it?
>> >>
>> >> >> I have tried twice before to sort this out with people on IRC but
>> they
>> >> >> would not do what I asked them to help me solve it properly. I am at
>> >> >> least most of the way along sorting out what the issue is however.
>> :-)
>> >>
>> >> >> Graham
>> >>
>> >> >> On 19 November 2011 08:41, mathew davis <[email protected]>
>> wrote:
>> >> >>> I am trying to run django on osx 10.7 (lion) with apache mod_wsgi
>> and
>> >> >>> virtualenv.
>> >> >>> My site works if I use the django testing server:
>> >>
>> >> >>>>      (baseline)otter:hello mathew$ python manage.py runserver
>> >>
>> >> >>> but it doesn't work when I run apache. The core of the error seems
>> to be
>> >>
>> >> >>>>      Library not loaded: libmysqlclient.16.dylib
>> >>
>> >> >>> I think its to do with the path apache is using to locate
>> >> >>> libmysqlclient.16.dylib
>> >>
>> >> >>> when I run otool in the lib directory it looks good
>> >>
>> >> >>>>      otter:lib mathew$ pwd
>> >> >>>>          /usr/local/mysql/lib
>> >>
>> >> >>>>      otter:lib mathew$ otool -L libmysqlclient.16.dylib
>> >> >>>>          libmysqlclient.16.dylib:
>> >> >>>>              libmysqlclient.16.dylib (compatibility version
>> 16.0.0,
>> >> current
>> >> >>>> version 16.0.0)
>> >> >>>>              /usr/lib/libSystem.B.dylib (compatibility version
>> 1.0.0,
>> >> >>>> current version 125.0.1)
>> >>
>> >> >>> but from outside it can't find it
>> >>
>> >> >>>>      otter:lib mathew$ cd /
>> >> >>>>      otter:/ mathew$ otool -L libmysqlclient.16.dylib
>> >> >>>>      otool: can't open file: libmysqlclient.16.dylib (No such
>> file or
>> >> >>>> directory)
>> >>
>> >> >>> if i manually set DYLD_LIBRARY_PATH otool works
>> >>
>> >> >>>> otter:lib mathew$ DYLD_LIBRARY_PATH=/usr/local/**mysql/lib
>> otter:lib
>> >> >>>> mathew$ otool -L libmysqlclient.16.dylib libmysqlclient.16.dylib:
>> >> >>>>     libmysqlclient.16.dylib (compatibility version 16.0.0, current
>> >> >>>> version 16.0.0)     /usr/lib/libSystem.B.dylib (compatibility
>> version
>> >> >>>> 1.0.0, current version 125.0.1)
>> >>
>> >> >>> When I run the django testing server, my .bash_profile sets up the
>> >> >>> virtualenv and the path to the mysql dynamic library
>> >>
>> >> >>>>      export DYLD_LIBRARY_PATH=/usr/local/**
>> mysql/lib/:$DYLD_LIBRARY_PATH
>> >> >>>>      export PATH
>> >>
>> >> >>> When i run apache it finds my virtualenv paths, but it doesn't
>> seem to
>> >> find
>> >> >>> the dynamic library path.
>> >>
>> >> >>> I tried adding this path to /usr/sbin/envvars
>> >>
>> >>  
>> >> DYLD_LIBRARY_PATH="/usr/lib:/**usr/local/mysql/lib:$DYLD_**LIBRARY_PATH">>>>
>>      export DYLD_LIBRARY_PATH
>> >>
>> >> >>> and to /private/etc/paths.d/libmysql
>> >>
>> >> >>>>      /usr/local/mysql/lib
>> >>
>> >> >>> then restarted the machine
>> >> >>> but that has not changed the error message.
>> >>
>> >> >>>>      Error loading MySQLdb module:
>> >>
>> >> dlopen(/usr/local/python_**virtualenv/baseline/lib/**
>> python2.7/site-packages/_**mysql.so,
>> >>
>> >>
>> >>
>> >>
>> >>
>> >>
>> >>
>> >> >>>> 2):
>> >> >>>>          Library not loaded: libmysqlclient.16.dylib
>> >>
>> >> >>> I don't think is a permissions issue:
>> >>
>> >> >>>>      -rwxr-xr-x  1 root  wheel  3787328  4 Dec  2010
>> >> >>>> libmysqlclient.16.dylib
>> >>
>> >> >>>>      drwxr-xr-x  39 root    wheel   1394 18 Nov 21:07 /
>> >> >>>>      drwxr-xr-x@ 15 root    wheel    510 24 Oct 22:10 /usr
>> >> >>>>      drwxrwxr-x  20 root    admin    680  2 Nov 20:22 /usr/local
>> >
>> > --
>> > You received this message because you are subscribed to the Google
>> Groups "modwsgi" group.
>> > To post to this group, send email to [email protected].
>> > To unsubscribe from this group, send email to modwsgi+u...@**
>> googlegroups.com.
>>
>> > For more options, visit this group at http://groups.google.com/**
>> group/modwsgi?hl=en <http://groups.google.com/group/modwsgi?hl=en>.
>> >
>> >
>>
>>  --
> You received this message because you are subscribed to the Google Groups
> "modwsgi" group.
> To view this discussion on the web visit
> https://groups.google.com/d/msg/modwsgi/-/bPsejT2rbusJ.
>
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected].
> For more options, visit this group at
> http://groups.google.com/group/modwsgi?hl=en.
>

-- 
You received this message because you are subscribed to the Google Groups 
"modwsgi" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/modwsgi?hl=en.

Reply via email to