Access denied Error
MySQL server has gone away Error
Can't connect to [local] MySQL server Error
Client does not support authentication protocol error
Host '...' is blocked Error
Too many connections Error
Some non-transactional changed tables couldn't be rolled back Error
Out of memory Error
Packet too large Error
The table is full Error
Can't create/write to file Error
Commands out of sync Error in Client
Ignoring user Error
Table 'xxx' doesn't exist Error
Can't initialize character set xxx error
If you get ERROR '...' not found (errno: 23), Can't open
file: ... (errno: 24), or any other error with errno 23 or
errno 24 from MySQL, it means that you haven't allocated
enough file descriptors for MySQL. You can use the
perror utility to get a description of what the error number
means:
shell> perror 23 File table overflow shell> perror 24 Too many open files shell> perror 11 Resource temporarily unavailable
The problem here is that mysqld is trying to keep open too many
files simultaneously. You can either tell mysqld not to open so
many files at once or increase the number of file descriptors
available to mysqld.
To tell mysqld to keep open fewer files at a time, you can make
the table cache smaller by using the -O table_cache=32 option to
mysqld_safe (the default value is 64). Reducing the value of
max_connections will also reduce the number of open files (the
default value is 90).
To change the number of file descriptors available to mysqld, you
can use the option --open-files-limit=# to mysqld_safe or
-O open-files-limit=# to mysqld.
See section 4.5.7.4 SHOW VARIABLES.
The easiest way to do that is to add the option to your option file.
See section 4.1.2 `my.cnf' Option Files. If you have an old mysqld version that
doesn't support this, you can edit the mysqld_safe script. There
is a commented-out line ulimit -n 256 in the script. You can
remove the '#' character to uncomment this line, and change the
number 256 to affect the number of file descriptors available to
mysqld.
ulimit (and open-files-limit) can increase the number of
file descriptors, but only up to the limit imposed by the operating
system. There is also a 'hard' limit that can only be overridden if you
start mysqld_safe or mysqld as root (just remember that
you need to also use the --user=... option in this case). If you
need to increase the OS limit on the number of file descriptors
available to each process, consult the documentation for your operating
system.
Note that if you run the tcsh shell, ulimit will not work!
tcsh will also report incorrect values when you ask for the current
limits! In this case you should start mysqld_safe with sh!