Note that before starting mysqld with
--log
you should check all your tables with
myisamchk. See
Capítulo 5, Administración de bases de datos.
If mysqld dies or hangs, you should start
mysqld with --log
. When
mysqld dies again, you can examine the end of
the log file for the query that killed
mysqld.
If you are using --log
without a file name,
the log is stored in the database directory as
In
most cases it is the last query in the log file that killed
mysqld, but if possible you should verify
this by restarting mysqld and executing the
found query from the mysql command-line
tools. If this works, you should also test all complicated
queries that didn't complete.
host_name
.log
You can also try the command EXPLAIN
on all
SELECT
statements that takes a long time to
ensure that mysqld is using indexes properly.
See Sección 7.2.1, “Sintaxis de EXPLAIN
(Obtener información acerca de
un SELECT
)”.
You can find the queries that take a long time to execute by
starting mysqld with
--log-slow-queries
. See
Sección 5.10.4, “El registro de consultas lentas (Slow Query Log)”.
If you find the text mysqld restarted
in the
error log file (normally named
hostname.err
) you probably have found a
query that causes mysqld to fail. If this
happens, you should check all your tables with
myisamchk (see
Capítulo 5, Administración de bases de datos), and test the
queries in the MySQL log files to see if one doesn't work. If
you find such a query, try first upgrading to the newest MySQL
version. If this doesn't help and you can't find anything in the
mysql
mail archive, you should report the bug
to a MySQL mailing list. The mailing lists are described at
http://lists.mysql.com/, which also has links to
online list archives.
If you have started mysqld with
myisam-recover
, MySQL automatically checks
and tries to repair MyISAM
tables if they are
marked as 'not closed properly' or 'crashed'. If this happens,
MySQL writes an entry in the hostname.err
file 'Warning: Checking table ...'
which is
followed by Warning: Repairing table
if the
table needs to be repaired. If you get a lot of these errors,
without mysqld having died unexpectedly just
before, then something is wrong and needs to be investigated
further. See Sección 5.3.1, “Opciones del comando mysqld”.
It's not a good sign if mysqld did die
unexpectedly, but in this case one shouldn't investigate the
Checking table...
messages but instead try to
find out why mysqld died.
Ésta es una traducción del manual de referencia de MySQL, que puede encontrarse en dev.mysql.com. El manual de referencia original de MySQL está escrito en inglés, y esta traducción no necesariamente está tan actualizada como la versión original. Para cualquier sugerencia sobre la traducción y para señalar errores de cualquier tipo, no dude en dirigirse a mysql-es@vespito.com.