Para eso necesitamos el paquete: python-mysqldb
Lo instalamos
apt-get install python-mysqldb
Aparte necesitamos mysql-server claro esta y mysql-client.
Y bueno solo es un apunte ya que no basta con instalar con pip MySQL-python.
Para eso necesitamos el paquete: python-mysqldb
Lo instalamos
apt-get install python-mysqldb
Aparte necesitamos mysql-server claro esta y mysql-client.
Y bueno solo es un apunte ya que no basta con instalar con pip MySQL-python.
Un error común al instalar mysql-python para usar mysql con django puede ser este:
pip install MySQL-python Downloading/unpacking MySQL-python Real name of requirement MySQL-python is MySQL-python Downloading MySQL-python-1.2.4.zip (113Kb): 113Kb downloaded Running setup.py egg_info for package MySQL-python Downloading http://pypi.python.org/packages/source/d/distribute/distribute-0.6.28.tar.gz Extracting in /tmp/tmpT2lFmq Now working in /tmp/tmpT2lFmq/distribute-0.6.28 Building a Distribute egg in /home/build/MySQL-python /home/build/MySQL-python/distribute-0.6.28-py2.7.egg sh: mysql_config: command not found Traceback (most recent call last): File "", line 14, in File "/home/build/MySQL-python/setup.py", line 18, in metadata, options = get_config() File "setup_posix.py", line 43, in get_config libs = mysql_config("libs_r") File "setup_posix.py", line 25, in mysql_config raise EnvironmentError("%s not found" % (mysql_config.path,)) EnvironmentError: mysql_config not found Complete output from command python setup.py egg_info: Downloading http://pypi.python.org/packages/source/d/distribute/distribute-0.6.28.tar.gz Extracting in /tmp/tmpT2lFmq Now working in /tmp/tmpT2lFmq/distribute-0.6.28 Building a Distribute egg in /home/build/MySQL-python /home/build/MySQL-python/distribute-0.6.28-py2.7.egg sh: mysql_config: command not found Traceback (most recent call last): File " ", line 14, in File "/home/build/MySQL-python/setup.py", line 18, in metadata, options = get_config() File "setup_posix.py", line 43, in get_config libs = mysql_config("libs_r") File "setup_posix.py", line 25, in mysql_config raise EnvironmentError("%s not found" % (mysql_config.path,)) EnvironmentError: mysql_config not found ---------------------------------------- Command python setup.py egg_info failed with error code 1 Storing complete log in /root/.pip/pip.log
La razón es falta de dependencias, tenemos que instalar el mysql-server y lo más importante para solucionar el error es instalar el paquete libmysqlclient-dev
Lo instalamos con apt:
apt-get install libmysqlclient-dev
También para evitar otros errores con pip necesitamos instalar el paquete de desarrollo de python:
apt-get install python-dev
Luego de eso ya podemos instalar mysql-python:
pip install MySQL-python Downloading/unpacking MySQL-python Running setup.py egg_info for package MySQL-python Installing collected packages: MySQL-python Running setup.py install for MySQL-python building '_mysql' extension gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -Dversion_info=(1,2,4,'final',1) -D__version__=1.2.4 -I/usr/include/mysql -I/usr/include/python2.7 -c _mysql.c -o build/temp.linux-x86_64-2.7/_mysql.o -DBIG_JOINS=1 -fno-strict-aliasing -g In file included from _mysql.c:44:0: /usr/include/mysql/my_config.h:422:0: warning: "HAVE_WCSCOLL" redefined [enabled by default] /usr/include/python2.7/pyconfig.h:890:0: note: this is the location of the previous definition gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro build/temp.linux-x86_64-2.7/_mysql.o -L/usr/lib/x86_64-linux-gnu -lmysqlclient_r -lpthread -lz -lm -lrt -ldl -o build/lib.linux-x86_64-2.7/_mysql.so Successfully installed MySQL-python Cleaning up...
Notación simbólica;
--- Sin permiso --x Ejecución -w- Escritura -wx Escritura y Ejecución r-- Lectura r-x Lectura y Ejecución rw- Lectura y Escritura rwx Lectura, escritura y ejecución
Visto de forma numeral del 1 al 7.
0 --- Sin permiso 1 --x Ejecución 2 -w- Escritura 3 -wx Escritura y Ejecución 4 r-- Lectura 5 r-x Lectura y Ejecución 6 rw- Lectura y Escritura 7 rwx Lectura, escritura y ejecución
Bien esta es la explicación básica, luego lo de por que son 3 números (777) y demás es por que se da permisos al propietario, al grupo y a todos los demás, esto ya lo he explicado hace mucho tiempo en este enlace: como usar chmod
Es viejo todo esto y muy sencillo pero me dio por publicarlo.
Nos podemos topar con ese error en mysql y con otros errores de memoria en procesos.
El problema es como bien dice el error que el servidor no tiene memoria cosa que puede pasar, tal vez el servidor tenga 2 gigas de ram y el mysql tenga una configuración para usar más de 5 o 6gb y por eso el error, así que la solución sería agregar memoria el server, pero…
Si el server 24 gigas de ram, o 60 o 128 y no estamos usando ni ni el 40% de la ram significa que tenemos otro problema o alguna limitación.
Lo primero es ver la salida de ulimit -a
Si no tenemos todo en ulimited o valores altos por ahí viene la restricción.
El lugar para buscar la solución esta en: /etc/security/limits.d/ o /etc/security/limits.conf
Se que no es el post más agradable y detallado que han visto pero prometo mejorarlo ya que ahora no tengo tiempo para poner capturas ni nada por el estilo, pero con eso pueden solucionar el problema.
Luego pongo información más detallada del problema en cuanto acabe de trabajar.
Otro comando útil y muy sencillo es el de buscar por medio de la consola, el comando es find y podemos usarlo también para buscar archivos por peso o más bien listarlos por peso, por ejemplo buscar logs que pesen más de 100 MB en un directorio y sus subdirectorios.
Encontrar los archivos más pesados de una carpeta
find . -type f -size +1073741824 -ls
Ese comando nos mostrara todos los archivos que pesen más de 1GB, el peso esta en bytes.
También podemos buscar todos los que pesen menos de 1GB o de un mega ( el peso que queramos, es el mismo comando solo que en vez de poner un más ( + ) delante del número, ponemos un menos.
find . -type f -size -1073741824 -ls
Un comando muy sencillo para ver cuantos archivos contiene un directorio y sus subdirectorios o bien solo el directorio actual:
Ver archivos en directorio actual y en los subdirectorios que tenga:
find . -type f | wc -l
Ver número de archivos que hay solo en el directorio actual:
find . -maxdepth 1 -type f | wc -l
4 fantasticas herramientas para monitorear la red en linux que no pueden faltar entre tus programas de monitoreo.
Explicación detallada de lo que hacen y como instalarlos, entre ellos iptraf, iftop, bmon, darkstat y además algunas menciones a otros.
Un ingeniero que fue llamado a arreglar una computadora muy grande y extremadamente compleja… una computadora que tenia un coste de 12 millones de dolares
Sentado frente a la pantalla, oprimió unas cuantas teclas, asintió con la cabeza, murmuró algo para sí mismo y apagó el aparato. Procedió a sacar un pequeño destornillador de su bolsillo y dio vuelta y media a un minúsculo tornillo. Entonces encendió de nuevo la computadora y comprobó que estaba trabajando perfectamente.
El presidente de la compañía se mostró encantado y se ofreció a pagar la cuenta en el acto.
-¿Cuánto le debo? -preguntó
– Son mil dólares, si me hace el favor.
– ¡¿Mil dólares?! ¿Mil dólares por unos momentos de trabajo? ¿Mil dólares por apretar un simple tornillito? ¡Ya sé que mi computadora cuesta 12 millones de dólares, pero mil dólares es una cantidad disparatada! La pagaré sólo si me manda una factura perfectamente detallada que la justifique.
El ingeniero asintió con la cabeza y se fue. A la mañana siguiente, el presidente recibió la factura, la leyó con cuidado, sacudió la cabeza procedió a pagarla en el acto, sin chistar.
La factura decía:
Servicios prestados:
Apretar un tornillo…………………… 1 dólar.
Saber qué tornillo apretar…………. 999 dólares.
Aquí una pequeña explicación de que es la cache que se guarda en la memoria de linux, también si esta bien o no liberarla y otros detalles que deberían saber si creen que su PC o servidor consume mucha RAM.
En forobeta han hecho una pregunta interesante sobre un servidor que tenia el load alto o sea mucha carga y además han dejado una captura, aquí dejo la captura y mi respuesta, OJO que dejo aquí la respuesta y demás por que es un tema muy interesante este:
En la imagen vemos que el mysql consube bastante, en muchos casos es poro algún plugin, alguna query muy larga, algo que hace muchas consultas y en otros casos es por que el disco duro es muy lento y tiene que esta haciendo muchas lecturas y escrituras y eso retrasa la base de datos, ahora bien, esto lo vemos en donde dice WA 8%, no es mucho, pero si se mantiene siempre o siempre hay IO wait y sube hará que todo nuestro server este lento, aunque como es solo una captura no sabemos eso con exactitud.
En todo caso el Wait no es siempre provocado por mysql, así que he aquí algunas deducciones y cosas que podemos hacer o al menos que yo haría.
Pues digo lo mismo que datacenter1, parece que tienes problema de IO.
Aunque depende de muchas cosas.
Puedes tener un server con un disco lento o saturado y eso genera mucha carga.
Puede ser tu CPU, he tenido muchos clientes que en un dedicado van algo mal y en un VPS mucho mejor,, claro el VPS es de calidad, con CPU XEON 2.4 y 20 MB de cache cada core, y el load no sube de 1 o 2 en cambio el dedicado un i7 de los de primera generación o un 15 o un i3 o peor aún un q8xxx
Puede ser que tu CPU sea algo flojo.
Puede que tu disco este saturado y por eso el IO tan algo.
Puede que simplemente sea mala configuración.
O puede que tus webs consuman mucho y tu server sea algo flojo, además mal configurado y el disco este saturado lectura/escritura y aparte sea hardware viejo DDR2 etc.Solución, cambiar de servidor.
Solución 2 configurar bien el servidor.
Solución para el IO wait, intentar cachear, evitar que se use mucho el disco, principalmente en el tmp de mysql y en los caches de las webs, opciones;
– Montar tmp y caches en RAM si se tiene mucha RAM, no hay problema.
– Complementar con memcached | Intentar con varnish | Apc y xcache para reducir el consumo de PHP | deshabilitar algunos logs | checar disco duro.
En resumen, entre menos usemos el disco más rápido será todo, si tenemos SSD o SSD en raid10 o sas15k también en RAID 10 tendremos mejor rendimiento, pero si no también es mejor intentar aprovechar la RAM y montar ahí algunas carpetas.
Eso es todo, pueden ver todo el tema y las demás respuestas aquí: http://forobeta.com/dedicado/181204-cpu-load-alto-ram-baja-que.html