administrador linux

Problems with mysql 5.5 upgrading ubuntu 12.04

After upgrading ubuntu to 12.04 i have run into problems with mysql.

First of all, if you are going to make an upgrade of "anything", the main tip is to make a backup of the databases and files which you consider important. If you didn't, maybe you still can save something, copy your /var/lib/mysql directory. If you finally have to reinstall your mysql, loosing the databases, maybe you will be lucky and copying again /var/lib/mysql directory could give your data back.

ok, the problem with mysql 5.5 and ubuntu 12.04.

The following packages have unmet dependencies:

 mysql-server : Depends: mysql-server-5.5 but it is not installed

E: Unmet dependencies. Try using -f.

Trying apt-get -f install did not solve anything. Tryied then apt-get install mysql-server-5.5

No luck, but then i saw this:

trying to overwrite '/usr/lib/mysql/plugin/ha_example.so', which is also in package libmysqlclient-dev

And the solution came to my mind: remove the conflictive package:

sudo dpkg -r libmysqlclient-dev

and now, 

apt-get -f install 

finally worked and did the magic. I did backups of my important databases before going to this "party", but anyway, after installing again mysql (apt-get -f intall did) everything was working fine, mysql included.

Hope it helps :-)

Buscar un fichero (recursivamente) en linux / *ix

seguro que más de una vez os habéis encontrado con este "problema". La solución, muy fácil, aunque seguro que usando el camino que probablemente habíais escogido no.

Olvida ls, para este problema necesitas la potencia de find:

find . -name 'nombreFichero.extension'

ejemplo:

find . -name 'fichero.php'

o bien, con "wildcards"

find . -name '*.php'

De nada ;-)

categorias: 

Tutorial: Monitorizar un servidor con monit

Monit ha sido para mi el descubrimiento del año. Por norma general, un servidor suele tener caidas por diferentes causas. Picos de tráfico, exceso de volumen del mismo, ...

Estas caidas provocan bastante estres a cualquier sysadmin o a alguien que tiene asignado un servidor cuyo tráfico (por suerte) va creciendo paralelamente con el proyecto.

Monit se encarga de monitorizar los servicios o demonios que le indiques, y en caso de que se cumplan determinados requisitos, los reinicia o directamente los arranca.

Instalación en Debian:

apt-get install monit

Facil, verdad? Procedemos a la configuración:

vim /etc/monit/monitrc

lo más importante, estas lineas que definen lo que vamos a monitorizar:

 

  check process apache with pidfile /var/run/apache2.pid  # /usr/local/apache/logs/httpd.pid
    start program = "/etc/init.d/apache2 start" with timeout 60 seconds
    stop program  = "/etc/init.d/apache2 stop"
    if cpu > 60% for 2 cycles then alert
    if cpu > 80% for 5 cycles then restart
    if totalmem > 200.0 MB for 5 cycles then restart
    if children > 250 then restart
    if loadavg(5min) greater than 10 for 8 cycles then stop
    #if failed host localhost port 80 protocol http
       #and request "/somefile.html"
    #   then restart
    #if failed port 443 type tcpssl protocol http
    #   with timeout 15 seconds
    #   then restart
    if 3 restarts within 5 cycles then timeout
    #depends on apache_bin
    group server

 

En este caso, apache. Una vez listo, reiniciamos

sudo service monit  restart

Y tan fácil como que ya está el monitor en marcha. 

Podemos incluir algunas lineas pare enviarnos un email en caso de caida o incidencia y algunas florituras más.

Para tener todo un poco ordenado, podemos añadir la siguiente directiva:

 

include /etc/monit/conf.d/*

 

Con lo que a partir de ahora podemos añadir ficheros de configuración al directorio monit/conf.d/, por ejemplo, mysql.monitrc:

 

check process mysql with pidfile /var/run/mysqld/mysql.pid    # /var/run/mysqld/mysqld.pid
group database
start program = "/etc/init.d/mysql start"
stop program = "/etc/init.d/mysql stop"
if failed host 127.0.0.1 port 3306 then restart
if 5 restarts within 5 cycles then timeout

 

Error típico, mysql a veces no crea un fichero pid, imprescindible para que monit pueda encontrar el servicio y comprobar que está activo. Solución? Editamos my.conf, /etc/mysql/my.cnf  en el caso de debian, y añadimos el pid-file:

 

pid-file        = /var/run/mysqld/mysqld.pid

 

Es importante que lo incluyamos dentro de [mysqld]

Lo dicho, todos nos vamos más tranquilos de vacaciones sabiendo que un amigo se encarga de vigilar nuestro servidor a nivel de demonios y servicios activos :-)