mySQL is thread safe, more or less.
Make sure you compile against libmysqlclient_r (or simply
ignore/handle SIGPIPE ).
Further info can be found at:
On 10/7/05, SGreen@stripped <SGreen@stripped> wrote:
> (please excuse the double post but I wanted to reach the two audiences I
> thought could help the best)
> This is a question about the interpreting the documentation in the manual
> for the C API.
> I searched the list archives (all lists) going back 365 days for the terms
> (unquoted): "mysql_real_connect thread" (I also looked for
> alternatives:"mysql_real_connect threaded", "mysql_real_connect multi
> threaded", etc.). I searched on Google Groups for: mysql_real_connect
> thread and found a few interesting hits. However, I am still not 100%
> clear on how to interpret some of the information on this page:
> I do a lot of MySQL administration and development using mostly the CLI
> and a few other tools but I am writing a multithreaded client to automate
> certain background processing and I need a bit of advice. According to the
> page in question the function mysql_real_connect() is not "thread-safe".
> Does that simply mean that I cannot call that function from more than one
> thread at a time or does that mean that the connection created by one call
> to the function will be visible to the other threads or what? Just how not
> "thread-safe" is it?
> Each thread will have it's own MYSQL structure and I will need to use two
> different connections per thread at the same time (am I going to need a
> separate call to mysql_init() for each connection?). I know how to wrap
> all of my calls to mysql_real_connect() in a critical section or protect
> them with a mutex if that's all I need to do . If it's not that simple and
> I do need to compile and link against another library (as the page
> suggests - sort of) can someone help me to configure my Microsoft Visual
> C++ .NET (v7) to do it? I said "sort-of" because the page also says that
> the binary distributions (which I am working with ) already contain the
> threadsafe library so I wonder if I need to rebuild anything or not. How
> can I tell?
> I am an experienced but not well-seasoned C++ developer (not using c# for
> this). I know the language and can write and debug code just fine (I can
> make stand-alone apps and DLLs all day); it's just that some of the
> complier/linker options and settings that confound me and I am having
> trouble translating the advice on the page into specifics I can work with
> for my environment.
> I know I probably left out some simple pieces of information, just let me
> know and I will respond ASAP. Please remember to CC: both lists on all
> Shawn Green
> Database Administrator
> Unimin Corporation - Spruce Pine