 |
|
 |
 |
 |
Categorias de manuales y Preguntas Frecuentes |
|
 |
| Los manuales y Preguntas Frecuentes estan organizadas en diferentes categorias, por favor seleccione la categoria que desea visualizar. Ademas, puede buscar en todas las Preguntas Frecuentes, ingresando palabras claves en el cuadro "Buscar". |
|
|  |
 | Articulos |  |
|
 | Primeros pasos en mysql | |
 |
Este capítulo le brinda una introducción de aprendizaje a MySQL, a través del
uso de mysql, el programa cliente de MySQL para
crear y utilizar una base de datos simple. mysql
(a veces denominado ?monitor de terminal? o solamente
?monitor?) es un programa interactivo que le permite
conectarse a un servidor de bases de datos MySQL, ejecutar consultas, y ver los
resultados. mysql puede usarse también en modo
por lotes: se colocan las consultas en un archivo previamente armado, y se le
dice a mysql que ejecute el contenido del
archivo. En este capítulo se tratan ambas formas de uso.
Para ver una lista de las opciones utilizadas con
mysql, ejecútelo con la opción --help:
shell> |
|
 |
 | Variables de sistema del servidor mysql 5x | |
 | El servidor mantiene varias variables de sistema que indican cómo está
configurado. Todas ellas tienen valores por defecto. Pueden cambiarse al
arrancar el servidor usando opciones en la línea de comandos o en ficheros
de opciones. La mayoría de ellos pueden cambiarse en tiempo de ejecución
usando el comando SET.
El servidor mysqld mantiene dos clases
de variables. Las variables globales afectan las operaciones globales del
servidor. Las variables de sesión afectan las operaciones para conexiones
individuales de clientes.
Cuando el servidor arranca, inicializa todas las variables globales a sus
valores por defecto. Estos valores pueden cambiarse con las opciones
especificadas en los ficheros de opciones o en la línea de comandos. Una vez
que el servidor arranca, aquellas variables globales que sean dinámicas
pueden cambiarse conectando al servidor y ejectuando el comand |
|
 |
 | Variables de estado del servidor | |
 | El servidor mantiene muchas variables de estado que proveen de información
sobre sus operaciones. Puede ver estas variables y sus valores utilizando la
sentencia SHOW STATUS:
mysql> SHOW STATUS;
+-----------------------------------+------------+
| Variable_name | Value |
+-----------------------------------+------------+
| Aborted_clients | 0 |
| Aborted_connects | 0 |
| Bytes_received | 155372598 |
| Bytes_sent | 1176560426 |
?
| Connections | 30023 |
| Created_tmp_disk_tables | 0 |
| Created_tmp_files | 3 |
| Created_tmp_tables | 2 |
?
| Threads_created | 217 |
| Threads_running | 88 |
| Uptime | |
|
 |
 | Los ficheros de registro (log) de MySQL | |
 |
MySQL tiene varios archivos de registro diferentes que pueden ayudarle a
encontrar lo que está ocurriendo en mysqld:
Archivo de registro
Tipo de información registrado en
el archivo
El registro de error
Registra problemas encontrados iniciando, ejecutando, o
parando mysqld.
El registro de consultas
Registra las conexiones de clientes establecidas, y las
sentencias ejecutadas.
El registro de actualizaciones The update log
Registra las sentencias que cambian datos. Este registro
está ya en desuso.
|
|
 |
 | Conexiones mysql remotas lentas, unauthenticated user | |
 | Una vez comprobadas las conexiones, son correctas entre la maquina cliente y servidor, observamos que son muy lentas, vemos el estado de los procesos:
mysql> show processlist;
+------+----------------------+--------------------+------+---------+------+-------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+------+----------------------+--------------------+------+---------+------+-------+------------------+
| 5317 | admin | localhost | NULL | Query | 0 | NULL | show processlist |
| 5578 | unauthenticated user | x:40846 | NULL | Connect | NULL | login | NULL |
| 5579 | unauthenticated user | x:40847 | NULL | Connect | NULL | login | NULL |
| 5580 | unauthenticated user |x:40848 | NULL | Connect | NULL | login | NULL |
| 5581 | unauthenticated user | x:40849 | NULL | Connect | NULL | login | NULL |
| 5582 | unauthenticated |
|
 |
 | Error Code: 2006 - MySQL server has gone away | |
 | Al recuperar una copia de seguridad con mysqldump nos devuelve el error Error Code: 2006 - MySQL server has gone away debido a hay alguna inserción en la base de datos que es demasiado grande. Hay que ampliar el tamaño del max_allowed_packet para que permita inserciones mas grandes y no nos de error. La manera de esblecerlo permanentemente en una instalación de MySQL de linux es hacer el cambio en el my.ini. Despues de la linea [mysqld] en la sección SERVER SECTION hay que añadir:
max_allowed_packet = 16M |
|
 |
 | Reparacion de tablas mysql | |
 | La discusión en esta sección describe cómo usar myisamchk en tablas MyISAM (extensiones .MYI y .MYD).
También puede ( y debe, si es posible) usar los comandos CHECK TABLE y REPAIR TABLE para chequear y reparar tablas MyISAM . Consulte Sección 13.5.2.3, “Sintaxis de CHECK TABLE” y Sección 13.5.2.6, “Sintaxis de REPAIR TABLE”.
Los síntomas de tablas corruptas incluyen consultas que abortan inesperadamente y errores observables como los siguientes:
tbl_name.frm is locked against change
Can't find file tbl_name.MYI (Errcode: ###)
Unexpected end of file
Record file is crashed
Got error ### from table handler
Para obtener ejecución acerca de los errores puede ejectuar perror ###, donde ### es el número de error. El siguiente ejemplo muestra cómo usar perror para encontrar el significado de la mayoría de errores comunes que indican un problema con la tabla:
shell> perror 126 127 132 134 135 136 141 144 145
126 = Index file is crashed / Wrong file format
127 = Reco |
|
 |
 | 1062 Error Duplicate entry | |
 | Cuando trabajamos sobre mysql replica y se produce un intento de inserción de un registro con key duplicada se produce un fallo de la replica con este error:
"1062 | Error 'Duplicate entry 'xyz' for key 1' on query. Default database: 'db'. Query: 'INSERT INTO ..."
Solucionarlo es tan sencillo como añadir en el my.cnf:
slave-skip-errors = 1062
Y reiniciar los servidores mysql, resincronizara por donde iba.
Esta norma es aplicable para otro tipo de errores aunque mucho cuidado con lo que se hace, estudiar bien antes de que error se trata. |
|
 |
 | Mysql low querys o mysql queris lentos | |
 | Vamos a activar en el mysql el logueo de querys lentos:
Abrimos el fichero my.cnf, normalmente esta en /etc/my.cnf, si no esta allí ponemos locate my.cnf y lo buscamos.
Añadimos dentro de:
[mysqld]
Lo siguiente:
log-slow-queries=/var/log/mysql-slow-queries.log
long_query_time = 1
log-queries-not-using-indexes
log-slow-queries, establece el lugar físico del archivo de log
long_query_time, establece a partir de que cantidad de segundos se considera lenta una query
log-queries-not-using-indexes, también logueará las queries lentas que no utilizen índices
Creamos el fichero mysq-slow-queries:
touch /var/log/mysql-slow-queries.log
chown mysql.root /var/log/mysql-slow-queries.log
Y reiniciamos el servidor
/etc/init.d/mysql stop
/etc/init.d/mysql start
Si queremos analizar el log por ejemplo de querys de más de 20 sg:
mysqldumpslow -t 20 /var/log/mysql-slow-queries.log
|
|
 |
|
|
|
 |
|
|
 |