Apparently, though unproven, at 22:15 on Wednesday 01 September 2010, Mick did 
opine thusly:

> 2010/9/1 Aniruddha <mailingdotl...@gmail.com>:
> > On Tuesday 31 August 2010 20:30:55 Mick wrote:
> >> > But this is apparently not the proper way, because after
> >> > restarting the server, apache does not show my web-page
> >> > reporting there is no such a database. I checked it with
> >> > phpmyadmin, and really, there is absolutely no database
> >> > in mysql!
> >> > 
> >> > I quickly restored backup version which I have done just
> >> > before trying mysql-update, so my web-site is up and running.
> >> > Now I would like to update mysql the right way, I but do not
> >> > know how to do it...
> >> 
> >> Hi Jarry,
> >> 
> >> Some years ago I ran into some similar problem, I can't recall exactly
> >> what. Lost in folklore (wiki?) were some instructions to first stop
> >> mysql before you update it and I have been following them since.
> >> 
> >> I stop apach & mysql, run the update,  dispatch-conf and then restart
> >> them both.  Haven't had problems since.
> >> 
> >> There may be a better way for doing this - in which case others who know
> >> better will hopefully chime in.
> > 
> > I'm curious as well. Imo it shouldn't be necessary to stop mysql server
> > for each update.
> 
> Actually, this problem may be more sinister ... a bug?
> 
> I also updated to the latest stable and as soon as I tried to restart
> apache I got:
> =========================================
> # /etc/init.d/apache2 start
>  * apache2 has detected an error in your setup:
> apache2: Syntax error on line 155 of /etc/apache2/httpd.conf: Syntax error
> on line 4 of /etc/apache2/modules.d/70_mod_php5.conf: Cannot load
> /usr/lib/apache2/modules/libphp5.so into server: libmysqlclient.so.15:
> cannot open shared object file: No such file or directory
> =========================================
> 
> What the ... ?
> 
> Line 155 of my /etc/apache2/httpd.conf says:
> 
> Include /etc/apache2/modules.d/*.conf
> 
> Line 4 of /etc/apache2/modules.d/70_mod_php5.conf, says:
> 
> LoadModule php5_module    modules/libphp5.so
> 
> Also, I seem to have modules/libphp5.so and is world readable:
> 
> $ ls -la /usr/lib/apache2/modules/libphp5.so
> -rw-r--r-- 1 root root 5720576 Aug 13 20:09
> /usr/lib/apache2/modules/libphp5.so
> 
> 
> I am downgrading now before a lynch mob arrives, but has anyone else
> run into this problem?
> 
> PS. I'm running www-servers/apache-2.2.16


You got so close to the real answer, just one more step :-)

$ ldd /usr/lib64/apache2/modules/libphp5.so | grep mysql
        libmysqlclient_r.so.16 => /usr/lib64/mysql/libmysqlclient_r.so.16 
(0x00007f185d528000)

Think this through: you have a complex piece of software with it's config in 
memory. A library that uses a library uses a library. Then you remove that 
last library and replace it with version x+1.

How do you expect the library in the middle of the chain to know about that? 
Via magic? Voodoo? Some automatic-check-if-stuff-changed-cron-job?

No, you just simply restart services that use things that changed, especially 
if they used (then closed) the file you just changed.

You might also need revdep-rebuild to get everything back 100%. It's all just 
situation-normal for a source based distro. Nothing you can, or should, try to 
"fix".


-- 
alan dot mckinnon at gmail dot com

Reply via email to