目次
This appendix lists common problems and errors that may occur and potential resolutions, in addition to listing the errors that may appear when you call MySQL from any host language. The first section covers problems and resolutions. Detailed information on errors is provided; The first list displays server error messages. The second list displays client program messages.
This section lists some common problems and error messages that you may encounter. It describes how to determine the causes of the problems and what to do to solve them.
When you run into a problem, the first thing you should do is to find out which program or piece of equipment is causing it:
If you have one of the following symptoms, then it is probably a hardware problems (such as memory, motherboard, CPU, or hard disk) or kernel problem:
The keyboard doesn't work. This can normally be checked by pressing the Caps Lock key. If the Caps Lock light doesn't change, you have to replace your keyboard. (Before doing this, you should try to restart your computer and check all cables to the keyboard.)
The mouse pointer doesn't move.
The machine doesn't answer to a remote machine's pings.
Other programs that are not related to MySQL don't behave correctly.
Your system restarted unexpectedly. (A faulty user-level program should never be able to take down your system.)
In this case, you should start by checking all your cables and run some diagnostic tool to check your hardware! You should also check whether there are any patches, updates, or service packs for your operating system that could likely solve your problem. Check also that all your libraries (such as
glibc) are up to date.It's always good to use a machine with ECC memory to discover memory problems early.
If your keyboard is locked up, you may be able to recover by logging in to your machine from another machine and executing
kbd_mode -a.Please examine your system log file (
/var/log/messagesor similar) for reasons for your problem. If you think the problem is in MySQL, you should also examine MySQL's log files. See 「MySQL サーバ ログ」.If you don't think you have hardware problems, you should try to find out which program is causing problems. Try using top, ps, Task Manager, or some similar program, to check which program is taking all CPU or is locking the machine.
Use top, df, or a similar program to check whether you are out of memory, disk space, file descriptors, or some other critical resource.
If the problem is some runaway process, you can always try to kill it. If it doesn't want to die, there is probably a bug in the operating system.
If after you have examined all other possibilities and you have concluded that the MySQL server or a MySQL client is causing the problem, it's time to create a bug report for our mailing list or our support team. In the bug report, try to give a very detailed description of how the system is behaving and what you think is happening. You should also state why you think that MySQL is causing the problem. Take into consideration all the situations in this chapter. State any problems exactly how they appear when you examine your system. Use the 「copy and paste」 method for any output and error messages from programs and log files.
Try to describe in detail which program is not working and all symptoms you see. We have in the past received many bug reports that state only 「the system doesn't work.」 This doesn't provide us with any information about what could be the problem.
If a program fails, it's always useful to know the following information:
Has the program in question made a segmentation fault (did it dump core)?
Is the program taking up all available CPU time? Check with top. Let the program run for a while, it may simply be evaluating something computationally intensive.
If the mysqld server is causing problems, can you get any response from it with mysqladmin -u root ping or mysqladmin -u root processlist?
What does a client program say when you try to connect to the MySQL server? (Try with mysql, for example.) Does the client jam? Do you get any output from the program?
When sending a bug report, you should follow the outline described in 「質問またはバグの報告」.
- B.1.2.1.
Access denied - B.1.2.2.
Can't connect to [local] MySQL server - B.1.2.3.
Client does not support authentication protocol - B.1.2.4. Password Fails When Entered Interactively
- B.1.2.5.
Host 'host_name' is blocked - B.1.2.6.
Too many connections - B.1.2.7.
Out of memory - B.1.2.8.
MySQL server has gone away - B.1.2.9.
Packet too large - B.1.2.10. Communication Errors and Aborted Connections
- B.1.2.11.
The table is full - B.1.2.12.
Can't create/write to file - B.1.2.13.
Commands out of sync - B.1.2.14.
Ignoring user - B.1.2.15.
Table 'tbl_name' doesn't exist - B.1.2.16.
Can't initialize character set - B.1.2.17. '
File' Not Found and Similar Errors
This section lists some errors that users frequently encounter when running MySQL programs. Although the problems show up when you try to run client programs, the solutions to many of the problems involves changing the configuration of the MySQL server.
An Access denied error can have many
causes. Often the problem is related to the MySQL accounts
that the server allows client programs to use when connecting.
See 「Access denied エラーの原因」, and
「権限システムの機能」.
A MySQL client on Unix can connect to the
mysqld server in two different ways: By
using a Unix socket file to connect through a file in the
filesystem (default /tmp/mysql.sock), or
by using TCP/IP, which connects through a port number. A Unix
socket file connection is faster than TCP/IP, but can be used
only when connecting to a server on the same computer. A Unix
socket file is used if you don't specify a hostname or if you
specify the special hostname localhost.
If the MySQL server is running on Windows 9x or Me, you can
connect only via TCP/IP. If the server is running on Windows
NT, 2000, XP, or 2003 and is started with the
--enable-named-pipe option, you can also
connect with named pipes if you run the client on the host
where the server is running. The name of the named pipe is
MySQL by default. If you don't give a
hostname when connecting to mysqld, a MySQL
client first tries to connect to the named pipe. If that
doesn't work, it connects to the TCP/IP port. You can force
the use of named pipes on Windows by using
. as the hostname.
The error (2002) Can't connect to ...
normally means that there is no MySQL server running on the
system or that you are using an incorrect Unix socket filename
or TCP/IP port number when trying to connect to the server.
The error (2003) Can't connect to MySQL server on
'
indicates that the network connection has been refused. You
should check that there is a MySQL server running, that it has
network connections enabled, the network port you specified is
the one configured on the server, and that the TCP/IP port you
are using has not been blocked by a firewall or port blocking
service.
server' (10061)
Start by checking whether there is a process named mysqld running on your server host. (Use ps xa | grep mysqld on Unix or the Task Manager on Windows.) If there is no such process, you should start the server. See 「MySQL サーバの起動とトラブルシューティング」.
If a mysqld process is running, you can
check it by trying the following commands. The port number or
Unix socket filename might be different in your setup.
host_ip represents the IP number of the
machine where the server is running.
shell>mysqladmin versionshell>mysqladmin variablesshell>mysqladmin -h `hostname` version variablesshell>mysqladmin -h `hostname` --port=3306 versionshell>mysqladmin -h host_ip versionshell>mysqladmin --protocol=socket --socket=/tmp/mysql.sock version
Note the use of backticks rather than forward quotes with the
hostname command; these cause the output of
hostname (that is, the current hostname) to
be substituted into the mysqladmin command.
If you have no hostname command or are
running on Windows, you can manually type the hostname of your
machine (without backticks) following the
-h option. You can also try -h
127.0.0.1 to connect with TCP/IP to the local host.
Here are some reasons the Can't connect to local
MySQL server error might occur:
mysqld is not running. Check your operating system's process list to ensure the mysqld process is present.
You're running a MySQL server on Windows with many TCP/IP connections to it. If you're experiencing that quite often your clients get that error, you can find a workaround here: 「
Connection to MySQL Server Failing on Windows」.You are running on a system that uses MIT-pthreads. If you are running on a system that doesn't have native threads, mysqld uses the MIT-pthreads package. See 「MySQL Community Server がサポートしているオペレーティング システム」. However, not all MIT-pthreads versions support Unix socket files. On a system without socket file support, you must always specify the hostname explicitly when connecting to the server. Try using this command to check the connection to the server:
shell>
mysqladmin -h `hostname` versionSomeone has removed the Unix socket file that mysqld uses (
/tmp/mysql.sockby default). For example, you might have a cron job that removes old files from the/tmpdirectory. You can always run mysqladmin version to check whether the Unix socket file that mysqladmin is trying to use really exists. The fix in this case is to change the cron job to not removemysql.sockor to place the socket file somewhere else. See 「How to Protect or Change the MySQL Unix Socket File」.You have started the mysqld server with the
--socket=/path/to/socketoption, but forgotten to tell client programs the new name of the socket file. If you change the socket pathname for the server, you must also notify the MySQL clients. You can do this by providing the same--socketoption when you run client programs. You also need to ensure that clients have permission to access themysql.sockfile. To find out where the socket file is, you can do:shell>
netstat -ln | grep mysqlYou are using Linux and one server thread has died (dumped core). In this case, you must kill the other mysqld threads (for example, with
killor with themysql_zapscript) before you can restart the MySQL server. See 「What to Do If MySQL Keeps Crashing」.The server or client program might not have the proper access privileges for the directory that holds the Unix socket file or the socket file itself. In this case, you must either change the access privileges for the directory or socket file so that the server and clients can access them, or restart mysqld with a
--socketoption that specifies a socket filename in a directory where the server can create it and where client programs can access it.
If you get the error message Can't connect to MySQL
server on some_host, you can try the following
things to find out what the problem is:
Check whether the server is running on that host by executing
telnet some_host 3306and pressing the Enter key a couple of times. (3306 is the default MySQL port number. Change the value if your server is listening to a different port.) If there is a MySQL server running and listening to the port, you should get a response that includes the server's version number. If you get an error such astelnet: Unable to connect to remote host: Connection refused, then there is no server running on the given port.If the server is running on the local host, try using mysqladmin -h localhost variables to connect using the Unix socket file. Verify the TCP/IP port number that the server is configured to listen to (it is the value of the
portvariable.)Make sure that your mysqld server was not started with the
--skip-networkingoption. If it was, you cannot connect to it using TCP/IP.Check to make sure that there is no firewall blocking access to MySQL. Your firewall may be configured on the basis of the application being executed, or the post number used by MySQL for communication (3306 by default).
Under Linux or Unix, check your IP tables (or similar) configuration to ensure that the port has not been blocked.
Under Windows, applications such as ZoneAlarm and the Windows XP personal firewall may need to be configured to allow external access to a MySQL server.
If you are running under Linux and Security-Enhanced Linux (SELinux) is enabled, make sure you have disabled SELinux protection for the
mysqldprocess.
When you're running a MySQL server on Windows with many
TCP/IP connections to it, and you're experiencing that quite
often your clients get a Can't connect to MySQL
server error, the reason might be that Windows
doesn't allow for enough ephemeral (short-lived) ports to
serve those connections.
By default, Windows allows 5000 ephemeral (short-lived) TCP
ports to the user. After any port is closed it will remain
in a TIME_WAIT status for 120 seconds.
This status allows the connection to be reused at a much
lower cost than reinitializing a brand new connection.
However, the port will not be available again until this
time expires.
With a small stack of available TCP ports (5000) and a high
number of TCP ports being open and closed over a short
period of time along with the TIME_WAIT
status you have a good chance for running out of ports.
There are two ways to address this problem:
Reduce the number of TCP ports consumed quickly by investigating connection pooling or persistent connections where possible
Tune some settings in the Windows registry (see below)
IMPORTANT: The following procedure involves modifying the Windows registry. Before you modify the registry, make sure to back it up and make sure that you understand how to restore the registry if a problem occurs. For information about how to back up, restore, and edit the registry, view the following article in the Microsoft Knowledge Base: http://support.microsoft.com/kb/256986/EN-US/.
Start Registry Editor (
Regedt32.exe).Locate the following key in the registry:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
On the
Editmenu, clickAdd Value, and then add the following registry value:Value Name: MaxUserPort Data Type: REG_DWORD Value: 65534
This sets the number of ephemeral ports available to any user. The valid range is between 5000 and 65534 (decimal). The default value is 0x1388 (5000 decimal).
On the
Editmenu, clickAdd Value, and then add the following registry value:Value Name: TcpTimedWaitDelay Data Type: REG_DWORD Value: 30
This sets the number of seconds to hold a TCP port connection in
TIME_WAITstate before closing. The valid range is between 0 (zero) and 300 (decimal). The default value is 0x78 (120 decimal).Quit Registry Editor.
Reboot the machine.
Note: Undoing the above should be as simple as deleting the registry entries you've created.
MySQL 5.1 uses an authentication protocol based on a password hashing algorithm that is incompatible with that used by older (pre-4.1) clients. If you upgrade the server from 4.0, attempts to connect to it with an older client may fail with the following message:
shell> mysql
Client does not support authentication protocol requested
by server; consider upgrading MySQL client
To solve this problem, you should use one of the following approaches:
Upgrade all client programs to use a 4.1.1 or newer client library.
When connecting to the server with a pre-4.1 client program, use an account that still has a pre-4.1-style password.
Reset the password to pre-4.1 style for each user that needs to use a pre-4.1 client program. This can be done using the
SET PASSWORDstatement and theOLD_PASSWORD()function:mysql>
SET PASSWORD FOR->'some_user'@'some_host' = OLD_PASSWORD('newpwd');Alternatively, use
UPDATEandFLUSH PRIVILEGES:mysql>
UPDATE mysql.user SET Password = OLD_PASSWORD('->newpwd')WHERE Host = 'mysql>some_host' AND User = 'some_user';FLUSH PRIVILEGES;Substitute the password you want to use for 「
newpwd」 in the preceding examples. MySQL cannot tell you what the original password was, so you'll need to pick a new one.Tell the server to use the older password hashing algorithm:
Start mysqld with the
--old-passwordsoption.Assign an old-format password to each account that has had its password updated to the longer 4.1 format. You can identify these accounts with the following query:
mysql>
SELECT Host, User, Password FROM mysql.user->WHERE LENGTH(Password) > 16;For each account record displayed by the query, use the
HostandUservalues and assign a password using theOLD_PASSWORD()function and eitherSET PASSWORDorUPDATE, as described earlier.
Note: In older versions of
PHP, the mysql extension does not support
the authentication protocol in MySQL 4.1.1 and higher. This is
true regardless of the PHP version being used. If you wish to
use the mysql extension with MySQL 4.1 or
newer, you may need to follow one of the options discussed
above for configuring MySQL to work with old clients. The
mysqli extension (stands for "MySQL,
Improved"; added in PHP 5) is compatible with the improved
password hashing employed in MySQL 4.1 and higher, and no
special configuration of MySQL need be done to use this MySQL
client library. For more information about the
mysqli extension, see
http://php.net/mysqli.
It may also be possible to compile the older
mysql extension against the new MySQL
client library. This is beyond the scope of this Manual;
consult the PHP documentation for more information. You also
be able to obtain assistance with these issues in our
MySQL with PHP
forum.
For additional background on password hashing and authentication, see 「MySQL 4.1 のパスワードハッシュ」.
MySQL client programs prompt for a password when invoked with
a --password or -p option
that has no following password value:
shell> mysql -u user_name -p
Enter password:
On some systems, you may find that your password works when
specified in an option file or on the command line, but not
when you enter it interactively at the Enter
password: prompt. This occurs when the library
provided by the system to read passwords limits password
values to a small number of characters (typically eight). That
is a problem with the system library, not with MySQL. To work
around it, change your MySQL password to a value that is eight
or fewer characters long, or put your password in an option
file.
If you get the following error, it means that
mysqld has received many connect requests
from the host
' that
have been interrupted in the middle:
host_name'
Host 'host_name' is blocked because of many connection errors.
Unblock with 'mysqladmin flush-hosts'
The number of interrupted connect requests allowed is
determined by the value of the
max_connect_errors system variable. After
max_connect_errors failed requests,
mysqld assumes that something is wrong (for
example, that someone is trying to break in), and blocks the
host from further connections until you execute a
mysqladmin flush-hosts command or issue a
FLUSH HOSTS statement. See
「システム変数」.
By default, mysqld blocks a host after 10 connection errors. You can adjust the value by starting the server like this:
shell> mysqld_safe --max_connect_errors=10000 &
If you get this error message for a given host, you should
first verify that there isn't anything wrong with TCP/IP
connections from that host. If you are having network
problems, it does you no good to increase the value of the
max_connect_errors variable.
If you get a Too many connections error
when you try to connect to the mysqld
server, this means that all available connections are in use
by other clients.
The number of connections allowed is controlled by the
max_connections system variable. Beginning
with MySQL 5.1.15, its default value is 151 to improve
performance when MySQL is used with the Apache Web server.
(Previously, the default was 100.) If you need to support more
connections, you should restart mysqld with
a larger value for this variable.
MySQL Enterprise
Subscribers to the MySQL Network Monitoring and Advisory
Service receive advice on dynamically configuring the
max_connections variable — avoiding
failed connection attempts. For more information see,
http://www.mysql.com/products/enterprise/advisors.html.
mysqld actually allows
max_connections+1 clients to connect. The
extra connection is reserved for use by accounts that have the
SUPER privilege. By granting the
SUPER privilege to administrators and not
to normal users (who should not need it), an administrator can
connect to the server and use SHOW
PROCESSLIST to diagnose problems even if the maximum
number of unprivileged clients are connected. See
「SHOW PROCESSLIST 構文」.
The maximum number of connections MySQL can support depends on the quality of the thread library on a given platform. Linux or Solaris should be able to support 500-1000 simultaneous connections, depending on how much RAM you have and what your clients are doing. Static Linux binaries provided by MySQL AB can support up to 4000 connections.
If you issue a query using the mysql client program and receive an error like the following one, it means that mysql does not have enough memory to store the entire query result:
mysql: Out of memory at line 42, 'malloc.c' mysql: needed 8136 byte (8k), memory in use: 12481367 bytes (12189k) ERROR 2008: MySQL client ran out of memory
To remedy the problem, first check whether your query is
correct. Is it reasonable that it should return so many rows?
If not, correct the query and try again. Otherwise, you can
invoke mysql with the
--quick option. This causes it to use the
mysql_use_result() C API function to
retrieve the result set, which places less of a load on the
client (but more on the server).
This section also covers the related Lost connection
to server during query error.
The most common reason for the MySQL server has gone
away error is that the server timed out and closed
the connection. In this case, you normally get one of the
following error codes (which one you get is operating
system-dependent):
| Error Code | Description |
CR_SERVER_GONE_ERROR | The client couldn't send a question to the server. |
CR_SERVER_LOST | The client didn't get an error when writing to the server, but it didn't get a full answer (or any answer) to the question. |
By default, the server closes the connection after eight hours
if nothing has happened. You can change the time limit by
setting the wait_timeout variable when you
start mysqld. See
「システム変数」.
If you have a script, you just have to issue the query again
for the client to do an automatic reconnection. This assumes
that you have automatic reconnection in the client enabled
(which is the default for the mysql
command-line client).
Some other common reasons for the MySQL server has
gone away error are:
You (or the db administrator) has killed the running thread with a
KILLstatement or a mysqladmin kill command.You tried to run a query after closing the connection to the server. This indicates a logic error in the application that should be corrected.
A client application running on a different host does not have the necessary privileges to connect to the MySQL server from that host.
You got a timeout from the TCP/IP connection on the client side. This may happen if you have been using the commands:
mysql_options(..., MYSQL_OPT_READ_TIMEOUT,...)ormysql_options(..., MYSQL_OPT_WRITE_TIMEOUT,...). In this case increasing the timeout may help solve the problem.You have encountered a timeout on the server side and the automatic reconnection in the client is disabled (the
reconnectflag in theMYSQLstructure is equal to 0).You are using a Windows client and the server had dropped the connection (probably because
wait_timeoutexpired) before the command was issued.The problem on Windows is that in some cases MySQL doesn't get an error from the OS when writing to the TCP/IP connection to the server, but instead gets the error when trying to read the answer from the connection.
Prior to MySQL 5.1.8, even if the
reconnectflag in theMYSQLstructure is equal to 1, MySQL does not automatically reconnect and re-issue the query as it doesn't know if the server did get the original query or not.The solution to this is to either do a
mysql_pingon the connection if there has been a long time since the last query (this is whatMyODBCdoes) or setwait_timeouton the mysqld server so high that it in practice never times out.You can also get these errors if you send a query to the server that is incorrect or too large. If mysqld receives a packet that is too large or out of order, it assumes that something has gone wrong with the client and closes the connection. If you need big queries (for example, if you are working with big
BLOBcolumns), you can increase the query limit by setting the server'smax_allowed_packetvariable, which has a default value of 1MB. You may also need to increase the maximum packet size on the client end. More information on setting the packet size is given in 「Packet too large」.An
INSERTorREPLACEstatement that inserts a great many rows can also cause these sorts of errors. Either one of these statements sends a single request to the server irrespective of the number of rows to be inserted; thus, you can often avoid the error by reducing the number of rows sent perINSERTorREPLACE.You also get a lost connection if you are sending a packet 16MB or larger if your client is older than 4.0.8 and your server is 4.0.8 and above, or the other way around.
It is also possible to see this error if hostname lookups fail (for example, if the DNS server on which your server or network relies goes down). This is because MySQL is dependent on the host system for name resolution, but has no way of knowing whether it is working — from MySQL's point of view the problem is indistinguishable from any other network timeout.
You may also see the
MySQL server has gone awayerror if MySQL is started with the--skip-networkingoption.Another networking issue that can cause this error occurs if if the MySQL port (default 3306) is blocked by your firewall, thus preventing any connections at all to the MySQL server.
You can also encounter this error with applications that fork child processes, all of which try to use the same connection to the MySQL server. This can be avoided by using a separate connection for each child process.
You have encountered a bug where the server died while executing the query.
You can check whether the MySQL server died and restarted by executing mysqladmin version and examining the server's uptime. If the client connection was broken because mysqld crashed and restarted, you should concentrate on finding the reason for the crash. Start by checking whether issuing the query again kills the server again. See 「What to Do If MySQL Keeps Crashing」.
You can get more information about the lost connections by
starting mysqld with the --log-warnings=2
option. This logs some of the disconnected errors in the
hostname.err file. See
「エラー ログ」.
If you want to create a bug report regarding this problem, be sure that you include the following information:
Indicate whether the MySQL server died. You can find information about this in the server error log. See 「What to Do If MySQL Keeps Crashing」.
If a specific query kills mysqld and the tables involved were checked with
CHECK TABLEbefore you ran the query, can you provide a reproducible test case? See Making a Test Case If You Experience Table Corruption.What is the value of the
wait_timeoutsystem variable in the MySQL server? (mysqladmin variables gives you the value of this variable.)Have you tried to run mysqld with the
--logoption to determine whether the problem query appears in the log?
See also 「Communication Errors and Aborted Connections」, and 「質問またはバグの報告」.
A communication packet is a single SQL statement sent to the MySQL server, a single row that is sent to the client, or a binary log event sent from a master replication server to a slave.
The largest possible packet that can be transmitted to or from a MySQL 5.1 server or client is 1GB.
When a MySQL client or the mysqld server
receives a packet bigger than
max_allowed_packet bytes, it issues a
Packet too large error and closes the
connection. With some clients, you may also get a
Lost connection to MySQL server during
query error if the communication packet is too
large.
Both the client and the server have their own
max_allowed_packet variable, so if you want
to handle big packets, you must increase this variable both in
the client and in the server.
If you are using the mysql client program,
its default max_allowed_packet variable is
16MB. To set a larger value, start mysql
like this:
shell> mysql --max_allowed_packet=32M
That sets the packet size to 32MB.
The server's default max_allowed_packet
value is 1MB. You can increase this if the server needs to
handle big queries (for example, if you are working with big
BLOB columns). For example, to set the
variable to 16MB, start the server like this:
shell> mysqld --max_allowed_packet=16M
You can also use an option file to set
max_allowed_packet. For example, to set the
size for the server to 16MB, add the following lines in an
option file:
[mysqld] max_allowed_packet=16M
It is safe to increase the value of this variable because the extra memory is allocated only when needed. For example, mysqld allocates more memory only when you issue a long query or when mysqld must return a large result row. The small default value of the variable is a precaution to catch incorrect packets between the client and server and also to ensure that you do not run out of memory by using large packets accidentally.
You can also get strange problems with large packets if you
are using large BLOB values but have not
given mysqld access to enough memory to
handle the query. If you suspect this is the case, try adding
ulimit -d 256000 to the beginning of the
mysqld_safe script and restarting
mysqld.
The server error log can be a useful source of information
about connection problems. See 「エラー ログ」. If
you start the server with the --log-warnings
option, you might find messages like this in your error log:
010301 14:38:23 Aborted connection 854 to db: 'users' user: 'josh'
If Aborted connections messages appear in
the error log, the cause can be any of the following:
The client program did not call
mysql_close()before exiting.The client had been sleeping more than
wait_timeoutorinteractive_timeoutseconds without issuing any requests to the server. See 「システム変数」.The client program ended abruptly in the middle of a data transfer.
When any of these things happen, the server increments the
Aborted_clients status variable.
The server increments the Aborted_connects
status variable when the following things happen:
A client doesn't have privileges to connect to a database.
A client uses an incorrect password.
A connection packet doesn't contain the right information.
It takes more than
connect_timeoutseconds to get a connect packet. See 「システム変数」.
If these kinds of things happen, it might indicate that someone is trying to break into your server!
MySQL Enterprise
For reasons of security and performance the advisors
provided by the MySQL Network Monitoring and Advisory
Service pay special attention to the
Aborted_connections status variable. For
more information see,
http://www.mysql.com/products/enterprise/advisors.html.
Other reasons for problems with aborted clients or aborted connections:
Use of Ethernet protocol with Linux, both half and full duplex. Many Linux Ethernet drivers have this bug. You should test for this bug by transferring a huge file via FTP between the client and server machines. If a transfer goes in burst-pause-burst-pause mode, you are experiencing a Linux duplex syndrome. The only solution is switching the duplex mode for both your network card and hub/switch to either full duplex or to half duplex and testing the results to determine the best setting.
Some problem with the thread library that causes interrupts on reads.
Badly configured TCP/IP.
Faulty Ethernets, hubs, switches, cables, and so forth. This can be diagnosed properly only by replacing hardware.
The
max_allowed_packetvariable value is too small or queries require more memory than you have allocated for mysqld. See 「Packet too large」.
See also 「MySQL server has gone away」.
The maximum effective table size for MySQL databases is usually determined by operating system constraints on file sizes, not by MySQL internal limits. The following table lists some examples of operating system file-size limits. This is only a rough guide and is not intended to be definitive. For the most up-to-date information, be sure to check the documentation specific to your operating system.
| Operating System | File-size Limit |
| Win32 w/ FAT/FAT32 | 2GB/4GB |
| Win32 w/ NTFS | 2TB (possibly larger) |
| Linux 2.2-Intel 32-bit | 2GB (LFS: 4GB) |
| Linux 2.4+ | (using ext3 filesystem) 4TB |
| Solaris 9/10 | 16TB |
| MacOS X w/ HFS+ | 2TB |
| NetWare w/NSS filesystem | 8TB |
Windows users, please note that FAT and VFAT (FAT32) are not considered suitable for production use with MySQL. Use NTFS instead.
On Linux 2.2, you can get MyISAM tables
larger than 2GB in size by using the Large File Support (LFS)
patch for the ext2 filesystem. Most current Linux
distributions are based on kernel 2.4 or higher and include
all the required LFS patches. On Linux 2.4, patches also exist
for ReiserFS to get support for big files (up to 2TB). With
JFS and XFS, petabyte and larger files are possible on Linux.
For a detailed overview about LFS in Linux, have a look at Andreas Jaeger's Large File Support in Linux page at http://www.suse.de/~aj/linux_lfs.html.
If you do encounter a full-table error, there are several reasons why it might have occurred:
You are using a MySQL server older than 3.23 and an in-memory temporary table becomes larger than
tmp_table_sizebytes. To avoid this problem, you can use the--tmp_table_size=option to make mysqld increase the temporary table size or use the SQL optionvalSQL_BIG_TABLESbefore you issue the problematic query. See 「SET構文」.You can also start mysqld with the
--big-tablesoption. This is exactly the same as usingSQL_BIG_TABLESfor all queries.As of MySQL 3.23, this problem should not occur. If an in-memory temporary table becomes larger than
tmp_table_size, the server automatically converts it to a disk-basedMyISAMtable.The
InnoDBstorage engine maintainsInnoDBtables within a tablespace that can be created from several files. This allows a table to exceed the maximum individual file size. The tablespace can include raw disk partitions, which allows extremely large tables. The maximum tablespace size is 64TB.If you are using
InnoDBtables and run out of room in theInnoDBtablespace. In this case, the solution is to extend theInnoDBtablespace. See 「InnoDBデータとログ ファイルの追加と削除」.You are using
MyISAMtables on an operating system that supports files only up to 2GB in size and you have hit this limit for the data file or index file.You are using a
MyISAMtable and the space required for the table exceeds what is allowed by the internal pointer size.MyISAMcreates tables to allow up to 256GB by default, but this limit can be changed up to the maximum allowable size of 65,536TB (2567 – 1 bytes).If you need a
MyISAMtable that is larger than the default limit and your operating system supports large files, theCREATE TABLEstatement supportsAVG_ROW_LENGTHandMAX_ROWSoptions. See 「CREATE TABLE構文」. The server uses these options to determine how large a table to allow.If the pointer size is too small for an existing table, you can change the options with
ALTER TABLEto increase a table's maximum allowable size. See 「ALTER TABLE構文」.ALTER TABLE
tbl_nameMAX_ROWS=1000000000 AVG_ROW_LENGTH=nnn;You have to specify
AVG_ROW_LENGTHonly for tables withBLOBorTEXTcolumns; in this case, MySQL can't optimize the space required based only on the number of rows.To change the default size limit for
MyISAMtables, set themyisam_data_pointer_size, which sets the number of bytes used for internal row pointers. The value is used to set the pointer size for new tables if you do not specify theMAX_ROWSoption. The value ofmyisam_data_pointer_sizecan be from 2 to 7. A value of 4 allows tables up to 4GB; a value of 6 allows tables up to 256TB.You can check the maximum data and index sizes by using this statement:
SHOW TABLE STATUS FROM
db_nameLIKE 'tbl_name';You also can use myisamchk -dv /path/to/table-index-file. See 「
SHOW構文」, or 「myisamchk — MyISAM テーブル メンテナンス ユーティリティ」.Other ways to work around file-size limits for
MyISAMtables are as follows:If your large table is read-only, you can use myisampack to compress it. myisampack usually compresses a table by at least 50%, so you can have, in effect, much bigger tables. myisampack also can merge multiple tables into a single table. See 「myisampack — 圧縮された、読み取り専用MyISAM テーブルを作成する。」.
MySQL includes a
MERGElibrary that allows you to handle a collection ofMyISAMtables that have identical structure as a singleMERGEtable. See 「MERGEストレージエンジン」.
You are using the
NDBstorage engine, in which case you need to increase the values for theDataMemoryandIndexMemoryconfiguration parameters in yourconfig.inifile. See 「データノードの設定パラメータ」.You are using the
MEMORY(HEAP) storage engine; in this case you need to increase the value of themax_heap_table_sizesystem variable. See 「システム変数」.
If you get an error of the following type for some queries, it means that MySQL cannot create a temporary file for the result set in the temporary directory:
Can't create/write to file '\\sqla3fe_0.ism'.
The preceding error is a typical message for Windows; the Unix message is similar.
One fix is to start mysqld with the
--tmpdir option or to add the option to the
[mysqld] section of your option file. For
example, to specify a directory of
C:\temp, use these lines:
[mysqld] tmpdir=C:/temp
The C:\temp directory must exist and have
sufficient space for the MySQL server to write to. See
「オプションファイルの使用」.
Another cause of this error can be permissions issues. Make
sure that the MySQL server can write to the
tmpdir directory.
Check also the error code that you get with perror. One reason the server cannot write to a table is that the filesystem is full:
shell> perror 28
Error code 28: No space left on device
If you get Commands out of sync; you can't run this
command now in your client code, you are calling
client functions in the wrong order.
This can happen, for example, if you are using
mysql_use_result() and try to execute a new
query before you have called
mysql_free_result(). It can also happen if
you try to execute two queries that return data without
calling mysql_use_result() or
mysql_store_result() in between.
If you get the following error, it means that when
mysqld was started or when it reloaded the
grant tables, it found an account in the
user table that had an invalid password.
Found wrong password for user
'
some_user'@'some_host';
ignoring user
As a result, the account is simply ignored by the permission system.
The following list indicates possible causes of and fixes for this problem:
You may be running a new version of mysqld with an old
usertable. You can check this by executing mysqlshow mysql user to see whether thePasswordcolumn is shorter than 16 characters. If so, you can correct this condition by running thescripts/add_long_passwordscript.The account has an old password (eight characters long) and you didn't start mysqld with the
--old-protocoloption. Update the account in theusertable to have a new password or restart mysqld with the--old-protocoloption.You have specified a password in the
usertable without using thePASSWORD()function. Use mysql to update the account in theusertable with a new password, making sure to use thePASSWORD()function:mysql>
UPDATE user SET Password=PASSWORD('->newpwd')WHERE User='some_user' AND Host='some_host';
If you get either of the following errors, it usually means that no table exists in the default database with the given name:
Table 'tbl_name' doesn't exist Can't find file: 'tbl_name' (errno: 2)
In some cases, it may be that the table does exist but that you are referring to it incorrectly:
Because MySQL uses directories and files to store databases and tables, database and table names are case sensitive if they are located on a filesystem that has case-sensitive filenames.
Even for filesystems that are not case sensitive, such as on Windows, all references to a given table within a query must use the same lettercase.
You can check which tables are in the default database with
SHOW TABLES. See 「SHOW 構文」.
You might see an error like this if you have character set problems:
MySQL Connection Failed: Can't initialize character set charset_name
This error can have any of the following causes:
The character set is a multi-byte character set and you have no support for the character set in the client. In this case, you need to recompile the client by running configure with the
--with-charset=orcharset_name--with-extra-charsets=option. See 「典型的な configure オプション」.charset_nameAll standard MySQL binaries are compiled with
--with-extra-character-sets=complex, which enables support for all multi-byte character sets. See 「データおよびソート用キャラクタ セット」.The character set is a simple character set that is not compiled into mysqld, and the character set definition files are not in the place where the client expects to find them.
In this case, you need to use one of the following methods to solve the problem:
Recompile the client with support for the character set. See 「典型的な configure オプション」.
Specify to the client the directory where the character set definition files are located. For many clients, you can do this with the
--character-sets-diroption.Copy the character definition files to the path where the client expects them to be.
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
the MySQL server. You can use the perror
utility to get a description of what the error number means:
shell>perror 23Error code 23: File table overflow shell>perror 24Error code 24: Too many open files shell>perror 11Error code 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 reducing the
value of the table_open_cache system
variable (the default value is 64). Reducing the value of
max_connections also reduces the number of
open files (the default value is 100).
To change the number of file descriptors available to
mysqld, you can use the
--open-files-limit option to
mysqld_safe or (as of MySQL 3.23.30) set
the open_files_limit system variable. See
「システム変数」. The easiest way to
set these values is to add an option to your option file. See
「オプションファイルの使用」. If you have an old version of
mysqld that doesn't support setting the
open files limit, 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 set the number of file descriptors
to be made available to mysqld.
--open-files-limit and
ulimit 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 be
overridden only if you start mysqld_safe or
mysqld as root (just
remember that you also need to start the server with the
--user option in this case so that it does
not continue to run as root after it starts
up). If you need to increase the operating system limit on the
number of file descriptors available to each process, consult
the documentation for your system.
Note: If you run the tcsh shell, ulimit does not work! tcsh also reports incorrect values when you ask for the current limits. In this case, you should start mysqld_safe using sh.
When you are linking an application program to use the MySQL
client library, you might get undefined reference errors for
symbols that start with mysql_, such as
those shown here:
/tmp/ccFKsdPa.o: In function `main': /tmp/ccFKsdPa.o(.text+0xb): undefined reference to `mysql_init' /tmp/ccFKsdPa.o(.text+0x31): undefined reference to `mysql_real_connect' /tmp/ccFKsdPa.o(.text+0x57): undefined reference to `mysql_real_connect' /tmp/ccFKsdPa.o(.text+0x69): undefined reference to `mysql_error' /tmp/ccFKsdPa.o(.text+0x9a): undefined reference to `mysql_close'
You should be able to solve this problem by adding
-Ldir_path -lmysqlclient at the end of your
link command, where dir_path represents the
pathname of the directory where the client library is located.
To determine the correct directory, try this command:
shell> mysql_config --libs
The output from mysql_config might indicate other libraries that should be specified on the link command as well.
If you get undefined reference errors for
the uncompress or
compress function, add
-lz to the end of your link command and try
again.
If you get undefined reference errors for a
function that should exist on your system, such as
connect, check the manual page for the
function in question to determine which libraries you should
add to the link command.
You might get undefined reference errors
such as the following for functions that don't exist on your
system:
mf_format.o(.text+0x201): undefined reference to `__lxstat'
This usually means that your MySQL client library was compiled on a system that is not 100% compatible with yours. In this case, you should download the latest MySQL source distribution and compile MySQL yourself. See 「ソースのディストリビューションを使用した MySQL のインストール」.
You might get undefined reference errors at runtime when you
try to execute a MySQL program. If these errors specify
symbols that start with mysql_ or indicate
that the mysqlclient library can't be
found, it means that your system can't find the shared
libmysqlclient.so library. The fix for
this is to tell your system to search for shared libraries
where the library is located. Use whichever of the following
methods is appropriate for your system:
Add the path to the directory where
libmysqlclient.sois located to theLD_LIBRARY_PATHenvironment variable.Add the path to the directory where
libmysqlclient.sois located to theLD_LIBRARYenvironment variable.Copy
libmysqlclient.soto some directory that is searched by your system, such as/lib, and update the shared library information by executingldconfig.
Another way to solve this problem is by linking your program
statically with the -static option, or by
removing the dynamic MySQL libraries before linking your code.
Before trying the second method, you should be sure that no
other programs are using the dynamic libraries.
If you have problems with file permissions, the
UMASK environment variable might be set
incorrectly when mysqld starts. For
example, MySQL might issue the following error message when
you create a table:
ERROR: Can't find file: 'path/with/filename.frm' (Errcode: 13)
The default UMASK value is
0660. You can change this behavior by
starting mysqld_safe as follows:
shell>UMASK=384 # = 600 in octalshell>export UMASKshell>mysqld_safe &
By default, MySQL creates database directories with an access
permission value of 0700. You can modify
this behavior by setting the UMASK_DIR
variable. If you set its value, new directories are created
with the combined UMASK and
UMASK_DIR values. For example, if you want
to give group access to all new directories, you can do this:
shell>UMASK_DIR=504 # = 770 in octalshell>export UMASK_DIRshell>mysqld_safe &
In MySQL 3.23.25 and above, MySQL assumes that the value for
UMASK and UMASK_DIR is
in octal if it starts with a zero.
See 「環境変数」.
If you have never set a root password for
MySQL, the server does not require a password at all for
connecting as root. However, it is
recommended to set a password for each account. See
「セキュリティ ガイドライン」.
If you set a root password previously, but
have forgotten what it was, you can set a new password. The
following procedure is for Windows systems. The procedure for
Unix systems is given later in this section.
The procedure under Windows:
Log on to your system as Administrator.
Stop the MySQL server if it is running. For a server that is running as a Windows service, go to the Services manager:
Start Menu -> Control Panel -> Administrative Tools -> Services
Then find the MySQL service in the list, and stop it.
If your server is not running as a service, you may need to use the Task Manager to force it to stop.
Create a text file and place the following command within it on a single line:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPassword');Save the file with any name. For this example the file will be
C:\mysql-init.txt.Open a console window to get to the DOS command prompt:
Start Menu -> Run -> cmd
We are assuming that you installed MySQL to
C:\mysql. If you installed MySQL to another location, adjust the following commands accordingly.At the DOS command prompt, execute this command:
C:\>
C:\mysql\bin\mysqld-nt --init-file=C:\mysql-init.txtThe contents of the file named by the
--init-fileoption are executed at server startup, changing therootpassword. After the server has started successfully, you should deleteC:\mysql-init.txt.If you install MySQL using the MySQL Installation Wizard, you may need to specify a
--defaults-fileoption:C:\>
"C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqld-nt.exe"--defaults-file="C:\Program Files\MySQL\MySQL Server 5.1\my.ini"--init-file=C:\mysql-init.txtThe appropriate
--defaults-filesetting can be found using the Services Manager:Start Menu -> Control Panel -> Administrative Tools -> Services
Find the MySQL service in the list, right-click on it, and choose the
Propertiesoption. ThePath to executablefield contains the--defaults-filesetting.Stop the MySQL server, then restart it in normal mode again. If you run the server as a service, start it from the Windows Services window. If you start the server manually, use whatever command you normally use.
You should be able to connect using the new password.
In a Unix environment, the procedure for resetting the
root password is as follows:
Log on to your system as either the Unix
rootuser or as the same user that the mysqld server runs as.Locate the
.pidfile that contains the server's process ID. The exact location and name of this file depend on your distribution, hostname, and configuration. Common locations are/var/lib/mysql/,/var/run/mysqld/, and/usr/local/mysql/data/. Generally, the filename has the extension of.pidand begins with eithermysqldor your system's hostname.You can stop the MySQL server by sending a normal
kill(notkill -9) to the mysqld process, using the pathname of the.pidfile in the following command:shell>
kill `cat /mysql-data-directory/host_name.pid`Note the use of backticks rather than forward quotes with the
catcommand; these cause the output ofcatto be substituted into thekillcommand.Create a text file and place the following command within it on a single line:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPassword');Save the file with any name. For this example the file will be
~/mysql-init.Restart the MySQL server with the special
--init-file=~/mysql-initoption:shell>
mysqld_safe --init-file=~/mysql-init &The contents of the init-file are executed at server startup, changing the root password. After the server has started successfully you should delete
~/mysql-init.You should be able to connect using the new password.
Alternatively, on any platform, you can set the new password using the mysql client(but this approach is less secure):
Stop mysqld and restart it with the
--skip-grant-tables --user=rootoptions (Windows users omit the--user=rootportion).Connect to the mysqld server with this command:
shell>
mysql -u rootIssue the following statements in the mysql client:
mysql>
UPDATE mysql.user SET Password=PASSWORD('->newpwd')WHERE User='root';mysql>FLUSH PRIVILEGES;Replace 「
newpwd」 with the actualrootpassword that you want to use.You should be able to connect using the new password.
Each MySQL version is tested on many platforms before it is released. This doesn't mean that there are no bugs in MySQL, but if there are bugs, they should be very few and can be hard to find. If you have a problem, it always helps if you try to find out exactly what crashes your system, because you have a much better chance of getting the problem fixed quickly.
First, you should try to find out whether the problem is that the mysqld server dies or whether your problem has to do with your client. You can check how long your mysqld server has been up by executing mysqladmin version. If mysqld has died and restarted, you may find the reason by looking in the server's error log. See 「エラー ログ」.
On some systems, you can find in the error log a stack trace
of where mysqld died that you can resolve
with the resolve_stack_dump program. See
Using a Stack Trace. Note that the variable
values written in the error log may not always be 100%
correct.
Many server crashes are caused by corrupted data files or
index files. MySQL updates the files on disk with the
write() system call after every SQL
statement and before the client is notified about the result.
(This is not true if you are running with
--delay-key-write, in which case data files
are written but not index files.) This means that data file
contents are safe even if mysqld crashes,
because the operating system ensures that the unflushed data
is written to disk. You can force MySQL to flush everything to
disk after every SQL statement by starting
mysqld with the --flush
option.
The preceding means that normally you should not get corrupted tables unless one of the following happens:
The MySQL server or the server host was killed in the middle of an update.
You have found a bug in mysqld that caused it to die in the middle of an update.
Some external program is manipulating data files or index files at the same time as mysqld without locking the table properly.
You are running many mysqld servers using the same data directory on a system that doesn't support good filesystem locks (normally handled by the
lockdlock manager), or you are running multiple servers with external locking disabled.You have a crashed data file or index file that contains very corrupt data that confused mysqld.
You have found a bug in the data storage code. This isn't likely, but it's at least possible. In this case, you can try to change the storage engine to another engine by using
ALTER TABLEon a repaired copy of the table.
Because it is very difficult to know why something is crashing, first try to check whether things that work for others crash for you. Please try the following things:
Stop the mysqld server with mysqladmin shutdown, run myisamchk --silent --force */*.MYI from the data directory to check all
MyISAMtables, and restart mysqld. This ensures that you are running from a clean state. See 4章データベース管理.Start mysqld with the
--logoption and try to determine from the information written to the log whether some specific query kills the server. About 95% of all bugs are related to a particular query. Normally, this is one of the last queries in the log file just before the server restarts. See 「一般クエリ ログ」. If you can repeatedly kill MySQL with a specific query, even when you have checked all tables just before issuing it, then you have been able to locate the bug and should submit a bug report for it. See 「質問またはバグの報告」.Try to make a test case that we can use to repeat the problem. See Making a Test Case If You Experience Table Corruption.
Try running the tests in the
mysql-testdirectory and the MySQL benchmarks. See 「MySQL Test Suite」. They should test MySQL rather well. You can also add code to the benchmarks that simulates your application. The benchmarks can be found in thesql-benchdirectory in a source distribution or, for a binary distribution, in thesql-benchdirectory under your MySQL installation directory.Try the
fork_big.plscript. (It is located in thetestsdirectory of source distributions.)If you configure MySQL for debugging, it is much easier to gather information about possible errors if something goes wrong. Configuring MySQL for debugging causes a safe memory allocator to be included that can find some errors. It also provides a lot of output about what is happening. Reconfigure MySQL with the
--with-debugor--with-debug=fulloption to configure and then recompile. See Debugging a MySQL Server.Make sure that you have applied the latest patches for your operating system.
Use the
--skip-external-lockingoption to mysqld. On some systems, thelockdlock manager does not work properly; the--skip-external-lockingoption tells mysqld not to use external locking. (This means that you cannot run two mysqld servers on the same data directory and that you must be careful if you use myisamchk. Nevertheless, it may be instructive to try the option as a test.)Have you tried mysqladmin -u root processlist when mysqld appears to be running but not responding? Sometimes mysqld is not comatose even though you might think so. The problem may be that all connections are in use, or there may be some internal lock problem. mysqladmin -u root processlist usually is able to make a connection even in these cases, and can provide useful information about the current number of connections and their status.
Run the command mysqladmin -i 5 status or mysqladmin -i 5 -r status in a separate window to produce statistics while you run your other queries.
Try the following:
Start mysqld from gdb (or another debugger). See Debugging mysqld under gdb.
Run your test scripts.
Print the backtrace and the local variables at the three lowest levels. In gdb, you can do this with the following commands when mysqld has crashed inside gdb:
backtrace info local up info local up info local
With gdb, you can also examine which threads exist with
info threadsand switch to a specific thread withthread, whereNNis the thread ID.
Try to simulate your application with a Perl script to force MySQL to crash or misbehave.
Send a normal bug report. See 「質問またはバグの報告」. Be even more detailed than usual. Because MySQL works for many people, it may be that the crash results from something that exists only on your computer (for example, an error that is related to your particular system libraries).
If you have a problem with tables containing dynamic-length rows and you are using only
VARCHARcolumns (notBLOBorTEXTcolumns), you can try to change allVARCHARtoCHARwithALTER TABLE. This forces MySQL to use fixed-size rows. Fixed-size rows take a little extra space, but are much more tolerant to corruption.The current dynamic row code has been in use at MySQL AB for several years with very few problems, but dynamic-length rows are by nature more prone to errors, so it may be a good idea to try this strategy to see whether it helps.
Do not rule out your server hardware when diagnosing problems. Defective hardware can be the cause of data corruption. Particular attention should be paid to both RAMS and hard-drives when troubleshooting hardware.
This section describes how MySQL responds to disk-full errors (such as 「no space left on device」), and to quota-exceeded errors (such as 「write failed」 or 「user block limit reached」).
This section is relevant for writes to
MyISAM tables. It also applies for writes
to binary log files and binary log index file, except that
references to 「row」 and 「record」
should be understood to mean 「event.」
When a disk-full condition occurs, MySQL does the following:
It checks once every minute to see whether there is enough space to write the current row. If there is enough space, it continues as if nothing had happened.
Every 10 minutes it writes an entry to the log file, warning about the disk-full condition.
To alleviate the problem, you can take the following actions:
To continue, you only have to free enough disk space to insert all records.
To abort the thread, you must use mysqladmin kill. The thread is aborted the next time it checks the disk (in one minute).
Other threads might be waiting for the table that caused the disk-full condition. If you have several 「locked」 threads, killing the one thread that is waiting on the disk-full condition allows the other threads to continue.
Exceptions to the preceding behavior are when you use
REPAIR TABLE or OPTIMIZE
TABLE or when the indexes are created in a batch
after LOAD DATA INFILE or after an
ALTER TABLE statement. All of these
statements may create large temporary files that, if left to
themselves, would cause big problems for the rest of the
system. If the disk becomes full while MySQL is doing any of
these operations, it removes the big temporary files and mark
the table as crashed. The exception is that for ALTER
TABLE, the old table is left unchanged.
MySQL uses the value of the TMPDIR
environment variable as the pathname of the directory in which
to store temporary files. If you don't have
TMPDIR set, MySQL uses the system default,
which is normally /tmp,
/var/tmp, or
/usr/tmp. If the filesystem containing
your temporary file directory is too small, you can use the
--tmpdir option to mysqld
to specify a directory in a filesystem where you have enough
space.
In MySQL 5.1, the --tmpdir
option can be set to a list of several paths that are used in
round-robin fashion. Paths should be separated by colon
characters (‘:’) on Unix and
semicolon characters (‘;’) on
Windows, NetWare, and OS/2.
Note: To spread the load
effectively, these paths should be located on different
physical disks, not different partitions
of the same disk.
If the MySQL server is acting as a replication slave, you
should not set --tmpdir to point to a
directory on a memory-based filesystem or to a directory that
is cleared when the server host restarts. A replication slave
needs some of its temporary files to survive a machine restart
so that it can replicate temporary tables or LOAD
DATA INFILE operations. If files in the temporary
file directory are lost when the server restarts, replication
fails.
MySQL creates all temporary files as hidden files. This ensures that the temporary files are removed if mysqld is terminated. The disadvantage of using hidden files is that you do not see a big temporary file that fills up the filesystem in which the temporary file directory is located.
MySQL Enterprise Advisors provided by the MySQL Network Monitoring and Advisory Service automatically detect excessive temporary table storage to disk. For more information see, http://www.mysql.com/products/enterprise/advisors.html.
When sorting (ORDER BY or GROUP
BY), MySQL normally uses one or two temporary files.
The maximum disk space required is determined by the following
expression:
(length of what is sorted + sizeof(row pointer)) * number of matched rows * 2
The row pointer size is usually four bytes, but may grow in the future for really big tables.
For some SELECT queries, MySQL also creates
temporary SQL tables. These are not hidden and have names of
the form SQL_*.
ALTER TABLE creates a temporary table in
the same directory as the original table.
The default location for the Unix socket file that the server
uses for communication with local clients is
/tmp/mysql.sock. (For some distribution
formats, the directory might be different, such as
/var/lib/mysql for RPMs.)
On some versions of Unix, anyone can delete files in the
/tmp directory or other similar
directories used for temporary files. If the socket file is
located in such a directory on your system, this might cause
problems.
On most versions of Unix, you can protect your
/tmp directory so that files can be
deleted only by their owners or the superuser
(root). To do this, set the
sticky bit on the /tmp
directory by logging in as root and using
the following command:
shell> chmod +t /tmp
You can check whether the sticky bit is set
by executing ls -ld /tmp. If the last
permission character is t, the bit is set.
Another approach is to change the place where the server creates the Unix socket file. If you do this, you should also let client programs know the new location of the file. You can specify the file location in several ways:
Specify the path in a global or local option file. For example, put the following lines in
/etc/my.cnf:[mysqld] socket=/path/to/socket [client] socket=/path/to/socket
See 「オプションファイルの使用」.
Specify a
--socketoption on the command line to mysqld_safe and when you run client programs.Set the
MYSQL_UNIX_PORTenvironment variable to the path of the Unix socket file.Recompile MySQL from source to use a different default Unix socket file location. Define the path to the file with the
--with-unix-socket-pathoption when you run configure. See 「典型的な configure オプション」.
You can test whether the new socket location works by attempting to connect to the server with this command:
shell> mysqladmin --socket=/path/to/socket version
If you have a problem with SELECT NOW()
returning values in UTC and not your local time, you have to
tell the server your current time zone. The same applies if
UNIX_TIMESTAMP() returns the wrong value.
This should be done for the environment in which the server
runs; for example, in mysqld_safe or
mysql.server. See
「環境変数」.
You can set the time zone for the server with the
--timezone=
option to mysqld_safe. You can also set it
by setting the timezone_nameTZ environment variable
before you start mysqld.
The allowable values for --timezone or
TZ are system-dependent. Consult your
operating system documentation to see what values are
acceptable.
- B.1.5.1. Case Sensitivity in Searches
- B.1.5.2. Problems Using
DATEColumns - B.1.5.3. Problems with
NULLValues - B.1.5.4. Problems with Column Aliases
- B.1.5.5. Rollback Failure for Non-Transactional Tables
- B.1.5.6. Deleting Rows from Related Tables
- B.1.5.7. Solving Problems with No Matching Rows
- B.1.5.8. Problems with Floating-Point Comparisons
By default, MySQL searches are not case sensitive (although
there are some character sets that are never case insensitive,
such as czech). This means that if you
search with , you get all column values that start with
col_name LIKE
'a%'A or a. If you want to
make this search case sensitive, make sure that one of the
operands has a case sensitive or binary collation. For
example, if you are comparing a column and a string that both
have the latin1 character set, you can use
the COLLATE operator to cause either
operand to have the latin1_general_cs or
latin1_bin collation. For example:
col_nameCOLLATE latin1_general_cs LIKE 'a%'col_nameLIKE 'a%' COLLATE latin1_general_cscol_nameCOLLATE latin1_bin LIKE 'a%'col_nameLIKE 'a%' COLLATE latin1_bin
If you want a column always to be treated in case-sensitive
fashion, declare it with a case sensitive or binary collation.
See 「CREATE TABLE 構文」.
Simple comparison operations (>=, >, =, <,
<=, sorting, and grouping) are based on each
character's 「sort value.」 Characters with the
same sort value (such as ‘E’,
‘e’, and
‘é’) are treated as the
same character.
The format of a DATE value is
'YYYY-MM-DD'. According to standard SQL, no
other format is allowed. You should use this format in
UPDATE expressions and in the
WHERE clause of SELECT
statements. For example:
mysql> SELECT * FROM tbl_name WHERE date >= '2003-05-05';
As a convenience, MySQL automatically converts a date to a
number if the date is used in a numeric context (and vice
versa). It is also smart enough to allow a
「relaxed」 string form when updating and in a
WHERE clause that compares a date to a
TIMESTAMP, DATE, or
DATETIME column. (「Relaxed
form」 means that any punctuation character may be used
as the separator between parts. For example,
'2004-08-15' and
'2004#08#15' are equivalent.) MySQL can
also convert a string containing no separators (such as
'20040815'), provided it makes sense as a
date.
When you compare a DATE,
TIME, DATETIME, or
TIMESTAMP to a constant string with the
<, <=,
=, >=,
>, or BETWEEN
operators, MySQL normally converts the string to an internal
long integer for faster comparison (and also for a bit more
「relaxed」 string checking). However, this
conversion is subject to the following exceptions:
When you compare two columns
When you compare a
DATE,TIME,DATETIME, orTIMESTAMPcolumn to an expressionWhen you use any other comparison method than those just listed, such as
INorSTRCMP().
For these exceptional cases, the comparison is done by converting the objects to strings and performing a string comparison.
To keep things safe, assume that strings are compared as strings and use the appropriate string functions if you want to compare a temporal value to a string.
The special date '0000-00-00' can be stored
and retrieved as '0000-00-00'. When using a
'0000-00-00' date through MyODBC, it is
automatically converted to NULL in MyODBC
2.50.12 and above, because ODBC can't handle this kind of
date.
Because MySQL performs the conversions described above, the following statements work:
mysql>INSERT INTOmysql>tbl_name(idate) VALUES (19970505);INSERT INTOmysql>tbl_name(idate) VALUES ('19970505');INSERT INTOmysql>tbl_name(idate) VALUES ('97-05-05');INSERT INTOmysql>tbl_name(idate) VALUES ('1997.05.05');INSERT INTOmysql>tbl_name(idate) VALUES ('1997 05 05');INSERT INTOmysql>tbl_name(idate) VALUES ('0000-00-00');SELECT idate FROMmysql>tbl_nameWHERE idate >= '1997-05-05';SELECT idate FROMmysql>tbl_nameWHERE idate >= 19970505;SELECT MOD(idate,100) FROMmysql>tbl_nameWHERE idate >= 19970505;SELECT idate FROMtbl_nameWHERE idate >= '19970505';
However, the following does not work:
mysql> SELECT idate FROM tbl_name WHERE STRCMP(idate,'20030505')=0;
STRCMP() is a string function, so it
converts idate to a string in
'YYYY-MM-DD' format and performs a string
comparison. It does not convert '20030505'
to the date '2003-05-05' and perform a date
comparison.
If you are using the ALLOW_INVALID_DATES
SQL mode, MySQL allows you to store dates that are given only
limited checking: MySQL requires only that the day is in the
range from 1 to 31 and the month is in the range from 1 to 12.
This makes MySQL very convenient for Web applications where you obtain year, month, and day in three different fields and you want to store exactly what the user inserted (without date validation).
If you are not using the NO_ZERO_IN_DATE
SQL mode, the day or month part can be zero. This is
convenient if you want to store a birthdate in a
DATE column and you know only part of the
date.
If you are not using the NO_ZERO_DATE SQL
mode, MySQL also allows you to store
'0000-00-00' as a 「dummy
date.」 This is in some cases more convenient than using
NULL values.
If the date cannot be converted to any reasonable value, a
0 is stored in the DATE
column, which is retrieved as '0000-00-00'.
This is both a speed and a convenience issue. We believe that
the database server's responsibility is to retrieve the same
date you stored (even if the data was not logically correct in
all cases). We think it is up to the application and not the
server to check the dates.
If you want MySQL to check all dates and accept only legal
dates (unless overridden by IGNORE), you should set
sql_mode to
"NO_ZERO_IN_DATE,NO_ZERO_DATE".
The concept of the NULL value is a common
source of confusion for newcomers to SQL, who often think that
NULL is the same thing as an empty string
''. This is not the case. For example, the
following statements are completely different:
mysql>INSERT INTO my_table (phone) VALUES (NULL);mysql>INSERT INTO my_table (phone) VALUES ('');
Both statements insert a value into the
phone column, but the first inserts a
NULL value and the second inserts an empty
string. The meaning of the first can be regarded as
「phone number is not known」 and the meaning of
the second can be regarded as 「the person is known to
have no phone, and thus no phone number.」
To help with NULL handling, you can use the
IS NULL and IS NOT NULL
operators and the IFNULL() function.
In SQL, the NULL value is never true in
comparison to any other value, even NULL.
An expression that contains NULL always
produces a NULL value unless otherwise
indicated in the documentation for the operators and functions
involved in the expression. All columns in the following
example return NULL:
mysql> SELECT NULL, 1+NULL, CONCAT('Invisible',NULL);
If you want to search for column values that are
NULL, you cannot use an expr =
NULL test. The following statement returns no rows,
because expr = NULL is never true for any
expression:
mysql> SELECT * FROM my_table WHERE phone = NULL;
To look for NULL values, you must use the
IS NULL test. The following statements show
how to find the NULL phone number and the
empty phone number:
mysql>SELECT * FROM my_table WHERE phone IS NULL;mysql>SELECT * FROM my_table WHERE phone = '';
See Working with NULL Values, for additional
information and examples.
You can add an index on a column that can have
NULL values if you are using the
MyISAM, InnoDB, or
MEMORY storage engine. Otherwise, you must
declare an indexed column NOT NULL, and you
cannot insert NULL into the column.
When reading data with LOAD DATA INFILE,
empty or missing columns are updated with
''. If you want a NULL
value in a column, you should use \N in the
data file. The literal word
「NULL」 may also be used under
some circumstances. See 「LOAD DATA INFILE 構文」.
When using DISTINCT, GROUP
BY, or ORDER BY, all
NULL values are regarded as equal.
When using ORDER BY,
NULL values are presented first, or last if
you specify DESC to sort in descending
order.
Aggregate (summary) functions such as
COUNT(), MIN(), and
SUM() ignore NULL
values. The exception to this is COUNT(*),
which counts rows and not individual column values. For
example, the following statement produces two counts. The
first is a count of the number of rows in the table, and the
second is a count of the number of non-NULL
values in the age column:
mysql> SELECT COUNT(*), COUNT(age) FROM person;
For some data types, MySQL handles NULL
values specially. If you insert NULL into a
TIMESTAMP column, the current date and time
is inserted. If you insert NULL into an
integer column that has the AUTO_INCREMENT
attribute, the next number in the sequence is inserted.
You can use an alias to refer to a column in GROUP
BY, ORDER BY, or
HAVING clauses. Aliases can also be used to
give columns better names:
SELECT SQRT(a*b) AS root FROMtbl_nameGROUP BY root HAVING root > 0; SELECT id, COUNT(*) AS cnt FROMtbl_nameGROUP BY id HAVING cnt > 0; SELECT id AS 'Customer identity' FROMtbl_name;
Standard SQL doesn't allow you to refer to a column alias in a
WHERE clause. This restriction is imposed
because when the WHERE code is executed,
the column value may not yet be determined. For example, the
following query is illegal:
SELECT id, COUNT(*) AS cnt FROM tbl_name WHERE cnt > 0 GROUP BY id;
The WHERE statement is executed to
determine which rows should be included in the GROUP
BY part, whereas HAVING is used
to decide which rows from the result set should be used.
If you receive the following message when trying to perform a
ROLLBACK, it means that one or more of the
tables you used in the transaction do not support
transactions:
Warning: Some non-transactional changed tables couldn't be rolled back
These non-transactional tables are not affected by the
ROLLBACK statement.
If you were not deliberately mixing transactional and
non-transactional tables within the transaction, the most
likely cause for this message is that a table you thought was
transactional actually is not. This can happen if you try to
create a table using a transactional storage engine that is
not supported by your mysqld server (or
that was disabled with a startup option). If
mysqld doesn't support a storage engine, it
instead creates the table as a MyISAM
table, which is non-transactional.
You can check the storage engine for a table by using either of these statements:
SHOW TABLE STATUS LIKE 'tbl_name'; SHOW CREATE TABLEtbl_name;
See 「SHOW TABLE STATUS 構文」, and
「SHOW CREATE TABLE 構文」.
You can check which storage engines your mysqld server supports by using this statement:
SHOW ENGINES;
You can also use the following statement, and check the value of the variable that is associated with the storage engine in which you are interested:
SHOW VARIABLES LIKE 'have_%';
For example, to determine whether the
InnoDB storage engine is available, check
the value of the have_innodb variable.
See 「SHOW ENGINES 構文」, and
「SHOW VARIABLES 構文」.
If the total length of the DELETE statement
for related_table is more than 1MB (the
default value of the max_allowed_packet
system variable), you should split it into smaller parts and
execute multiple DELETE statements. You
probably get the fastest DELETE by
specifying only 100 to 1,000 related_column
values per statement if the related_column
is indexed. If the related_column isn't
indexed, the speed is independent of the number of arguments
in the IN clause.
If you have a complicated query that uses many tables but that doesn't return any rows, you should use the following procedure to find out what is wrong:
Test the query with
EXPLAINto check whether you can find something that is obviously wrong. See 「EXPLAINを使用して、クエリを最適化する」.Select only those columns that are used in the
WHEREclause.Remove one table at a time from the query until it returns some rows. If the tables are large, it's a good idea to use
LIMIT 10with the query.Issue a
SELECTfor the column that should have matched a row against the table that was last removed from the query.If you are comparing
FLOATorDOUBLEcolumns with numbers that have decimals, you can't use equality (=) comparisons. This problem is common in most computer languages because not all floating-point values can be stored with exact precision. In some cases, changing theFLOATto aDOUBLEfixes this. See 「Problems with Floating-Point Comparisons」.If you still can't figure out what's wrong, create a minimal test that can be run with
mysql test < query.sqlthat shows your problems. You can create a test file by dumping the tables with mysqldump --quick db_nametbl_name_1...tbl_name_n> query.sql. Open the file in an editor, remove some insert lines (if there are more than needed to demonstrate the problem), and add yourSELECTstatement at the end of the file.Verify that the test file demonstrates the problem by executing these commands:
shell>
mysqladmin create test2shell>mysql test2 < query.sqlAttach the test file to a bug report, which you can file using the instructions in 「質問またはバグの報告」.
Floating-point numbers sometimes cause confusion because they
are approximate. That is, they are not stored as exact values
inside computer architecture. What you can see on the screen
usually is not the exact value of the number. The
FLOAT and DOUBLE data
types are such. For DECIMAL columns, MySQL
performs operations with a precision of 64 decimal digits,
which should solve most common inaccuracy problems.
The following example demonstrates the problem using
DOUBLE. It shows that are calculations that
are done using floating-point operations are subject to
floating-point error.
mysql>CREATE TABLE t1 (i INT, d1 DOUBLE, d2 DOUBLE);mysql>INSERT INTO t1 VALUES (1, 101.40, 21.40), (1, -80.00, 0.00),->(2, 0.00, 0.00), (2, -13.20, 0.00), (2, 59.60, 46.40),->(2, 30.40, 30.40), (3, 37.00, 7.40), (3, -29.60, 0.00),->(4, 60.00, 15.40), (4, -10.60, 0.00), (4, -34.00, 0.00),->(5, 33.00, 0.00), (5, -25.80, 0.00), (5, 0.00, 7.20),->(6, 0.00, 0.00), (6, -51.40, 0.00);mysql>SELECT i, SUM(d1) AS a, SUM(d2) AS b->FROM t1 GROUP BY i HAVING a <> b;+------+-------+------+ | i | a | b | +------+-------+------+ | 1 | 21.4 | 21.4 | | 2 | 76.8 | 76.8 | | 3 | 7.4 | 7.4 | | 4 | 15.4 | 15.4 | | 5 | 7.2 | 7.2 | | 6 | -51.4 | 0 | +------+-------+------+
The result is correct. Although the first five records look
like they should not satisfy the comparison (the values of
a and b do not appear to
be different), they may do so because the difference between
the numbers shows up around the tenth decimal or so, depending
on factors such as computer architecture or the compiler
version or optimization level. For example, different CPUs may
evaluate floating-point numbers differently.
If columns d1 and d2 had
been defined as DECIMAL rather than
DOUBLE, the result of the
SELECT query would have contained only one
row — the last one shown above.
The correct way to do floating-point number comparison is to first decide on an acceptable tolerance for differences between the numbers and then do the comparison against the tolerance value. For example, if we agree that floating-point numbers should be regarded the same if they are same within a precision of one in ten thousand (0.0001), the comparison should be written to find differences larger than the tolerance value:
mysql>SELECT i, SUM(d1) AS a, SUM(d2) AS b FROM t1->GROUP BY i HAVING ABS(a - b) > 0.0001;+------+-------+------+ | i | a | b | +------+-------+------+ | 6 | -51.4 | 0 | +------+-------+------+ 1 row in set (0.00 sec)
Conversely, to get rows where the numbers are the same, the test should find differences within the tolerance value:
mysql>SELECT i, SUM(d1) AS a, SUM(d2) AS b FROM t1->GROUP BY i HAVING ABS(a - b) <= 0.0001;+------+------+------+ | i | a | b | +------+------+------+ | 1 | 21.4 | 21.4 | | 2 | 76.8 | 76.8 | | 3 | 7.4 | 7.4 | | 4 | 15.4 | 15.4 | | 5 | 7.2 | 7.2 | +------+------+------+ 5 rows in set (0.03 sec)
MySQL uses a cost-based optimizer to determine the best way to resolve a query. In many cases, MySQL can calculate the best possible query plan, but sometimes MySQL doesn't have enough information about the data at hand and has to make 「educated」 guesses about the data.
For the cases when MySQL does not do the "right" thing, tools that you have available to help MySQL are:
Use the
EXPLAINstatement to get information about how MySQL processes a query. To use it, just add the keywordEXPLAINto the front of yourSELECTstatement:mysql>
EXPLAIN SELECT * FROM t1, t2 WHERE t1.i = t2.i;EXPLAINis discussed in more detail in 「EXPLAINを使用して、クエリを最適化する」.Use
ANALYZE TABLEto update the key distributions for the scanned table. See 「tbl_nameANALYZE TABLE構文」.Use
FORCE INDEXfor the scanned table to tell MySQL that table scans are very expensive compared to using the given index. See 「SELECT構文」.SELECT * FROM t1, t2 FORCE INDEX (index_for_column) WHERE t1.col_name=t2.col_name;
USE INDEXandIGNORE INDEXmay also be useful.Global and table-level
STRAIGHT_JOIN. See 「SELECT構文」.You can tune global or thread-specific system variables. For example, Start mysqld with the
--max-seeks-for-key=1000option or useSET max_seeks_for_key=1000to tell the optimizer to assume that no key scan causes more than 1,000 key seeks. See 「システム変数」.
ALTER TABLE changes a table to the current
character set. If you get a duplicate-key error during
ALTER TABLE, the cause is either that the
new character sets maps two keys to the same value or that the
table is corrupted. In the latter case, you should run
REPAIR TABLE on the table.
If ALTER TABLE dies with the following
error, the problem may be that MySQL crashed during an earlier
ALTER TABLE operation and there is an old
table named
A- or
xxxB- lying
around:
xxx
Error on rename of './database/name.frm'
to './database/B-xxx.frm' (Errcode: 17)
In this case, go to the MySQL data directory and delete all
files that have names starting with A- or
B-. (You may want to move them elsewhere
instead of deleting them.)
ALTER TABLE works in the following way:
Create a new table named
A-with the requested structural changes.xxxCopy all rows from the original table to
A-.xxxRename the original table to
B-.xxxRename
A-to your original table name.xxxDelete
B-.xxx
If something goes wrong with the renaming operation, MySQL
tries to undo the changes. If something goes seriously wrong
(although this shouldn't happen), MySQL may leave the old
table as
B-. A
simple rename of the table files at the system level should
get your data back.
xxx
If you use ALTER TABLE on a transactional
table or if you are using Windows or OS/2, ALTER
TABLE unlocks the table if you had done a
LOCK TABLE on it. This is done because
InnoDB and these operating systems cannot
drop a table that is in use.
First, consider whether you really need to change the column
order in a table. The whole point of SQL is to abstract the
application from the data storage format. You should always
specify the order in which you wish to retrieve your data. The
first of the following statements returns columns in the order
col_name1,
col_name2,
col_name3, whereas the second
returns them in the order
col_name1,
col_name3,
col_name2:
mysql>SELECTmysql>col_name1,col_name2,col_name3FROMtbl_name;SELECTcol_name1,col_name3,col_name2FROMtbl_name;
If you decide to change the order of table columns anyway, you can do so as follows:
Create a new table with the columns in the new order.
Execute this statement:
mysql>
INSERT INTO new_table->SELECT columns-in-new-order FROM old_table;Drop or rename
old_table.Rename the new table to the original name:
mysql>
ALTER TABLE new_table RENAME old_table;
SELECT * is quite suitable for testing
queries. However, in an application, you should
never rely on using SELECT
* and retrieving the columns based on their
position. The order and position in which columns are returned
does not remain the same if you add, move, or delete columns.
A simple change to your table structure could cause your
application to fail.
The following list indicates limitations on the use of
TEMPORARY tables:
A
TEMPORARYtable can only be of typeMEMORY,MyISAM,MERGE, orInnoDB.Temporary tables are not supported for MySQL Cluster.
You cannot refer to a
TEMPORARYtable more than once in the same query. For example, the following does not work:mysql>
SELECT * FROM temp_table, temp_table AS t2;ERROR 1137: Can't reopen table: 'temp_table'The
SHOW TABLESstatement does not listTEMPORARYtables.You cannot use
RENAMEto rename aTEMPORARYtable. However, you can useALTER TABLEinstead:mysql>
ALTER TABLE orig_name RENAME new_name;There are known issues in using temporary tables with replication. See 「レプリケーション機能と既知問題」, for more information.
This section is a list of the known issues in recent versions of MySQL.
For information about platform-specific issues, see the installation and porting instructions in 「オペレーティング システムに特化した注釈」, and Debugging and Porting MySQL.
The following problems are known and fixing them is a high priority:
MySQL Cluster fails to recover from an out-of-disk failure when using disk data. (Bug #17614)
If you compare a
NULLvalue to a subquery usingALL/ANY/SOMEand the subquery returns an empty result, the comparison might evaluate to the non-standard result ofNULLrather than toTRUEorFALSE. This will be fixed in MySQL 5.1.Subquery optimization for
INis not as effective as for=.Even if you use
lower_case_table_names=2(which enables MySQL to remember the case used for databases and table names), MySQL does not remember the case used for database names for the functionDATABASE()or within the various logs (on case-insensitive systems).Dropping a
FOREIGN KEYconstraint doesn't work in replication because the constraint may have another name on the slave.REPLACE(andLOAD DATAwith theREPLACEoption) does not triggerON DELETE CASCADE.DISTINCTwithORDER BYdoesn't work insideGROUP_CONCAT()if you don't use all and only those columns that are in theDISTINCTlist.If one user has a long-running transaction and another user drops a table that is updated in the transaction, there is small chance that the binary log may contain the
DROP TABLEcommand before the table is used in the transaction itself. We plan to fix this by having theDROP TABLEcommand wait until the table is not being used in any transaction.When inserting a big integer value (between 263 and 264–1) into a decimal or string column, it is inserted as a negative value because the number is evaluated in a signed integer context.
FLUSH TABLES WITH READ LOCKdoes not blockCOMMITif the server is running without binary logging, which may cause a problem (of consistency between tables) when doing a full backup.ANALYZE TABLE,OPTIMIZE TABLE, andREPAIR TABLEmay cause problems on tables for which you are usingINSERT DELAYED.Performing
LOCK TABLE ...andFLUSH TABLES ...doesn't guarantee that there isn't a half-finished transaction in progress on the table.Replication uses query-level logging: The master writes the executed queries to the binary log. This is a very fast, compact, and efficient logging method that works perfectly in most cases.
It is possible for the data on the master and slave to become different if a query is designed in such a way that the data modification is non-deterministic (generally not a recommended practice, even outside of replication).
For example:
CREATE ... SELECTorINSERT ... SELECTstatements that insert zero orNULLvalues into anAUTO_INCREMENTcolumn.DELETEif you are deleting rows from a table that has foreign keys withON DELETE CASCADEproperties.REPLACE ... SELECT,INSERT IGNORE ... SELECTif you have duplicate key values in the inserted data.
If and only if the preceding queries have no
ORDER BYclause guaranteeing a deterministic order.For example, for
INSERT ... SELECTwith noORDER BY, theSELECTmay return rows in a different order (which results in a row having different ranks, hence getting a different number in theAUTO_INCREMENTcolumn), depending on the choices made by the optimizers on the master and slave.A query is optimized differently on the master and slave only if:
The table is stored using a different storage engine on the master than on the slave. (It is possible to use different storage engines on the master and slave. For example, you can use
InnoDBon the master, butMyISAMon the slave if the slave has less available disk space.)MySQL buffer sizes (
key_buffer_size, and so on) are different on the master and slave.The master and slave run different MySQL versions, and the optimizer code differs between these versions.
This problem may also affect database restoration using mysqlbinlog|mysql.
The easiest way to avoid this problem is to add an
ORDER BYclause to the aforementioned non-deterministic queries to ensure that the rows are always stored or modified in the same order.In future MySQL versions, we will automatically add an
ORDER BYclause when needed.
The following issues are known and will be fixed in due time:
Log filenames are based on the server hostname (if you don't specify a filename with the startup option). You have to use options such as
--log-bin=if you change your hostname to something else. Another option is to rename the old files to reflect your hostname change (if these are binary logs, you need to edit the binary log index file and fix the binlog names there as well). See 「コマンド オプション」.old_host_name-binmysqlbinlog does not delete temporary files left after a
LOAD DATA INFILEcommand. See 「mysqlbinlog — バイナリログファイルを処理するためのユーティリティ」.RENAMEdoesn't work withTEMPORARYtables or tables used in aMERGEtable.Due to the way table format (
.frm) files are stored, you cannot use character 255 (CHAR(255)) in table names, column names, or enumerations. This is scheduled to be fixed in version 5.1 when we implement new table definition format files.When using
SET CHARACTER SET, you can't use translated characters in database, table, and column names.You can't use ‘
_’ or ‘%’ withESCAPEinLIKE ... ESCAPE.If you have a
DECIMALcolumn in which the same number is stored in different formats (for example,+01.00,1.00,01.00),GROUP BYmay regard each value as a different value.You cannot build the server in another directory when using MIT-pthreads. Because this requires changes to MIT-pthreads, we are not likely to fix this. See 「MIT-pthreads ノート」.
BLOBandTEXTvalues can't reliably be used inGROUP BY,ORDER BYorDISTINCT. Only the firstmax_sort_lengthbytes are used when comparingBLOBvalues in these cases. The default value ofmax_sort_lengthis 1024 and can be changed at server startup time or at runtime.Numeric calculations are done with
BIGINTorDOUBLE(both are normally 64 bits long). Which precision you get depends on the function. The general rule is that bit functions are performed withBIGINTprecision,IFandELT()withBIGINTorDOUBLEprecision, and the rest withDOUBLEprecision. You should try to avoid using unsigned long long values if they resolve to be larger than 63 bits (9223372036854775807) for anything other than bit fields.You can have up to 255
ENUMandSETcolumns in one table.In
MIN(),MAX(), and other aggregate functions, MySQL currently comparesENUMandSETcolumns by their string value rather than by the string's relative position in the set.mysqld_safe redirects all messages from mysqld to the mysqld log. One problem with this is that if you execute mysqladmin refresh to close and reopen the log,
stdoutandstderrare still redirected to the old log. If you use--logextensively, you should edit mysqld_safe to log toinstead ofhost_name.errso that you can easily reclaim the space for the old log by deleting it and executing mysqladmin refresh.host_name.logIn an
UPDATEstatement, columns are updated from left to right. If you refer to an updated column, you get the updated value instead of the original value. For example, the following statement incrementsKEYby2, not1:mysql>
UPDATEtbl_nameSET KEY=KEY+1,KEY=KEY+1;You can refer to multiple temporary tables in the same query, but you cannot refer to any given temporary table more than once. For example, the following doesn't work:
mysql>
SELECT * FROM temp_table, temp_table AS t2;ERROR 1137: Can't reopen table: 'temp_table'The optimizer may handle
DISTINCTdifferently when you are using 「hidden」 columns in a join than when you are not. In a join, hidden columns are counted as part of the result (even if they are not shown), whereas in normal queries, hidden columns don't participate in theDISTINCTcomparison. We will probably change this in the future to never compare the hidden columns when executingDISTINCT.An example of this is:
SELECT DISTINCT mp3id FROM band_downloads WHERE userid = 9 ORDER BY id DESC;and
SELECT DISTINCT band_downloads.mp3id FROM band_downloads,band_mp3 WHERE band_downloads.userid = 9 AND band_mp3.id = band_downloads.mp3id ORDER BY band_downloads.id DESC;In the second case, using MySQL Server 3.23.x, you may get two identical rows in the result set (because the values in the hidden
idcolumn may differ).Note that this happens only for queries where that do not have the
ORDER BYcolumns in the result.If you execute a
PROCEDUREon a query that returns an empty set, in some cases thePROCEDUREdoes not transform the columns.Creation of a table of type
MERGEdoesn't check whether the underlying tables are compatible types.If you use
ALTER TABLEto add aUNIQUEindex to a table used in aMERGEtable and then add a normal index on theMERGEtable, the key order is different for the tables if there was an old, non-UNIQUEkey in the table. This is becauseALTER TABLEputsUNIQUEindexes before normal indexes to be able to detect duplicate keys as early as possible.
MySQL programs have access to several types of error information when the server returns an error. For example, the mysql client program displays errors using the following format:
shell> SELECT * FROM no_such_table;
ERROR 1146 (42S02): Table 'test.no_such_table' doesn't exist
The message displayed contains three types of information:
A numeric error value (
1146). This number is MySQL-specific and is not portable to other database systems.A five-character SQLSTATE value (
'42S02'). The values are specified by ANSI SQL and ODBC and are more standardized. Not all MySQL error numbers are mapped to SQLSTATE error codes. The value'HY000'(general error) is used for unmapped errors.A string that provides a textual description of the error.
Server error information comes from the following source files. For details about the way that error information is defined, see the MySQL Internals manual, available at http://dev.mysql.com/doc/.
Error message information is listed in the
share/errmsg.txtfile.%dand%srepresent numbers and strings, respectively, that are substituted into the Message values when they are displayed.The Error values listed in
share/errmsg.txtare used to generate the definitions in theinclude/mysqld_error.handinclude/mysqld_ername.hMySQL source files.The SQLSTATE values listed in
share/errmsg.txtare used to generate the definitions in theinclude/sql_state.hMySQL source file.
Because updates are frequent, it is possible that those files will contain additional error information not listed here.
Error:
1000SQLSTATE:HY000(ER_HASHCHK)Message: hashchk
Error:
1001SQLSTATE:HY000(ER_NISAMCHK)Message: isamchk
Error:
1002SQLSTATE:HY000(ER_NO)Message: NO
Error:
1003SQLSTATE:HY000(ER_YES)Message: YES
Error:
1004SQLSTATE:HY000(ER_CANT_CREATE_FILE)Message: '%s' ファイルが作れません (errno: %d)
Error:
1005SQLSTATE:HY000(ER_CANT_CREATE_TABLE)Message: '%s' テーブルが作れません.(errno: %d)
Error:
1006SQLSTATE:HY000(ER_CANT_CREATE_DB)Message: '%s' データベースが作れません (errno: %d)
Error:
1007SQLSTATE:HY000(ER_DB_CREATE_EXISTS)Message: '%s' データベースが作れません.既にそのデータベースが存在します
Error:
1008SQLSTATE:HY000(ER_DB_DROP_EXISTS)Message: '%s' データベースを破棄できません. そのデータベースがないのです.
Error:
1009SQLSTATE:HY000(ER_DB_DROP_DELETE)Message: データベース破棄エラー ('%s' を削除できません, errno: %d)
Error:
1010SQLSTATE:HY000(ER_DB_DROP_RMDIR)Message: データベース破棄エラー ('%s' を rmdir できません, errno: %d)
Error:
1011SQLSTATE:HY000(ER_CANT_DELETE_FILE)Message: '%s' の削除がエラー (errno: %d)
Error:
1012SQLSTATE:HY000(ER_CANT_FIND_SYSTEM_REC)Message: system table のレコードを読む事ができませんでした
Error:
1013SQLSTATE:HY000(ER_CANT_GET_STAT)Message: '%s' のステイタスが得られません. (errno: %d)
Error:
1014SQLSTATE:HY000(ER_CANT_GET_WD)Message: working directory を得る事ができませんでした (errno: %d)
Error:
1015SQLSTATE:HY000(ER_CANT_LOCK)Message: ファイルをロックできません (errno: %d)
Error:
1016SQLSTATE:HY000(ER_CANT_OPEN_FILE)Message: '%s' ファイルを開く事ができません (errno: %d)
Error:
1017SQLSTATE:HY000(ER_FILE_NOT_FOUND)Message: '%s' ファイルを見付ける事ができません.(errno: %d)
Error:
1018SQLSTATE:HY000(ER_CANT_READ_DIR)Message: '%s' ディレクトリが読めません.(errno: %d)
Error:
1019SQLSTATE:HY000(ER_CANT_SET_WD)Message: '%s' ディレクトリに chdir できません.(errno: %d)
Error:
1020SQLSTATE:HY000(ER_CHECKREAD)Message: Record has changed since last read in table '%s'
Error:
1021SQLSTATE:HY000(ER_DISK_FULL)Message: Disk full (%s). 誰かが何かを減らすまでまってください...
Error:
1022SQLSTATE:23000(ER_DUP_KEY)Message: table '%s' に key が重複していて書きこめません
Error:
1023SQLSTATE:HY000(ER_ERROR_ON_CLOSE)Message: Error on close of '%s' (errno: %d)
Error:
1024SQLSTATE:HY000(ER_ERROR_ON_READ)Message: '%s' ファイルの読み込みエラー (errno: %d)
Error:
1025SQLSTATE:HY000(ER_ERROR_ON_RENAME)Message: '%s' を '%s' に rename できません (errno: %d)
Error:
1026SQLSTATE:HY000(ER_ERROR_ON_WRITE)Message: '%s' ファイルを書く事ができません (errno: %d)
Error:
1027SQLSTATE:HY000(ER_FILE_USED)Message: '%s' はロックされています
Error:
1028SQLSTATE:HY000(ER_FILSORT_ABORT)Message: Sort 中断
Error:
1029SQLSTATE:HY000(ER_FORM_NOT_FOUND)Message: View '%s' が '%s' に定義されていません
Error:
1030SQLSTATE:HY000(ER_GET_ERRNO)Message: Got error %d from table handler
Error:
1031SQLSTATE:HY000(ER_ILLEGAL_HA)Message: Table handler for '%s' doesn't have this option
Error:
1032SQLSTATE:HY000(ER_KEY_NOT_FOUND)Message: '%s'のなかにレコードが見付かりません
Error:
1033SQLSTATE:HY000(ER_NOT_FORM_FILE)Message: ファイル '%s' の info が間違っているようです
Error:
1034SQLSTATE:HY000(ER_NOT_KEYFILE)Message: '%s' テーブルの key file が間違っているようです. 修復をしてください
Error:
1035SQLSTATE:HY000(ER_OLD_KEYFILE)Message: '%s' テーブルは古い形式の key file のようです; 修復をしてください
Error:
1036SQLSTATE:HY000(ER_OPEN_AS_READONLY)Message: '%s' は読み込み専用です
Error:
1037SQLSTATE:HY001(ER_OUTOFMEMORY)Message: Out of memory. デーモンをリスタートしてみてください (%d bytes 必要)
Error:
1038SQLSTATE:HY001(ER_OUT_OF_SORTMEMORY)Message: Out of sort memory. sort buffer size が足りないようです.
Error:
1039SQLSTATE:HY000(ER_UNEXPECTED_EOF)Message: '%s' ファイルを読み込み中に EOF が予期せぬ所で現れました. (errno: %d)
Error:
1040SQLSTATE:08004(ER_CON_COUNT_ERROR)Message: 接続が多すぎます
Error:
1041SQLSTATE:HY000(ER_OUT_OF_RESOURCES)Message: Out of memory; mysqld かその他のプロセスがメモリーを全て使っているか確認してください. メモリーを使い切っていない場合、'ulimit' を設定して mysqld のメモリー使用限界量を多くするか、swap space を増やしてみてください
Error:
1042SQLSTATE:08S01(ER_BAD_HOST_ERROR)Message: その address の hostname が引けません.
Error:
1043SQLSTATE:08S01(ER_HANDSHAKE_ERROR)Message: Bad handshake
Error:
1044SQLSTATE:42000(ER_DBACCESS_DENIED_ERROR)Message: ユーザー '%s'@'%s' の '%s' データベースへのアクセスを拒否します
Error:
1045SQLSTATE:28000(ER_ACCESS_DENIED_ERROR)Message: ユーザー '%s'@'%s' を拒否します.uUsing password: %s)
Error:
1046SQLSTATE:3D000(ER_NO_DB_ERROR)Message: データベースが選択されていません.
Error:
1047SQLSTATE:08S01(ER_UNKNOWN_COM_ERROR)Message: そのコマンドは何?
Error:
1048SQLSTATE:23000(ER_BAD_NULL_ERROR)Message: Column '%s' は null にはできないのです
Error:
1049SQLSTATE:42000(ER_BAD_DB_ERROR)Message: '%s' なんてデータベースは知りません.
Error:
1050SQLSTATE:42S01(ER_TABLE_EXISTS_ERROR)Message: Table '%s' は既にあります
Error:
1051SQLSTATE:42S02(ER_BAD_TABLE_ERROR)Message: table '%s' はありません.
Error:
1052SQLSTATE:23000(ER_NON_UNIQ_ERROR)Message: Column: '%s' in %s is ambiguous
Error:
1053SQLSTATE:08S01(ER_SERVER_SHUTDOWN)Message: Server を shutdown 中...
Error:
1054SQLSTATE:42S22(ER_BAD_FIELD_ERROR)Message: '%s' column は '%s' にはありません.
Error:
1055SQLSTATE:42000(ER_WRONG_FIELD_WITH_GROUP)Message: '%s' isn't in GROUP BY
Error:
1056SQLSTATE:42000(ER_WRONG_GROUP_FIELD)Message: Can't group on '%s'
Error:
1057SQLSTATE:42000(ER_WRONG_SUM_SELECT)Message: Statement has sum functions and columns in same statement
Error:
1058SQLSTATE:21S01(ER_WRONG_VALUE_COUNT)Message: Column count doesn't match value count
Error:
1059SQLSTATE:42000(ER_TOO_LONG_IDENT)Message: Identifier name '%s' は長すぎます
Error:
1060SQLSTATE:42S21(ER_DUP_FIELDNAME)Message: '%s' という column 名は重複してます
Error:
1061SQLSTATE:42000(ER_DUP_KEYNAME)Message: '%s' という key の名前は重複しています
Error:
1062SQLSTATE:23000(ER_DUP_ENTRY)Message: '%s' は key %d において重複しています
Error:
1063SQLSTATE:42000(ER_WRONG_FIELD_SPEC)Message: Incorrect column specifier for column '%s'
Error:
1064SQLSTATE:42000(ER_PARSE_ERROR)Message: %s : '%s' 付近 : %d 行目
Error:
1065SQLSTATE:42000(ER_EMPTY_QUERY)Message: Query が空です.
Error:
1066SQLSTATE:42000(ER_NONUNIQ_TABLE)Message: '%s' は一意の table/alias 名ではありません
Error:
1067SQLSTATE:42000(ER_INVALID_DEFAULT)Message: Invalid default value for '%s'
Error:
1068SQLSTATE:42000(ER_MULTIPLE_PRI_KEY)Message: 複数の primary key が定義されました
Error:
1069SQLSTATE:42000(ER_TOO_MANY_KEYS)Message: key の指定が多すぎます. key は最大 %d までです
Error:
1070SQLSTATE:42000(ER_TOO_MANY_KEY_PARTS)Message: Too many key parts specified; max %d parts allowed
Error:
1071SQLSTATE:42000(ER_TOO_LONG_KEY)Message: key が長すぎます. key の長さは最大 %d です
Error:
1072SQLSTATE:42000(ER_KEY_COLUMN_DOES_NOT_EXITS)Message: Key column '%s' がテーブルにありません.
Error:
1073SQLSTATE:42000(ER_BLOB_USED_AS_KEY)Message: BLOB column '%s' can't be used in key specification with the used table type
Error:
1074SQLSTATE:42000(ER_TOO_BIG_FIELDLENGTH)Message: column '%s' は,確保する column の大きさが多すぎます. (最大 %lu まで). BLOB をかわりに使用してください.
Error:
1075SQLSTATE:42000(ER_WRONG_AUTO_KEY)Message: テーブルの定義が違います; there can be only one auto column and it must be defined as a key
Error:
1076SQLSTATE:HY000(ER_READY)Message: %s: 準備完了 Version: '%s' socket: '%s' port: %d"
Error:
1077SQLSTATE:HY000(ER_NORMAL_SHUTDOWN)Message: %s: Normal shutdown
Error:
1078SQLSTATE:HY000(ER_GOT_SIGNAL)Message: %s: Got signal %d. 中断!
Error:
1079SQLSTATE:HY000(ER_SHUTDOWN_COMPLETE)Message: %s: Shutdown 完了
Error:
1080SQLSTATE:08S01(ER_FORCING_CLOSE)Message: %s: スレッド %ld 強制終了 user: '%s'
Error:
1081SQLSTATE:08S01(ER_IPSOCK_ERROR)Message: IP socket が作れません
Error:
1082SQLSTATE:42S12(ER_NO_SUCH_INDEX)Message: Table '%s' はそのような index を持っていません(CREATE INDEX 実行時に指定されていません). テーブルを作り直してください
Error:
1083SQLSTATE:42000(ER_WRONG_FIELD_TERMINATORS)Message: Field separator argument is not what is expected; check the manual
Error:
1084SQLSTATE:42000(ER_BLOBS_AND_NO_TERMINATED)Message: You can't use fixed rowlength with BLOBs; please use 'fields terminated by'.
Error:
1085SQLSTATE:HY000(ER_TEXTFILE_NOT_READABLE)Message: ファイル '%s' は databse の directory にあるか全てのユーザーが読めるように許可されていなければなりません.
Error:
1086SQLSTATE:HY000(ER_FILE_EXISTS_ERROR)Message: File '%s' は既に存在します
Error:
1087SQLSTATE:HY000(ER_LOAD_INFO)Message: レコード数: %ld 削除: %ld Skipped: %ld Warnings: %ld
Error:
1088SQLSTATE:HY000(ER_ALTER_INFO)Message: レコード数: %ld 重複: %ld
Error:
1089SQLSTATE:HY000(ER_WRONG_SUB_KEY)Message: Incorrect prefix key; the used key part isn't a string or the used length is longer than the key part
Error:
1090SQLSTATE:42000(ER_CANT_REMOVE_ALL_FIELDS)Message: ALTER TABLE で全ての column は削除できません. DROP TABLE を使用してください
Error:
1091SQLSTATE:42000(ER_CANT_DROP_FIELD_OR_KEY)Message: '%s' を破棄できませんでした; check that column/key exists
Error:
1092SQLSTATE:HY000(ER_INSERT_INFO)Message: レコード数: %ld 重複数: %ld Warnings: %ld
Error:
1093SQLSTATE:HY000(ER_UPDATE_TABLE_USED)Message: You can't specify target table '%s' for update in FROM clause
Error:
1094SQLSTATE:HY000(ER_NO_SUCH_THREAD)Message: thread id: %lu はありません
Error:
1095SQLSTATE:HY000(ER_KILL_DENIED_ERROR)Message: thread %lu のオーナーではありません
Error:
1096SQLSTATE:HY000(ER_NO_TABLES_USED)Message: No tables used
Error:
1097SQLSTATE:HY000(ER_TOO_BIG_SET)Message: Too many strings for column %s and SET
Error:
1098SQLSTATE:HY000(ER_NO_UNIQUE_LOGFILE)Message: Can't generate a unique log-filename %s.(1-999)
Error:
1099SQLSTATE:HY000(ER_TABLE_NOT_LOCKED_FOR_WRITE)Message: Table '%s' は READ lock になっていて、更新はできません
Error:
1100SQLSTATE:HY000(ER_TABLE_NOT_LOCKED)Message: Table '%s' は LOCK TABLES によってロックされていません
Error:
1101SQLSTATE:42000(ER_BLOB_CANT_HAVE_DEFAULT)Message: BLOB column '%s' can't have a default value
Error:
1102SQLSTATE:42000(ER_WRONG_DB_NAME)Message: 指定した database 名 '%s' が間違っています
Error:
1103SQLSTATE:42000(ER_WRONG_TABLE_NAME)Message: 指定した table 名 '%s' はまちがっています
Error:
1104SQLSTATE:42000(ER_TOO_BIG_SELECT)Message: The SELECT would examine more than MAX_JOIN_SIZE rows; check your WHERE and use SET SQL_BIG_SELECTS=1 or SET MAX_JOIN_SIZE=# if the SELECT is okay
Error:
1105SQLSTATE:HY000(ER_UNKNOWN_ERROR)Message: Unknown error
Error:
1106SQLSTATE:42000(ER_UNKNOWN_PROCEDURE)Message: Unknown procedure '%s'
Error:
1107SQLSTATE:42000(ER_WRONG_PARAMCOUNT_TO_PROCEDURE)Message: Incorrect parameter count to procedure '%s'
Error:
1108SQLSTATE:HY000(ER_WRONG_PARAMETERS_TO_PROCEDURE)Message: Incorrect parameters to procedure '%s'
Error:
1109SQLSTATE:42S02(ER_UNKNOWN_TABLE)Message: Unknown table '%s' in %s
Error:
1110SQLSTATE:42000(ER_FIELD_SPECIFIED_TWICE)Message: Column '%s' specified twice
Error:
1111SQLSTATE:HY000(ER_INVALID_GROUP_FUNC_USE)Message: Invalid use of group function
Error:
1112SQLSTATE:42000(ER_UNSUPPORTED_EXTENSION)Message: Table '%s' uses an extension that doesn't exist in this MySQL version
Error:
1113SQLSTATE:42000(ER_TABLE_MUST_HAVE_COLUMNS)Message: テーブルは最低 1 個の column が必要です
Error:
1114SQLSTATE:HY000(ER_RECORD_FILE_FULL)Message: table '%s' はいっぱいです
Error:
1115SQLSTATE:42000(ER_UNKNOWN_CHARACTER_SET)Message: character set '%s' はサポートしていません
Error:
1116SQLSTATE:HY000(ER_TOO_MANY_TABLES)Message: テーブルが多すぎます; MySQL can only use %d tables in a join
Error:
1117SQLSTATE:HY000(ER_TOO_MANY_FIELDS)Message: column が多すぎます
Error:
1118SQLSTATE:42000(ER_TOO_BIG_ROWSIZE)Message: row size が大きすぎます. BLOB を含まない場合の row size の最大は %ld です. いくつかの field を BLOB に変えてください.
Error:
1119SQLSTATE:HY000(ER_STACK_OVERRUN)Message: Thread stack overrun: Used: %ld of a %ld stack. スタック領域を多くとりたい場合、'mysqld -O thread_stack=#' と指定してください
Error:
1120SQLSTATE:42000(ER_WRONG_OUTER_JOIN)Message: Cross dependency found in OUTER JOIN; examine your ON conditions
Error:
1121SQLSTATE:42000(ER_NULL_COLUMN_IN_INDEX)Message: Table handler doesn't support NULL in given index. Please change column '%s' to be NOT NULL or use another handler
Error:
1122SQLSTATE:HY000(ER_CANT_FIND_UDF)Message: function '%s' を ロードできません
Error:
1123SQLSTATE:HY000(ER_CANT_INITIALIZE_UDF)Message: function '%s' を初期化できません; %s
Error:
1124SQLSTATE:HY000(ER_UDF_NO_PATHS)Message: shared library へのパスが通っていません
Error:
1125SQLSTATE:HY000(ER_UDF_EXISTS)Message: Function '%s' は既に定義されています
Error:
1126SQLSTATE:HY000(ER_CANT_OPEN_LIBRARY)Message: shared library '%s' を開く事ができません (errno: %d %s)
Error:
1127SQLSTATE:HY000(ER_CANT_FIND_DL_ENTRY)Message: function '%s' をライブラリー中に見付ける事ができません
Error:
1128SQLSTATE:HY000(ER_FUNCTION_NOT_DEFINED)Message: Function '%s' は定義されていません
Error:
1129SQLSTATE:HY000(ER_HOST_IS_BLOCKED)Message: Host '%s' は many connection error のため、拒否されました. 'mysqladmin flush-hosts' で解除してください
Error:
1130SQLSTATE:HY000(ER_HOST_NOT_PRIVILEGED)Message: Host '%s' は MySQL server に接続を許可されていません
Error:
1131SQLSTATE:42000(ER_PASSWORD_ANONYMOUS_USER)Message: MySQL を anonymous users で使用している状態では、パスワードの変更はできません
Error:
1132SQLSTATE:42000(ER_PASSWORD_NOT_ALLOWED)Message: 他のユーザーのパスワードを変更するためには, mysql データベースに対して update の許可がなければなりません.
Error:
1133SQLSTATE:42000(ER_PASSWORD_NO_MATCH)Message: Can't find any matching row in the user table
Error:
1134SQLSTATE:HY000(ER_UPDATE_INFO)Message: 一致数(Rows matched): %ld 変更: %ld Warnings: %ld
Error:
1135SQLSTATE:HY000(ER_CANT_CREATE_THREAD)Message: 新規にスレッドが作れませんでした (errno %d). もし最大使用許可メモリー数を越えていないのにエラーが発生しているなら, マニュアルの中から 'possible OS-dependent bug' という文字を探してくみてださい.
Error:
1136SQLSTATE:21S01(ER_WRONG_VALUE_COUNT_ON_ROW)Message: Column count doesn't match value count at row %ld
Error:
1137SQLSTATE:HY000(ER_CANT_REOPEN_TABLE)Message: Can't reopen table: '%s'
Error:
1138SQLSTATE:22004(ER_INVALID_USE_OF_NULL)Message: NULL 値の使用方法が不適切です
Error:
1139SQLSTATE:42000(ER_REGEXP_ERROR)Message: Got error '%s' from regexp
Error:
1140SQLSTATE:42000(ER_MIX_OF_GROUP_FUNC_AND_FIELDS)Message: Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause
Error:
1141SQLSTATE:42000(ER_NONEXISTING_GRANT)Message: ユーザー '%s' (ホスト '%s' のユーザー) は許可されていません
Error:
1142SQLSTATE:42000(ER_TABLEACCESS_DENIED_ERROR)Message: コマンド %s は ユーザー '%s'@'%s' ,テーブル '%s' に対して許可されていません
Error:
1143SQLSTATE:42000(ER_COLUMNACCESS_DENIED_ERROR)Message: コマンド %s は ユーザー '%s'@'%s' カラム '%s' テーブル '%s' に対して許可されていません
Error:
1144SQLSTATE:42000(ER_ILLEGAL_GRANT_FOR_TABLE)Message: Illegal GRANT/REVOKE command; please consult the manual to see which privleges can be used.
Error:
1145SQLSTATE:42000(ER_GRANT_WRONG_HOST_OR_USER)Message: The host or user argument to GRANT is too long
Error:
1146SQLSTATE:42S02(ER_NO_SUCH_TABLE)Message: Table '%s.%s' doesn't exist
Error:
1147SQLSTATE:42000(ER_NONEXISTING_TABLE_GRANT)Message: There is no such grant defined for user '%s' on host '%s' on table '%s'
Error:
1148SQLSTATE:42000(ER_NOT_ALLOWED_COMMAND)Message: The used command is not allowed with this MySQL version
Error:
1149SQLSTATE:42000(ER_SYNTAX_ERROR)Message: Something is wrong in your syntax
Error:
1150SQLSTATE:HY000(ER_DELAYED_CANT_CHANGE_LOCK)Message: Delayed insert thread couldn't get requested lock for table %s
Error:
1151SQLSTATE:HY000(ER_TOO_MANY_DELAYED_THREADS)Message: Too many delayed threads in use
Error:
1152SQLSTATE:08S01(ER_ABORTING_CONNECTION)Message: Aborted connection %ld to db: '%s' user: '%s' (%s)
Error:
1153SQLSTATE:08S01(ER_NET_PACKET_TOO_LARGE)Message: Got a packet bigger than 'max_allowed_packet' bytes
Error:
1154SQLSTATE:08S01(ER_NET_READ_ERROR_FROM_PIPE)Message: Got a read error from the connection pipe
Error:
1155SQLSTATE:08S01(ER_NET_FCNTL_ERROR)Message: Got an error from fcntl()
Error:
1156SQLSTATE:08S01(ER_NET_PACKETS_OUT_OF_ORDER)Message: Got packets out of order
Error:
1157SQLSTATE:08S01(ER_NET_UNCOMPRESS_ERROR)Message: Couldn't uncompress communication packet
Error:
1158SQLSTATE:08S01(ER_NET_READ_ERROR)Message: Got an error reading communication packets
Error:
1159SQLSTATE:08S01(ER_NET_READ_INTERRUPTED)Message: Got timeout reading communication packets
Error:
1160SQLSTATE:08S01(ER_NET_ERROR_ON_WRITE)Message: Got an error writing communication packets
Error:
1161SQLSTATE:08S01(ER_NET_WRITE_INTERRUPTED)Message: Got timeout writing communication packets
Error:
1162SQLSTATE:42000(ER_TOO_LONG_STRING)Message: Result string is longer than 'max_allowed_packet' bytes
Error:
1163SQLSTATE:42000(ER_TABLE_CANT_HANDLE_BLOB)Message: The used table type doesn't support BLOB/TEXT columns
Error:
1164SQLSTATE:42000(ER_TABLE_CANT_HANDLE_AUTO_INCREMENT)Message: The used table type doesn't support AUTO_INCREMENT columns
Error:
1165SQLSTATE:HY000(ER_DELAYED_INSERT_TABLE_LOCKED)Message: INSERT DELAYED can't be used with table '%s', because it is locked with LOCK TABLES
Error:
1166SQLSTATE:42000(ER_WRONG_COLUMN_NAME)Message: Incorrect column name '%s'
Error:
1167SQLSTATE:42000(ER_WRONG_KEY_COLUMN)Message: The used table handler can't index column '%s'
Error:
1168SQLSTATE:HY000(ER_WRONG_MRG_TABLE)Message: All tables in the MERGE table are not defined identically
Error:
1169SQLSTATE:23000(ER_DUP_UNIQUE)Message: Can't write, because of unique constraint, to table '%s'
Error:
1170SQLSTATE:42000(ER_BLOB_KEY_WITHOUT_LENGTH)Message: BLOB column '%s' used in key specification without a key length
Error:
1171SQLSTATE:42000(ER_PRIMARY_CANT_HAVE_NULL)Message: All parts of a PRIMARY KEY must be NOT NULL; if you need NULL in a key, use UNIQUE instead
Error:
1172SQLSTATE:42000(ER_TOO_MANY_ROWS)Message: Result consisted of more than one row
Error:
1173SQLSTATE:42000(ER_REQUIRES_PRIMARY_KEY)Message: This table type requires a primary key
Error:
1174SQLSTATE:HY000(ER_NO_RAID_COMPILED)Message: This version of MySQL is not compiled with RAID support
Error:
1175SQLSTATE:HY000(ER_UPDATE_WITHOUT_KEY_IN_SAFE_MODE)Message: You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column
Error:
1176SQLSTATE:42000(ER_KEY_DOES_NOT_EXITS)Message: Key '%s' doesn't exist in table '%s'
Error:
1177SQLSTATE:42000(ER_CHECK_NO_SUCH_TABLE)Message: Can't open table
Error:
1178SQLSTATE:42000(ER_CHECK_NOT_IMPLEMENTED)Message: The handler for the table doesn't support %s
Error:
1179SQLSTATE:25000(ER_CANT_DO_THIS_DURING_AN_TRANSACTION)Message: You are not allowed to execute this command in a transaction
Error:
1180SQLSTATE:HY000(ER_ERROR_DURING_COMMIT)Message: Got error %d during COMMIT
Error:
1181SQLSTATE:HY000(ER_ERROR_DURING_ROLLBACK)Message: Got error %d during ROLLBACK
Error:
1182SQLSTATE:HY000(ER_ERROR_DURING_FLUSH_LOGS)Message: Got error %d during FLUSH_LOGS
Error:
1183SQLSTATE:HY000(ER_ERROR_DURING_CHECKPOINT)Message: Got error %d during CHECKPOINT
Error:
1184SQLSTATE:08S01(ER_NEW_ABORTING_CONNECTION)Message: Aborted connection %ld to db: '%s' user: '%s' host: '%s' (%s)
Error:
1185SQLSTATE:HY000(ER_DUMP_NOT_IMPLEMENTED)Message: The handler for the table does not support binary table dump
Error:
1186SQLSTATE:HY000(ER_FLUSH_MASTER_BINLOG_CLOSED)Message: Binlog closed, cannot RESET MASTER
Error:
1187SQLSTATE:HY000(ER_INDEX_REBUILD)Message: Failed rebuilding the index of dumped table '%s'
Error:
1188SQLSTATE:HY000(ER_MASTER)Message: Error from master: '%s'
Error:
1189SQLSTATE:08S01(ER_MASTER_NET_READ)Message: Net error reading from master
Error:
1190SQLSTATE:08S01(ER_MASTER_NET_WRITE)Message: Net error writing to master
Error:
1191SQLSTATE:HY000(ER_FT_MATCHING_KEY_NOT_FOUND)Message: Can't find FULLTEXT index matching the column list
Error:
1192SQLSTATE:HY000(ER_LOCK_OR_ACTIVE_TRANSACTION)Message: Can't execute the given command because you have active locked tables or an active transaction
Error:
1193SQLSTATE:HY000(ER_UNKNOWN_SYSTEM_VARIABLE)Message: Unknown system variable '%s'
Error:
1194SQLSTATE:HY000(ER_CRASHED_ON_USAGE)Message: Table '%s' is marked as crashed and should be repaired
Error:
1195SQLSTATE:HY000(ER_CRASHED_ON_REPAIR)Message: Table '%s' is marked as crashed and last (automatic?) repair failed
Error:
1196SQLSTATE:HY000(ER_WARNING_NOT_COMPLETE_ROLLBACK)Message: Some non-transactional changed tables couldn't be rolled back
Error:
1197SQLSTATE:HY000(ER_TRANS_CACHE_FULL)Message: Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage; increase this mysqld variable and try again
Error:
1198SQLSTATE:HY000(ER_SLAVE_MUST_STOP)Message: This operation cannot be performed with a running slave; run STOP SLAVE first
Error:
1199SQLSTATE:HY000(ER_SLAVE_NOT_RUNNING)Message: This operation requires a running slave; configure slave and do START SLAVE
Error:
1200SQLSTATE:HY000(ER_BAD_SLAVE)Message: The server is not configured as slave; fix in config file or with CHANGE MASTER TO
Error:
1201SQLSTATE:HY000(ER_MASTER_INFO)Message: Could not initialize master info structure; more error messages can be found in the MySQL error log
Error:
1202SQLSTATE:HY000(ER_SLAVE_THREAD)Message: Could not create slave thread; check system resources
Error:
1203SQLSTATE:42000(ER_TOO_MANY_USER_CONNECTIONS)Message: User %s already has more than 'max_user_connections' active connections
Error:
1204SQLSTATE:HY000(ER_SET_CONSTANTS_ONLY)Message: You may only use constant expressions with SET
Error:
1205SQLSTATE:HY000(ER_LOCK_WAIT_TIMEOUT)Message: Lock wait timeout exceeded; try restarting transaction
Error:
1206SQLSTATE:HY000(ER_LOCK_TABLE_FULL)Message: The total number of locks exceeds the lock table size
Error:
1207SQLSTATE:25000(ER_READ_ONLY_TRANSACTION)Message: Update locks cannot be acquired during a READ UNCOMMITTED transaction
Error:
1208SQLSTATE:HY000(ER_DROP_DB_WITH_READ_LOCK)Message: DROP DATABASE not allowed while thread is holding global read lock
Error:
1209SQLSTATE:HY000(ER_CREATE_DB_WITH_READ_LOCK)Message: CREATE DATABASE not allowed while thread is holding global read lock
Error:
1210SQLSTATE:HY000(ER_WRONG_ARGUMENTS)Message: Incorrect arguments to %s
Error:
1211SQLSTATE:42000(ER_NO_PERMISSION_TO_CREATE_USER)Message: '%s'@'%s' is not allowed to create new users
Error:
1212SQLSTATE:HY000(ER_UNION_TABLES_IN_DIFFERENT_DIR)Message: Incorrect table definition; all MERGE tables must be in the same database
Error:
1213SQLSTATE:40001(ER_LOCK_DEADLOCK)Message: Deadlock found when trying to get lock; try restarting transaction
Error:
1214SQLSTATE:HY000(ER_TABLE_CANT_HANDLE_FT)Message: The used table type doesn't support FULLTEXT indexes
Error:
1215SQLSTATE:HY000(ER_CANNOT_ADD_FOREIGN)Message: Cannot add foreign key constraint
Error:
1216SQLSTATE:23000(ER_NO_REFERENCED_ROW)Message: Cannot add or update a child row: a foreign key constraint fails
Error:
1217SQLSTATE:23000(ER_ROW_IS_REFERENCED)Message: Cannot delete or update a parent row: a foreign key constraint fails
Error:
1218SQLSTATE:08S01(ER_CONNECT_TO_MASTER)Message: Error connecting to master: %s
Error:
1219SQLSTATE:HY000(ER_QUERY_ON_MASTER)Message: Error running query on master: %s
Error:
1220SQLSTATE:HY000(ER_ERROR_WHEN_EXECUTING_COMMAND)Message: Error when executing command %s: %s
Error:
1221SQLSTATE:HY000(ER_WRONG_USAGE)Message: Incorrect usage of %s and %s
Error:
1222SQLSTATE:21000(ER_WRONG_NUMBER_OF_COLUMNS_IN_SELECT)Message: The used SELECT statements have a different number of columns
Error:
1223SQLSTATE:HY000(ER_CANT_UPDATE_WITH_READLOCK)Message: Can't execute the query because you have a conflicting read lock
Error:
1224SQLSTATE:HY000(ER_MIXING_NOT_ALLOWED)Message: Mixing of transactional and non-transactional tables is disabled
Error:
1225SQLSTATE:HY000(ER_DUP_ARGUMENT)Message: Option '%s' used twice in statement
Error:
1226SQLSTATE:42000(ER_USER_LIMIT_REACHED)Message: User '%s' has exceeded the '%s' resource (current value: %ld)
Error:
1227SQLSTATE:42000(ER_SPECIFIC_ACCESS_DENIED_ERROR)Message: Access denied; you need the %s privilege for this operation
Error:
1228SQLSTATE:HY000(ER_LOCAL_VARIABLE)Message: Variable '%s' is a SESSION variable and can't be used with SET GLOBAL
Error:
1229SQLSTATE:HY000(ER_GLOBAL_VARIABLE)Message: Variable '%s' is a GLOBAL variable and should be set with SET GLOBAL
Error:
1230SQLSTATE:42000(ER_NO_DEFAULT)Message: Variable '%s' doesn't have a default value
Error:
1231SQLSTATE:42000(ER_WRONG_VALUE_FOR_VAR)Message: Variable '%s' can't be set to the value of '%s'
Error:
1232SQLSTATE:42000(ER_WRONG_TYPE_FOR_VAR)Message: Incorrect argument type to variable '%s'
Error:
1233SQLSTATE:HY000(ER_VAR_CANT_BE_READ)Message: Variable '%s' can only be set, not read
Error:
1234SQLSTATE:42000(ER_CANT_USE_OPTION_HERE)Message: Incorrect usage/placement of '%s'
Error:
1235SQLSTATE:42000(ER_NOT_SUPPORTED_YET)Message: This version of MySQL doesn't yet support '%s'
Error:
1236SQLSTATE:HY000(ER_MASTER_FATAL_ERROR_READING_BINLOG)Message: Got fatal error %d from master when reading data from binary log: '%s'
Error:
1237SQLSTATE:HY000(ER_SLAVE_IGNORED_TABLE)Message: Slave SQL thread ignored the query because of replicate-*-table rules
Error:
1238SQLSTATE:HY000(ER_INCORRECT_GLOBAL_LOCAL_VAR)Message: Variable '%s' is a %s variable
Error:
1239SQLSTATE:42000(ER_WRONG_FK_DEF)Message: Incorrect foreign key definition for '%s': %s
Error:
1240SQLSTATE:HY000(ER_KEY_REF_DO_NOT_MATCH_TABLE_REF)Message: Key reference and table reference don't match
Error:
1241SQLSTATE:21000(ER_OPERAND_COLUMNS)Message: Operand should contain %d column(s)
Error:
1242SQLSTATE:21000(ER_SUBQUERY_NO_1_ROW)Message: Subquery returns more than 1 row
Error:
1243SQLSTATE:HY000(ER_UNKNOWN_STMT_HANDLER)Message: Unknown prepared statement handler (%.*s) given to %s
Error:
1244SQLSTATE:HY000(ER_CORRUPT_HELP_DB)Message: Help database is corrupt or does not exist
Error:
1245SQLSTATE:HY000(ER_CYCLIC_REFERENCE)Message: Cyclic reference on subqueries
Error:
1246SQLSTATE:HY000(ER_AUTO_CONVERT)Message: Converting column '%s' from %s to %s
Error:
1247SQLSTATE:42S22(ER_ILLEGAL_REFERENCE)Message: Reference '%s' not supported (%s)
Error:
1248SQLSTATE:42000(ER_DERIVED_MUST_HAVE_ALIAS)Message: Every derived table must have its own alias
Error:
1249SQLSTATE:01000(ER_SELECT_REDUCED)Message: Select %u was reduced during optimization
Error:
1250SQLSTATE:42000(ER_TABLENAME_NOT_ALLOWED_HERE)Message: Table '%s' from one of the SELECTs cannot be used in %s
Error:
1251SQLSTATE:08004(ER_NOT_SUPPORTED_AUTH_MODE)Message: Client does not support authentication protocol requested by server; consider upgrading MySQL client
Error:
1252SQLSTATE:42000(ER_SPATIAL_CANT_HAVE_NULL)Message: All parts of a SPATIAL index must be NOT NULL
Error:
1253SQLSTATE:42000(ER_COLLATION_CHARSET_MISMATCH)Message: COLLATION '%s' is not valid for CHARACTER SET '%s'
Error:
1254SQLSTATE:HY000(ER_SLAVE_WAS_RUNNING)Message: Slave is already running
Error:
1255SQLSTATE:HY000(ER_SLAVE_WAS_NOT_RUNNING)Message: Slave already has been stopped
Error:
1256SQLSTATE:HY000(ER_TOO_BIG_FOR_UNCOMPRESS)Message: Uncompressed data size too large; the maximum size is %d (probably, length of uncompressed data was corrupted)
Error:
1257SQLSTATE:HY000(ER_ZLIB_Z_MEM_ERROR)Message: ZLIB: Not enough memory
Error:
1258SQLSTATE:HY000(ER_ZLIB_Z_BUF_ERROR)Message: ZLIB: Not enough room in the output buffer (probably, length of uncompressed data was corrupted)
Error:
1259SQLSTATE:HY000(ER_ZLIB_Z_DATA_ERROR)Message: ZLIB: Input data corrupted
Error:
1260SQLSTATE:HY000(ER_CUT_VALUE_GROUP_CONCAT)Message: %d line(s) were cut by GROUP_CONCAT()
Error:
1261SQLSTATE:01000(ER_WARN_TOO_FEW_RECORDS)Message: Row %ld doesn't contain data for all columns
Error:
1262SQLSTATE:01000(ER_WARN_TOO_MANY_RECORDS)Message: Row %ld was truncated; it contained more data than there were input columns
Error:
1263SQLSTATE:22004(ER_WARN_NULL_TO_NOTNULL)Message: Column set to default value; NULL supplied to NOT NULL column '%s' at row %ld
Error:
1264SQLSTATE:22003(ER_WARN_DATA_OUT_OF_RANGE)Message: Out of range value for column '%s' at row %ld
Error:
1265SQLSTATE:01000(WARN_DATA_TRUNCATED)Message: Data truncated for column '%s' at row %ld
Error:
1266SQLSTATE:HY000(ER_WARN_USING_OTHER_HANDLER)Message: Using storage engine %s for table '%s'
Error:
1267SQLSTATE:HY000(ER_CANT_AGGREGATE_2COLLATIONS)Message: Illegal mix of collations (%s,%s) and (%s,%s) for operation '%s'
Error:
1268SQLSTATE:HY000(ER_DROP_USER)Message: Cannot drop one or more of the requested users
Error:
1269SQLSTATE:HY000(ER_REVOKE_GRANTS)Message: Can't revoke all privileges for one or more of the requested users
Error:
1270SQLSTATE:HY000(ER_CANT_AGGREGATE_3COLLATIONS)Message: Illegal mix of collations (%s,%s), (%s,%s), (%s,%s) for operation '%s'
Error:
1271SQLSTATE:HY000(ER_CANT_AGGREGATE_NCOLLATIONS)Message: Illegal mix of collations for operation '%s'
Error:
1272SQLSTATE:HY000(ER_VARIABLE_IS_NOT_STRUCT)Message: Variable '%s' is not a variable component (can't be used as XXXX.variable_name)
Error:
1273SQLSTATE:HY000(ER_UNKNOWN_COLLATION)Message: Unknown collation: '%s'
Error:
1274SQLSTATE:HY000(ER_SLAVE_IGNORED_SSL_PARAMS)Message: SSL parameters in CHANGE MASTER are ignored because this MySQL slave was compiled without SSL support; they can be used later if MySQL slave with SSL is started
Error:
1275SQLSTATE:HY000(ER_SERVER_IS_IN_SECURE_AUTH_MODE)Message: Server is running in --secure-auth mode, but '%s'@'%s' has a password in the old format; please change the password to the new format
Error:
1276SQLSTATE:HY000(ER_WARN_FIELD_RESOLVED)Message: Field or reference '%s%s%s%s%s' of SELECT #%d was resolved in SELECT #%d
Error:
1277SQLSTATE:HY000(ER_BAD_SLAVE_UNTIL_COND)Message: Incorrect parameter or combination of parameters for START SLAVE UNTIL
Error:
1278SQLSTATE:HY000(ER_MISSING_SKIP_SLAVE)Message: It is recommended to use --skip-slave-start when doing step-by-step replication with START SLAVE UNTIL; otherwise, you will get problems if you get an unexpected slave's mysqld restart
Error:
1279SQLSTATE:HY000(ER_UNTIL_COND_IGNORED)Message: SQL thread is not to be started so UNTIL options are ignored
Error:
1280SQLSTATE:42000(ER_WRONG_NAME_FOR_INDEX)Message: Incorrect index name '%s'
Error:
1281SQLSTATE:42000(ER_WRONG_NAME_FOR_CATALOG)Message: Incorrect catalog name '%s'
Error:
1282SQLSTATE:HY000(ER_WARN_QC_RESIZE)Message: Query cache failed to set size %lu; new query cache size is %lu
Error:
1283SQLSTATE:HY000(ER_BAD_FT_COLUMN)Message: Column '%s' cannot be part of FULLTEXT index
Error:
1284SQLSTATE:HY000(ER_UNKNOWN_KEY_CACHE)Message: Unknown key cache '%s'
Error:
1285SQLSTATE:HY000(ER_WARN_HOSTNAME_WONT_WORK)Message: MySQL is started in --skip-name-resolve mode; you must restart it without this switch for this grant to work
Error:
1286SQLSTATE:42000(ER_UNKNOWN_STORAGE_ENGINE)Message: Unknown table engine '%s'
Error:
1287SQLSTATE:HY000(ER_WARN_DEPRECATED_SYNTAX)Message: '%s' is deprecated and will be removed in a future release. Please use %s instead
Error:
1288SQLSTATE:HY000(ER_NON_UPDATABLE_TABLE)Message: The target table %s of the %s is not updatable
Error:
1289SQLSTATE:HY000(ER_FEATURE_DISABLED)Message: The '%s' feature is disabled; you need MySQL built with '%s' to have it working
Error:
1290SQLSTATE:HY000(ER_OPTION_PREVENTS_STATEMENT)Message: The MySQL server is running with the %s option so it cannot execute this statement
Error:
1291SQLSTATE:HY000(ER_DUPLICATED_VALUE_IN_TYPE)Message: Column '%s' has duplicated value '%s' in %s
Error:
1292SQLSTATE:22007(ER_TRUNCATED_WRONG_VALUE)Message: Truncated incorrect %s value: '%s'
Error:
1293SQLSTATE:HY000(ER_TOO_MUCH_AUTO_TIMESTAMP_COLS)Message: Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause
Error:
1294SQLSTATE:HY000(ER_INVALID_ON_UPDATE)Message: Invalid ON UPDATE clause for '%s' column
Error:
1295SQLSTATE:HY000(ER_UNSUPPORTED_PS)Message: This command is not supported in the prepared statement protocol yet
Error:
1296SQLSTATE:HY000(ER_GET_ERRMSG)Message: Got error %d '%s' from %s
Error:
1297SQLSTATE:HY000(ER_GET_TEMPORARY_ERRMSG)Message: Got temporary error %d '%s' from %s
Error:
1298SQLSTATE:HY000(ER_UNKNOWN_TIME_ZONE)Message: Unknown or incorrect time zone: '%s'
Error:
1299SQLSTATE:HY000(ER_WARN_INVALID_TIMESTAMP)Message: Invalid TIMESTAMP value in column '%s' at row %ld
Error:
1300SQLSTATE:HY000(ER_INVALID_CHARACTER_STRING)Message: Invalid %s character string: '%s'
Error:
1301SQLSTATE:HY000(ER_WARN_ALLOWED_PACKET_OVERFLOWED)Message: Result of %s() was larger than max_allowed_packet (%ld) - truncated
Error:
1302SQLSTATE:HY000(ER_CONFLICTING_DECLARATIONS)Message: Conflicting declarations: '%s%s' and '%s%s'
Error:
1303SQLSTATE:2F003(ER_SP_NO_RECURSIVE_CREATE)Message: Can't create a %s from within another stored routine
Error:
1304SQLSTATE:42000(ER_SP_ALREADY_EXISTS)Message: %s %s already exists
Error:
1305SQLSTATE:42000(ER_SP_DOES_NOT_EXIST)Message: %s %s does not exist
Error:
1306SQLSTATE:HY000(ER_SP_DROP_FAILED)Message: Failed to DROP %s %s
Error:
1307SQLSTATE:HY000(ER_SP_STORE_FAILED)Message: Failed to CREATE %s %s
Error:
1308SQLSTATE:42000(ER_SP_LILABEL_MISMATCH)Message: %s with no matching label: %s
Error:
1309SQLSTATE:42000(ER_SP_LABEL_REDEFINE)Message: Redefining label %s
Error:
1310SQLSTATE:42000(ER_SP_LABEL_MISMATCH)Message: End-label %s without match
Error:
1311SQLSTATE:01000(ER_SP_UNINIT_VAR)Message: Referring to uninitialized variable %s
Error:
1312SQLSTATE:0A000(ER_SP_BADSELECT)Message: PROCEDURE %s can't return a result set in the given context
Error:
1313SQLSTATE:42000(ER_SP_BADRETURN)Message: RETURN is only allowed in a FUNCTION
Error:
1314SQLSTATE:0A000(ER_SP_BADSTATEMENT)Message: %s is not allowed in stored procedures
Error:
1315SQLSTATE:42000(ER_UPDATE_LOG_DEPRECATED_IGNORED)Message: The update log is deprecated and replaced by the binary log; SET SQL_LOG_UPDATE has been ignored. This option will be removed in MySQL 5.6.
Error:
1316SQLSTATE:42000(ER_UPDATE_LOG_DEPRECATED_TRANSLATED)Message: The update log is deprecated and replaced by the binary log; SET SQL_LOG_UPDATE has been translated to SET SQL_LOG_BIN. This option will be removed in MySQL 5.6.
Error:
1317SQLSTATE:70100(ER_QUERY_INTERRUPTED)Message: Query execution was interrupted
Error:
1318SQLSTATE:42000(ER_SP_WRONG_NO_OF_ARGS)Message: Incorrect number of arguments for %s %s; expected %u, got %u
Error:
1319SQLSTATE:42000(ER_SP_COND_MISMATCH)Message: Undefined CONDITION: %s
Error:
1320SQLSTATE:42000(ER_SP_NORETURN)Message: No RETURN found in FUNCTION %s
Error:
1321SQLSTATE:2F005(ER_SP_NORETURNEND)Message: FUNCTION %s ended without RETURN
Error:
1322SQLSTATE:42000(ER_SP_BAD_CURSOR_QUERY)Message: Cursor statement must be a SELECT
Error:
1323SQLSTATE:42000(ER_SP_BAD_CURSOR_SELECT)Message: Cursor SELECT must not have INTO
Error:
1324SQLSTATE:42000(ER_SP_CURSOR_MISMATCH)Message: Undefined CURSOR: %s
Error:
1325SQLSTATE:24000(ER_SP_CURSOR_ALREADY_OPEN)Message: Cursor is already open
Error:
1326SQLSTATE:24000(ER_SP_CURSOR_NOT_OPEN)Message: Cursor is not open
Error:
1327SQLSTATE:42000(ER_SP_UNDECLARED_VAR)Message: Undeclared variable: %s
Error:
1328SQLSTATE:HY000(ER_SP_WRONG_NO_OF_FETCH_ARGS)Message: Incorrect number of FETCH variables
Error:
1329SQLSTATE:02000(ER_SP_FETCH_NO_DATA)Message: No data - zero rows fetched, selected, or processed
Error:
1330SQLSTATE:42000(ER_SP_DUP_PARAM)Message: Duplicate parameter: %s
Error:
1331SQLSTATE:42000(ER_SP_DUP_VAR)Message: Duplicate variable: %s
Error:
1332SQLSTATE:42000(ER_SP_DUP_COND)Message: Duplicate condition: %s
Error:
1333SQLSTATE:42000(ER_SP_DUP_CURS)Message: Duplicate cursor: %s
Error:
1334SQLSTATE:HY000(ER_SP_CANT_ALTER)Message: Failed to ALTER %s %s
Error:
1335SQLSTATE:0A000(ER_SP_SUBSELECT_NYI)Message: Subquery value not supported
Error:
1336SQLSTATE:0A000(ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG)Message: %s is not allowed in stored function or trigger
Error:
1337SQLSTATE:42000(ER_SP_VARCOND_AFTER_CURSHNDLR)Message: Variable or condition declaration after cursor or handler declaration
Error:
1338SQLSTATE:42000(ER_SP_CURSOR_AFTER_HANDLER)Message: Cursor declaration after handler declaration
Error:
1339SQLSTATE:20000(ER_SP_CASE_NOT_FOUND)Message: Case not found for CASE statement
Error:
1340SQLSTATE:HY000(ER_FPARSER_TOO_BIG_FILE)Message: Configuration file '%s' is too big
Error:
1341SQLSTATE:HY000(ER_FPARSER_BAD_HEADER)Message: Malformed file type header in file '%s'
Error:
1342SQLSTATE:HY000(ER_FPARSER_EOF_IN_COMMENT)Message: Unexpected end of file while parsing comment '%s'
Error:
1343SQLSTATE:HY000(ER_FPARSER_ERROR_IN_PARAMETER)Message: Error while parsing parameter '%s' (line: '%s')
Error:
1344SQLSTATE:HY000(ER_FPARSER_EOF_IN_UNKNOWN_PARAMETER)Message: Unexpected end of file while skipping unknown parameter '%s'
Error:
1345SQLSTATE:HY000(ER_VIEW_NO_EXPLAIN)Message: EXPLAIN/SHOW can not be issued; lacking privileges for underlying table
Error:
1346SQLSTATE:HY000(ER_FRM_UNKNOWN_TYPE)Message: File '%s' has unknown type '%s' in its header
Error:
1347SQLSTATE:HY000(ER_WRONG_OBJECT)Message: '%s.%s' is not %s
Error:
1348SQLSTATE:HY000(ER_NONUPDATEABLE_COLUMN)Message: Column '%s' is not updatable
Error:
1349SQLSTATE:HY000(ER_VIEW_SELECT_DERIVED)Message: View's SELECT contains a subquery in the FROM clause
Error:
1350SQLSTATE:HY000(ER_VIEW_SELECT_CLAUSE)Message: View's SELECT contains a '%s' clause
Error:
1351SQLSTATE:HY000(ER_VIEW_SELECT_VARIABLE)Message: View's SELECT contains a variable or parameter
Error:
1352SQLSTATE:HY000(ER_VIEW_SELECT_TMPTABLE)Message: View's SELECT refers to a temporary table '%s'
Error:
1353SQLSTATE:HY000(ER_VIEW_WRONG_LIST)Message: View's SELECT and view's field list have different column counts
Error:
1354SQLSTATE:HY000(ER_WARN_VIEW_MERGE)Message: View merge algorithm can't be used here for now (assumed undefined algorithm)
Error:
1355SQLSTATE:HY000(ER_WARN_VIEW_WITHOUT_KEY)Message: View being updated does not have complete key of underlying table in it
Error:
1356SQLSTATE:HY000(ER_VIEW_INVALID)Message: View '%s.%s' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
Error:
1357SQLSTATE:HY000(ER_SP_NO_DROP_SP)Message: Can't drop or alter a %s from within another stored routine
Error:
1358SQLSTATE:HY000(ER_SP_GOTO_IN_HNDLR)Message: GOTO is not allowed in a stored procedure handler
Error:
1359SQLSTATE:HY000(ER_TRG_ALREADY_EXISTS)Message: Trigger already exists
Error:
1360SQLSTATE:HY000(ER_TRG_DOES_NOT_EXIST)Message: Trigger does not exist
Error:
1361SQLSTATE:HY000(ER_TRG_ON_VIEW_OR_TEMP_TABLE)Message: Trigger's '%s' is view or temporary table
Error:
1362SQLSTATE:HY000(ER_TRG_CANT_CHANGE_ROW)Message: Updating of %s row is not allowed in %strigger
Error:
1363SQLSTATE:HY000(ER_TRG_NO_SUCH_ROW_IN_TRG)Message: There is no %s row in %s trigger
Error:
1364SQLSTATE:HY000(ER_NO_DEFAULT_FOR_FIELD)Message: Field '%s' doesn't have a default value
Error:
1365SQLSTATE:22012(ER_DIVISION_BY_ZERO)Message: Division by 0
Error:
1366SQLSTATE:HY000(ER_TRUNCATED_WRONG_VALUE_FOR_FIELD)Message: Incorrect %s value: '%s' for column '%s' at row %ld
Error:
1367SQLSTATE:22007(ER_ILLEGAL_VALUE_FOR_TYPE)Message: Illegal %s '%s' value found during parsing
Error:
1368SQLSTATE:HY000(ER_VIEW_NONUPD_CHECK)Message: CHECK OPTION on non-updatable view '%s.%s'
Error:
1369SQLSTATE:HY000(ER_VIEW_CHECK_FAILED)Message: CHECK OPTION failed '%s.%s'
Error:
1370SQLSTATE:42000(ER_PROCACCESS_DENIED_ERROR)Message: %s command denied to user '%s'@'%s' for routine '%s'
Error:
1371SQLSTATE:HY000(ER_RELAY_LOG_FAIL)Message: Failed purging old relay logs: %s
Error:
1372SQLSTATE:HY000(ER_PASSWD_LENGTH)Message: Password hash should be a %d-digit hexadecimal number
Error:
1373SQLSTATE:HY000(ER_UNKNOWN_TARGET_BINLOG)Message: Target log not found in binlog index
Error:
1374SQLSTATE:HY000(ER_IO_ERR_LOG_INDEX_READ)Message: I/O error reading log index file
Error:
1375SQLSTATE:HY000(ER_BINLOG_PURGE_PROHIBITED)Message: Server configuration does not permit binlog purge
Error:
1376SQLSTATE:HY000(ER_FSEEK_FAIL)Message: Failed on fseek()
Error:
1377SQLSTATE:HY000(ER_BINLOG_PURGE_FATAL_ERR)Message: Fatal error during log purge
Error:
1378SQLSTATE:HY000(ER_LOG_IN_USE)Message: A purgeable log is in use, will not purge
Error:
1379SQLSTATE:HY000(ER_LOG_PURGE_UNKNOWN_ERR)Message: Unknown error during log purge
Error:
1380SQLSTATE:HY000(ER_RELAY_LOG_INIT)Message: Failed initializing relay log position: %s
Error:
1381SQLSTATE:HY000(ER_NO_BINARY_LOGGING)Message: You are not using binary logging
Error:
1382SQLSTATE:HY000(ER_RESERVED_SYNTAX)Message: The '%s' syntax is reserved for purposes internal to the MySQL server
Error:
1383SQLSTATE:HY000(ER_WSAS_FAILED)Message: WSAStartup Failed
Error:
1384SQLSTATE:HY000(ER_DIFF_GROUPS_PROC)Message: Can't handle procedures with different groups yet
Error:
1385SQLSTATE:HY000(ER_NO_GROUP_FOR_PROC)Message: Select must have a group with this procedure
Error:
1386SQLSTATE:HY000(ER_ORDER_WITH_PROC)Message: Can't use ORDER clause with this procedure
Error:
1387SQLSTATE:HY000(ER_LOGGING_PROHIBIT_CHANGING_OF)Message: Binary logging and replication forbid changing the global server %s
Error:
1388SQLSTATE:HY000(ER_NO_FILE_MAPPING)Message: Can't map file: %s, errno: %d
Error:
1389SQLSTATE:HY000(ER_WRONG_MAGIC)Message: Wrong magic in %s
Error:
1390SQLSTATE:HY000(ER_PS_MANY_PARAM)Message: Prepared statement contains too many placeholders
Error:
1391SQLSTATE:HY000(ER_KEY_PART_0)Message: Key part '%s' length cannot be 0
Error:
1392SQLSTATE:HY000(ER_VIEW_CHECKSUM)Message: View text checksum failed
Error:
1393SQLSTATE:HY000(ER_VIEW_MULTIUPDATE)Message: Can not modify more than one base table through a join view '%s.%s'
Error:
1394SQLSTATE:HY000(ER_VIEW_NO_INSERT_FIELD_LIST)Message: Can not insert into join view '%s.%s' without fields list
Error:
1395SQLSTATE:HY000(ER_VIEW_DELETE_MERGE_VIEW)Message: Can not delete from join view '%s.%s'
Error:
1396SQLSTATE:HY000(ER_CANNOT_USER)Message: Operation %s failed for %s
Error:
1397SQLSTATE:XAE04(ER_XAER_NOTA)Message: XAER_NOTA: Unknown XID
Error:
1398SQLSTATE:XAE05(ER_XAER_INVAL)Message: XAER_INVAL: Invalid arguments (or unsupported command)
Error:
1399SQLSTATE:XAE07(ER_XAER_RMFAIL)Message: XAER_RMFAIL: The command cannot be executed when global transaction is in the %s state
Error:
1400SQLSTATE:XAE09(ER_XAER_OUTSIDE)Message: XAER_OUTSIDE: Some work is done outside global transaction
Error:
1401SQLSTATE:XAE03(ER_XAER_RMERR)Message: XAER_RMERR: Fatal error occurred in the transaction branch - check your data for consistency
Error:
1402SQLSTATE:XA100(ER_XA_RBROLLBACK)Message: XA_RBROLLBACK: Transaction branch was rolled back
Error:
1403SQLSTATE:42000(ER_NONEXISTING_PROC_GRANT)Message: There is no such grant defined for user '%s' on host '%s' on routine '%s'
Error:
1404SQLSTATE:HY000(ER_PROC_AUTO_GRANT_FAIL)Message: Failed to grant EXECUTE and ALTER ROUTINE privileges
Error:
1405SQLSTATE:HY000(ER_PROC_AUTO_REVOKE_FAIL)Message: Failed to revoke all privileges to dropped routine
Error:
1406SQLSTATE:22001(ER_DATA_TOO_LONG)Message: Data too long for column '%s' at row %ld
Error:
1407SQLSTATE:42000(ER_SP_BAD_SQLSTATE)Message: Bad SQLSTATE: '%s'
Error:
1408SQLSTATE:HY000(ER_STARTUP)Message: %s: ready for connections. Version: '%s' socket: '%s' port: %d %s
Error:
1409SQLSTATE:HY000(ER_LOAD_FROM_FIXED_SIZE_ROWS_TO_VAR)Message: Can't load value from file with fixed size rows to variable
Error:
1410SQLSTATE:42000(ER_CANT_CREATE_USER_WITH_GRANT)Message: You are not allowed to create a user with GRANT
Error:
1411SQLSTATE:HY000(ER_WRONG_VALUE_FOR_TYPE)Message: Incorrect %s value: '%s' for function %s
Error:
1412SQLSTATE:HY000(ER_TABLE_DEF_CHANGED)Message: Table definition has changed, please retry transaction
Error:
1413SQLSTATE:42000(ER_SP_DUP_HANDLER)Message: Duplicate handler declared in the same block
Error:
1414SQLSTATE:42000(ER_SP_NOT_VAR_ARG)Message: OUT or INOUT argument %d for routine %s is not a variable or NEW pseudo-variable in BEFORE trigger
Error:
1415SQLSTATE:0A000(ER_SP_NO_RETSET)Message: Not allowed to return a result set from a %s
Error:
1416SQLSTATE:22003(ER_CANT_CREATE_GEOMETRY_OBJECT)Message: Cannot get geometry object from data you send to the GEOMETRY field
Error:
1417SQLSTATE:HY000(ER_FAILED_ROUTINE_BREAK_BINLOG)Message: A routine failed and has neither NO SQL nor READS SQL DATA in its declaration and binary logging is enabled; if non-transactional tables were updated, the binary log will miss their changes
Error:
1418SQLSTATE:HY000(ER_BINLOG_UNSAFE_ROUTINE)Message: This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)
Error:
1419SQLSTATE:HY000(ER_BINLOG_CREATE_ROUTINE_NEED_SUPER)Message: You do not have the SUPER privilege and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)
Error:
1420SQLSTATE:HY000(ER_EXEC_STMT_WITH_OPEN_CURSOR)Message: You can't execute a prepared statement which has an open cursor associated with it. Reset the statement to re-execute it.
Error:
1421SQLSTATE:HY000(ER_STMT_HAS_NO_OPEN_CURSOR)Message: The statement (%lu) has no open cursor.
Error:
1422SQLSTATE:HY000(ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG)Message: Explicit or implicit commit is not allowed in stored function or trigger.
Error:
1423SQLSTATE:HY000(ER_NO_DEFAULT_FOR_VIEW_FIELD)Message: Field of view '%s.%s' underlying table doesn't have a default value
Error:
1424SQLSTATE:HY000(ER_SP_NO_RECURSION)Message: Recursive stored functions and triggers are not allowed.
Error:
1425SQLSTATE:42000(ER_TOO_BIG_SCALE)Message: Too big scale %d specified for column '%s'. Maximum is %lu.
Error:
1426SQLSTATE:42000(ER_TOO_BIG_PRECISION)Message: Too big precision %d specified for column '%s'. Maximum is %lu.
Error:
1427SQLSTATE:42000(ER_M_BIGGER_THAN_D)Message: For float(M,D), double(M,D) or decimal(M,D), M must be >= D (column '%s').
Error:
1428SQLSTATE:HY000(ER_WRONG_LOCK_OF_SYSTEM_TABLE)Message: You can't combine write-locking of system tables with other tables or lock types
Error:
1429SQLSTATE:HY000(ER_CONNECT_TO_FOREIGN_DATA_SOURCE)Message: Unable to connect to foreign data source: %s
Error:
1430SQLSTATE:HY000(ER_QUERY_ON_FOREIGN_DATA_SOURCE)Message: There was a problem processing the query on the foreign data source. Data source error: %s
Error:
1431SQLSTATE:HY000(ER_FOREIGN_DATA_SOURCE_DOESNT_EXIST)Message: The foreign data source you are trying to reference does not exist. Data source error: %s
Error:
1432SQLSTATE:HY000(ER_FOREIGN_DATA_STRING_INVALID_CANT_CREATE)Message: Can't create federated table. The data source connection string '%s' is not in the correct format
Error:
1433SQLSTATE:HY000(ER_FOREIGN_DATA_STRING_INVALID)Message: The data source connection string '%s' is not in the correct format
Error:
1434SQLSTATE:HY000(ER_CANT_CREATE_FEDERATED_TABLE)Message: Can't create federated table. Foreign data src error: %s
Error:
1435SQLSTATE:HY000(ER_TRG_IN_WRONG_SCHEMA)Message: Trigger in wrong schema
Error:
1436SQLSTATE:HY000(ER_STACK_OVERRUN_NEED_MORE)Message: Thread stack overrun: %ld bytes used of a %ld byte stack, and %ld bytes needed. Use 'mysqld -O thread_stack=#' to specify a bigger stack.
Error:
1437SQLSTATE:42000(ER_TOO_LONG_BODY)Message: Routine body for '%s' is too long
Error:
1438SQLSTATE:HY000(ER_WARN_CANT_DROP_DEFAULT_KEYCACHE)Message: Cannot drop default keycache
Error:
1439SQLSTATE:42000(ER_TOO_BIG_DISPLAYWIDTH)Message: Display width out of range for column '%s' (max = %lu)
Error:
1440SQLSTATE:XAE08(ER_XAER_DUPID)Message: XAER_DUPID: The XID already exists
Error:
1441SQLSTATE:22008(ER_DATETIME_FUNCTION_OVERFLOW)Message: Datetime function: %s field overflow
Error:
1442SQLSTATE:HY000(ER_CANT_UPDATE_USED_TABLE_IN_SF_OR_TRG)Message: Can't update table '%s' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
Error:
1443SQLSTATE:HY000(ER_VIEW_PREVENT_UPDATE)Message: The definition of table '%s' prevents operation %s on table '%s'.
Error:
1444SQLSTATE:HY000(ER_PS_NO_RECURSION)Message: The prepared statement contains a stored routine call that refers to that same statement. It's not allowed to execute a prepared statement in such a recursive manner
Error:
1445SQLSTATE:HY000(ER_SP_CANT_SET_AUTOCOMMIT)Message: Not allowed to set autocommit from a stored function or trigger
Error:
1446SQLSTATE:HY000(ER_MALFORMED_DEFINER)Message: Definer is not fully qualified
Error:
1447SQLSTATE:HY000(ER_VIEW_FRM_NO_USER)Message: View '%s'.'%s' has no definer information (old table format). Current user is used as definer. Please recreate the view!
Error:
1448SQLSTATE:HY000(ER_VIEW_OTHER_USER)Message: You need the SUPER privilege for creation view with '%s'@'%s' definer
Error:
1449SQLSTATE:HY000(ER_NO_SUCH_USER)Message: The user specified as a definer ('%s'@'%s') does not exist
Error:
1450SQLSTATE:HY000(ER_FORBID_SCHEMA_CHANGE)Message: Changing schema from '%s' to '%s' is not allowed.
Error:
1451SQLSTATE:23000(ER_ROW_IS_REFERENCED_2)Message: Cannot delete or update a parent row: a foreign key constraint fails (%s)
Error:
1452SQLSTATE:23000(ER_NO_REFERENCED_ROW_2)Message: Cannot add or update a child row: a foreign key constraint fails (%s)
Error:
1453SQLSTATE:42000(ER_SP_BAD_VAR_SHADOW)Message: Variable '%s' must be quoted with `...`, or renamed
Error:
1454SQLSTATE:HY000(ER_TRG_NO_DEFINER)Message: No definer attribute for trigger '%s'.'%s'. The trigger will be activated under the authorization of the invoker, which may have insufficient privileges. Please recreate the trigger.
Error:
1455SQLSTATE:HY000(ER_OLD_FILE_FORMAT)Message: '%s' has an old format, you should re-create the '%s' object(s)
Error:
1456SQLSTATE:HY000(ER_SP_RECURSION_LIMIT)Message: Recursive limit %d (as set by the max_sp_recursion_depth variable) was exceeded for routine %s
Error:
1457SQLSTATE:HY000(ER_SP_PROC_TABLE_CORRUPT)Message: Failed to load routine %s. The table mysql.proc is missing, corrupt, or contains bad data (internal code %d)
Error:
1458SQLSTATE:42000(ER_SP_WRONG_NAME)Message: Incorrect routine name '%s'
Error:
1459SQLSTATE:HY000(ER_TABLE_NEEDS_UPGRADE)Message: Table upgrade required. Please do "REPAIR TABLE `%s`" or dump/reload to fix it!
Error:
1460SQLSTATE:42000(ER_SP_NO_AGGREGATE)Message: AGGREGATE is not supported for stored functions
Error:
1461SQLSTATE:42000(ER_MAX_PREPARED_STMT_COUNT_REACHED)Message: Can't create more than max_prepared_stmt_count statements (current value: %lu)
Error:
1462SQLSTATE:HY000(ER_VIEW_RECURSIVE)Message: `%s`.`%s` contains view recursion
Error:
1463SQLSTATE:42000(ER_NON_GROUPING_FIELD_USED)Message: non-grouping field '%s' is used in %s clause
Error:
1464SQLSTATE:HY000(ER_TABLE_CANT_HANDLE_SPKEYS)Message: The used table type doesn't support SPATIAL indexes
Error:
1465SQLSTATE:HY000(ER_NO_TRIGGERS_ON_SYSTEM_SCHEMA)Message: Triggers can not be created on system tables
Error:
1466SQLSTATE:HY000(ER_REMOVED_SPACES)Message: Leading spaces are removed from name '%s'
Error:
1467SQLSTATE:HY000(ER_AUTOINC_READ_FAILED)Message: Failed to read auto-increment value from storage engine
Error:
1468SQLSTATE:HY000(ER_USERNAME)Message: user name
Error:
1469SQLSTATE:HY000(ER_HOSTNAME)Message: host name
Error:
1470SQLSTATE:HY000(ER_WRONG_STRING_LENGTH)Message: String '%s' is too long for %s (should be no longer than %d)
Error:
1471SQLSTATE:HY000(ER_NON_INSERTABLE_TABLE)Message: The target table %s of the %s is not insertable-into
Error:
1472SQLSTATE:HY000(ER_ADMIN_WRONG_MRG_TABLE)Message: Table '%s' is differently defined or of non-MyISAM type or doesn't exist
Error:
1473SQLSTATE:HY000(ER_TOO_HIGH_LEVEL_OF_NESTING_FOR_SELECT)Message: Too high level of nesting for select
Error:
1474SQLSTATE:HY000(ER_NAME_BECOMES_EMPTY)Message: Name '%s' has become ''
Error:
1475SQLSTATE:HY000(ER_AMBIGUOUS_FIELD_TERM)Message: First character of the FIELDS TERMINATED string is ambiguous; please use non-optional and non-empty FIELDS ENCLOSED BY
Error:
1476SQLSTATE:HY000(ER_FOREIGN_SERVER_EXISTS)Message: The foreign server, %s, you are trying to create already exists.
Error:
1477SQLSTATE:HY000(ER_FOREIGN_SERVER_DOESNT_EXIST)Message: The foreign server name you are trying to reference does not exist. Data source error: %s
Error:
1478SQLSTATE:HY000(ER_ILLEGAL_HA_CREATE_OPTION)Message: Table storage engine '%s' does not support the create option '%s'
Error:
1479SQLSTATE:HY000(ER_PARTITION_REQUIRES_VALUES_ERROR)Message: Syntax error: %s PARTITIONING requires definition of VALUES %s for each partition
Error:
1480SQLSTATE:HY000(ER_PARTITION_WRONG_VALUES_ERROR)Message: Only %s PARTITIONING can use VALUES %s in partition definition
Error:
1481SQLSTATE:HY000(ER_PARTITION_MAXVALUE_ERROR)Message: MAXVALUE can only be used in last partition definition
Error:
1482SQLSTATE:HY000(ER_PARTITION_SUBPARTITION_ERROR)Message: Subpartitions can only be hash partitions and by key
Error:
1483SQLSTATE:HY000(ER_PARTITION_SUBPART_MIX_ERROR)Message: Must define subpartitions on all partitions if on one partition
Error:
1484SQLSTATE:HY000(ER_PARTITION_WRONG_NO_PART_ERROR)Message: Wrong number of partitions defined, mismatch with previous setting
Error:
1485SQLSTATE:HY000(ER_PARTITION_WRONG_NO_SUBPART_ERROR)Message: Wrong number of subpartitions defined, mismatch with previous setting
Error:
1486SQLSTATE:HY000(ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR)Message: Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed
Error:
1487SQLSTATE:HY000(ER_NO_CONST_EXPR_IN_RANGE_OR_LIST_ERROR)Message: Expression in RANGE/LIST VALUES must be constant
Error:
1488SQLSTATE:HY000(ER_FIELD_NOT_FOUND_PART_ERROR)Message: Field in list of fields for partition function not found in table
Error:
1489SQLSTATE:HY000(ER_LIST_OF_FIELDS_ONLY_IN_HASH_ERROR)Message: List of fields is only allowed in KEY partitions
Error:
1490SQLSTATE:HY000(ER_INCONSISTENT_PARTITION_INFO_ERROR)Message: The partition info in the frm file is not consistent with what can be written into the frm file
Error:
1491SQLSTATE:HY000(ER_PARTITION_FUNC_NOT_ALLOWED_ERROR)Message: The %s function returns the wrong type
Error:
1492SQLSTATE:HY000(ER_PARTITIONS_MUST_BE_DEFINED_ERROR)Message: For %s partitions each partition must be defined
Error:
1493SQLSTATE:HY000(ER_RANGE_NOT_INCREASING_ERROR)Message: VALUES LESS THAN value must be strictly increasing for each partition
Error:
1494SQLSTATE:HY000(ER_INCONSISTENT_TYPE_OF_FUNCTIONS_ERROR)Message: VALUES value must be of same type as partition function
Error:
1495SQLSTATE:HY000(ER_MULTIPLE_DEF_CONST_IN_LIST_PART_ERROR)Message: Multiple definition of same constant in list partitioning
Error:
1496SQLSTATE:HY000(ER_PARTITION_ENTRY_ERROR)Message: Partitioning can not be used stand-alone in query
Error:
1497SQLSTATE:HY000(ER_MIX_HANDLER_ERROR)Message: The mix of handlers in the partitions is not allowed in this version of MySQL
Error:
1498SQLSTATE:HY000(ER_PARTITION_NOT_DEFINED_ERROR)Message: For the partitioned engine it is necessary to define all %s
Error:
1499SQLSTATE:HY000(ER_TOO_MANY_PARTITIONS_ERROR)Message: Too many partitions (including subpartitions) were defined
Error:
1500SQLSTATE:HY000(ER_SUBPARTITION_ERROR)Message: It is only possible to mix RANGE/LIST partitioning with HASH/KEY partitioning for subpartitioning
Error:
1501SQLSTATE:HY000(ER_CANT_CREATE_HANDLER_FILE)Message: Failed to create specific handler file
Error:
1502SQLSTATE:HY000(ER_BLOB_FIELD_IN_PART_FUNC_ERROR)Message: A BLOB field is not allowed in partition function
Error:
1503SQLSTATE:HY000(ER_UNIQUE_KEY_NEED_ALL_FIELDS_IN_PF)Message: A %s must include all columns in the table's partitioning function
Error:
1504SQLSTATE:HY000(ER_NO_PARTS_ERROR)Message: Number of %s = 0 is not an allowed value
Error:
1505SQLSTATE:HY000(ER_PARTITION_MGMT_ON_NONPARTITIONED)Message: Partition management on a not partitioned table is not possible
Error:
1506SQLSTATE:HY000(ER_FOREIGN_KEY_ON_PARTITIONED)Message: Foreign key clause is not yet supported in conjunction with partitioning
Error:
1507SQLSTATE:HY000(ER_DROP_PARTITION_NON_EXISTENT)Message: Error in list of partitions to %s
Error:
1508SQLSTATE:HY000(ER_DROP_LAST_PARTITION)Message: Cannot remove all partitions, use DROP TABLE instead
Error:
1509SQLSTATE:HY000(ER_COALESCE_ONLY_ON_HASH_PARTITION)Message: COALESCE PARTITION can only be used on HASH/KEY partitions
Error:
1510SQLSTATE:HY000(ER_REORG_HASH_ONLY_ON_SAME_NO)Message: REORGANIZE PARTITION can only be used to reorganize partitions not to change their numbers
Error:
1511SQLSTATE:HY000(ER_REORG_NO_PARAM_ERROR)Message: REORGANIZE PARTITION without parameters can only be used on auto-partitioned tables using HASH PARTITIONs
Error:
1512SQLSTATE:HY000(ER_ONLY_ON_RANGE_LIST_PARTITION)Message: %s PARTITION can only be used on RANGE/LIST partitions
Error:
1513SQLSTATE:HY000(ER_ADD_PARTITION_SUBPART_ERROR)Message: Trying to Add partition(s) with wrong number of subpartitions
Error:
1514SQLSTATE:HY000(ER_ADD_PARTITION_NO_NEW_PARTITION)Message: At least one partition must be added
Error:
1515SQLSTATE:HY000(ER_COALESCE_PARTITION_NO_PARTITION)Message: At least one partition must be coalesced
Error:
1516SQLSTATE:HY000(ER_REORG_PARTITION_NOT_EXIST)Message: More partitions to reorganize than there are partitions
Error:
1517SQLSTATE:HY000(ER_SAME_NAME_PARTITION)Message: Duplicate partition name %s
Error:
1518SQLSTATE:HY000(ER_NO_BINLOG_ERROR)Message: It is not allowed to shut off binlog on this command
Error:
1519SQLSTATE:HY000(ER_CONSECUTIVE_REORG_PARTITIONS)Message: When reorganizing a set of partitions they must be in consecutive order
Error:
1520SQLSTATE:HY000(ER_REORG_OUTSIDE_RANGE)Message: Reorganize of range partitions cannot change total ranges except for last partition where it can extend the range
Error:
1521SQLSTATE:HY000(ER_PARTITION_FUNCTION_FAILURE)Message: Partition function not supported in this version for this handler
Error:
1522SQLSTATE:HY000(ER_PART_STATE_ERROR)Message: Partition state cannot be defined from CREATE/ALTER TABLE
Error:
1523SQLSTATE:HY000(ER_LIMITED_PART_RANGE)Message: The %s handler only supports 32 bit integers in VALUES
Error:
1524SQLSTATE:HY000(ER_PLUGIN_IS_NOT_LOADED)Message: Plugin '%s' is not loaded
Error:
1525SQLSTATE:HY000(ER_WRONG_VALUE)Message: Incorrect %s value: '%s'
Error:
1526SQLSTATE:HY000(ER_NO_PARTITION_FOR_GIVEN_VALUE)Message: Table has no partition for value %s
Error:
1527SQLSTATE:HY000(ER_FILEGROUP_OPTION_ONLY_ONCE)Message: It is not allowed to specify %s more than once
Error:
1528SQLSTATE:HY000(ER_CREATE_FILEGROUP_FAILED)Message: Failed to create %s
Error:
1529SQLSTATE:HY000(ER_DROP_FILEGROUP_FAILED)Message: Failed to drop %s
Error:
1530SQLSTATE:HY000(ER_TABLESPACE_AUTO_EXTEND_ERROR)Message: The handler doesn't support autoextend of tablespaces
Error:
1531SQLSTATE:HY000(ER_WRONG_SIZE_NUMBER)Message: A size parameter was incorrectly specified, either number or on the form 10M
Error:
1532SQLSTATE:HY000(ER_SIZE_OVERFLOW_ERROR)Message: The size number was correct but we don't allow the digit part to be more than 2 billion
Error:
1533SQLSTATE:HY000(ER_ALTER_FILEGROUP_FAILED)Message: Failed to alter: %s
Error:
1534SQLSTATE:HY000(ER_BINLOG_ROW_LOGGING_FAILED)Message: Writing one row to the row-based binary log failed
Error:
1535SQLSTATE:HY000(ER_BINLOG_ROW_WRONG_TABLE_DEF)Message: Table definition on master and slave does not match: %s
Error:
1536SQLSTATE:HY000(ER_BINLOG_ROW_RBR_TO_SBR)Message: Slave running with --log-slave-updates must use row-based binary logging to be able to replicate row-based binary log events
Error:
1537SQLSTATE:HY000(ER_EVENT_ALREADY_EXISTS)Message: Event '%s' already exists
Error:
1538SQLSTATE:HY000(ER_EVENT_STORE_FAILED)Message: Failed to store event %s. Error code %d from storage engine.
Error:
1539SQLSTATE:HY000(ER_EVENT_DOES_NOT_EXIST)Message: Unknown event '%s'
Error:
1540SQLSTATE:HY000(ER_EVENT_CANT_ALTER)Message: Failed to alter event '%s'
Error:
1541SQLSTATE:HY000(ER_EVENT_DROP_FAILED)Message: Failed to drop %s
Error:
1542SQLSTATE:HY000(ER_EVENT_INTERVAL_NOT_POSITIVE_OR_TOO_BIG)Message: INTERVAL is either not positive or too big
Error:
1543SQLSTATE:HY000(ER_EVENT_ENDS_BEFORE_STARTS)Message: ENDS is either invalid or before STARTS
Error:
1544SQLSTATE:HY000(ER_EVENT_EXEC_TIME_IN_THE_PAST)Message: Event execution time is in the past. Event has been disabled
Error:
1545SQLSTATE:HY000(ER_EVENT_OPEN_TABLE_FAILED)Message: Failed to open mysql.event
Error:
1546SQLSTATE:HY000(ER_EVENT_NEITHER_M_EXPR_NOR_M_AT)Message: No datetime expression provided
Error:
1547SQLSTATE:HY000(ER_COL_COUNT_DOESNT_MATCH_CORRUPTED)Message: Column count of mysql.%s is wrong. Expected %d, found %d. The table is probably corrupted
Error:
1548SQLSTATE:HY000(ER_CANNOT_LOAD_FROM_TABLE)Message: Cannot load from mysql.%s. The table is probably corrupted
Error:
1549SQLSTATE:HY000(ER_EVENT_CANNOT_DELETE)Message: Failed to delete the event from mysql.event
Error:
1550SQLSTATE:HY000(ER_EVENT_COMPILE_ERROR)Message: Error during compilation of event's body
Error:
1551SQLSTATE:HY000(ER_EVENT_SAME_NAME)Message: Same old and new event name
Error:
1552SQLSTATE:HY000(ER_EVENT_DATA_TOO_LONG)Message: Data for column '%s' too long
Error:
1553SQLSTATE:HY000(ER_DROP_INDEX_FK)Message: Cannot drop index '%s': needed in a foreign key constraint
Error:
1554SQLSTATE:HY000(ER_WARN_DEPRECATED_SYNTAX_WITH_VER)Message: The syntax '%s' is deprecated and will be removed in MySQL %s. Please use %s instead
Error:
1555SQLSTATE:HY000(ER_CANT_WRITE_LOCK_LOG_TABLE)Message: You can't write-lock a log table. Only read access is possible
Error:
1556SQLSTATE:HY000(ER_CANT_LOCK_LOG_TABLE)Message: You can't use locks with log tables.
Error:
1557SQLSTATE:23000(ER_FOREIGN_DUPLICATE_KEY)Message: Upholding foreign key constraints for table '%s', entry '%s', key %d would lead to a duplicate entry
Error:
1558SQLSTATE:HY000(ER_COL_COUNT_DOESNT_MATCH_PLEASE_UPDATE)Message: Column count of mysql.%s is wrong. Expected %d, found %d. Created with MySQL %d, now running %d. Please use mysql_upgrade to fix this error.
Error:
1559SQLSTATE:HY000(ER_TEMP_TABLE_PREVENTS_SWITCH_OUT_OF_RBR)Message: Cannot switch out of the row-based binary log format when the session has open temporary tables
Error:
1560SQLSTATE:HY000(ER_STORED_FUNCTION_PREVENTS_SWITCH_BINLOG_FORMAT)Message: Cannot change the binary logging format inside a stored function or trigger
Error:
1561SQLSTATE:HY000(ER_NDB_CANT_SWITCH_BINLOG_FORMAT)Message: The NDB cluster engine does not support changing the binlog format on the fly yet
Error:
1562SQLSTATE:HY000(ER_PARTITION_NO_TEMPORARY)Message: Cannot create temporary table with partitions
Error:
1563SQLSTATE:HY000(ER_PARTITION_CONST_DOMAIN_ERROR)Message: Partition constant is out of partition function domain
Error:
1564SQLSTATE:HY000(ER_PARTITION_FUNCTION_IS_NOT_ALLOWED)Message: This partition function is not allowed
Error:
1565SQLSTATE:HY000(ER_DDL_LOG_ERROR)Message: Error in DDL log
Error:
1566SQLSTATE:HY000(ER_NULL_IN_VALUES_LESS_THAN)Message: Not allowed to use NULL value in VALUES LESS THAN
Error:
1567SQLSTATE:HY000(ER_WRONG_PARTITION_NAME)Message: Incorrect partition name
Error:
1568SQLSTATE:25001(ER_CANT_CHANGE_TX_ISOLATION)Message: Transaction isolation level can't be changed while a transaction is in progress
Error:
1569SQLSTATE:HY000(ER_DUP_ENTRY_AUTOINCREMENT_CASE)Message: ALTER TABLE causes auto_increment resequencing, resulting in duplicate entry '%s' for key '%s'
Error:
1570SQLSTATE:HY000(ER_EVENT_MODIFY_QUEUE_ERROR)Message: Internal scheduler error %d
Error:
1571SQLSTATE:HY000(ER_EVENT_SET_VAR_ERROR)Message: Error during starting/stopping of the scheduler. Error code %u
Error:
1572SQLSTATE:HY000(ER_PARTITION_MERGE_ERROR)Message: Engine cannot be used in partitioned tables
Error:
1573SQLSTATE:HY000(ER_CANT_ACTIVATE_LOG)Message: Cannot activate '%s' log
Error:
1574SQLSTATE:HY000(ER_RBR_NOT_AVAILABLE)Message: The server was not built with row-based replication
Error:
1575SQLSTATE:HY000(ER_BASE64_DECODE_ERROR)Message: Decoding of base64 string failed
Error:
1576SQLSTATE:HY000(ER_EVENT_RECURSION_FORBIDDEN)Message: Recursion of EVENT DDL statements is forbidden when body is present
Error:
1577SQLSTATE:HY000(ER_EVENTS_DB_ERROR)Message: Cannot proceed because system tables used by Event Scheduler were found damaged at server start
Error:
1578SQLSTATE:HY000(ER_ONLY_INTEGERS_ALLOWED)Message: Only integers allowed as number here
Error:
1579SQLSTATE:HY000(ER_UNSUPORTED_LOG_ENGINE)Message: This storage engine cannot be used for log tables"
Error:
1580SQLSTATE:HY000(ER_BAD_LOG_STATEMENT)Message: You cannot '%s' a log table if logging is enabled
Error:
1581SQLSTATE:HY000(ER_CANT_RENAME_LOG_TABLE)Message: Cannot rename '%s'. When logging enabled, rename to/from log table must rename two tables: the log table to an archive table and another table back to '%s'
Error:
1582SQLSTATE:42000(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT)Message: Incorrect parameter count in the call to native function '%s'
Error:
1583SQLSTATE:42000(ER_WRONG_PARAMETERS_TO_NATIVE_FCT)Message: Incorrect parameters in the call to native function '%s'
Error:
1584SQLSTATE:42000(ER_WRONG_PARAMETERS_TO_STORED_FCT)Message: Incorrect parameters in the call to stored function '%s'
Error:
1585SQLSTATE:HY000(ER_NATIVE_FCT_NAME_COLLISION)Message: This function '%s' has the same name as a native function
Error:
1586SQLSTATE:23000(ER_DUP_ENTRY_WITH_KEY_NAME)Message: '%s' は key '%s' において重複しています
Error:
1587SQLSTATE:HY000(ER_BINLOG_PURGE_EMFILE)Message: Too many files opened, please execute the command again
Error:
1588SQLSTATE:HY000(ER_EVENT_CANNOT_CREATE_IN_THE_PAST)Message: Event execution time is in the past and ON COMPLETION NOT PRESERVE is set. The event was dropped immediately after creation.
Error:
1589SQLSTATE:HY000(ER_EVENT_CANNOT_ALTER_IN_THE_PAST)Message: Event execution time is in the past and ON COMPLETION NOT PRESERVE is set. The event was dropped immediately after creation.
Error:
1590SQLSTATE:HY000(ER_SLAVE_INCIDENT)Message: The incident %s occured on the master. Message: %s
Error:
1591SQLSTATE:HY000(ER_NO_PARTITION_FOR_GIVEN_VALUE_SILENT)Message: Table has no partition for some existing values
Error:
1592SQLSTATE:HY000(ER_BINLOG_UNSAFE_STATEMENT)Message: Statement may not be safe to log in statement format.
Error:
1593SQLSTATE:HY000(ER_SLAVE_FATAL_ERROR)Message: Fatal error: %s
Error:
1594SQLSTATE:HY000(ER_SLAVE_RELAY_LOG_READ_FAILURE)Message: Relay log read failure: %s
Error:
1595SQLSTATE:HY000(ER_SLAVE_RELAY_LOG_WRITE_FAILURE)Message: Relay log write failure: %s
Error:
1596SQLSTATE:HY000(ER_SLAVE_CREATE_EVENT_FAILURE)Message: Failed to create %s
Error:
1597SQLSTATE:HY000(ER_SLAVE_MASTER_COM_FAILURE)Message: Master command %s failed: %s
Error:
1598SQLSTATE:HY000(ER_BINLOG_LOGGING_IMPOSSIBLE)Message: Binary logging not possible. Message: %s
Error:
1599SQLSTATE:HY000(ER_VIEW_NO_CREATION_CTX)Message: View `%s`.`%s` has no creation context
Error:
1600SQLSTATE:HY000(ER_VIEW_INVALID_CREATION_CTX)Message: Creation context of view `%s`.`%s' is invalid
Error:
1601SQLSTATE:HY000(ER_SR_INVALID_CREATION_CTX)Message: Creation context of stored routine `%s`.`%s` is invalid
Error:
1602SQLSTATE:HY000(ER_TRG_CORRUPTED_FILE)Message: Corrupted TRG file for table `%s`.`%s`
Error:
1603SQLSTATE:HY000(ER_TRG_NO_CREATION_CTX)Message: Triggers for table `%s`.`%s` have no creation context
Error:
1604SQLSTATE:HY000(ER_TRG_INVALID_CREATION_CTX)Message: Trigger creation context of table `%s`.`%s` is invalid
Error:
1605SQLSTATE:HY000(ER_EVENT_INVALID_CREATION_CTX)Message: Creation context of event `%s`.`%s` is invalid
Error:
1606SQLSTATE:HY000(ER_TRG_CANT_OPEN_TABLE)Message: Cannot open table for trigger `%s`.`%s`
Error:
1607SQLSTATE:HY000(ER_CANT_CREATE_SROUTINE)Message: Cannot create stored routine `%s`. Check warnings
Error:
1608SQLSTATE:HY000(ER_SLAVE_AMBIGOUS_EXEC_MODE)Message: Ambiguous slave modes combination. %s
Error:
1609SQLSTATE:HY000(ER_NO_FORMAT_DESCRIPTION_EVENT_BEFORE_BINLOG_STATEMENT)Message: The BINLOG statement of type `%s` was not preceded by a format description BINLOG statement.
Error:
1610SQLSTATE:HY000(ER_SLAVE_CORRUPT_EVENT)Message: Corrupted replication event was detected
Error:
1611SQLSTATE:HY000(ER_LOAD_DATA_INVALID_COLUMN)Message: Invalid column reference (%s) in LOAD DATA
Error:
1612SQLSTATE:HY000(ER_LOG_PURGE_NO_FILE)Message: Being purged log %s was not found
Error:
1613SQLSTATE:XA106(ER_XA_RBTIMEOUT)Message: XA_RBTIMEOUT: Transaction branch was rolled back: took too long
Error:
1614SQLSTATE:XA102(ER_XA_RBDEADLOCK)Message: XA_RBDEADLOCK: Transaction branch was rolled back: deadlock was detected
Error:
1615SQLSTATE:HY000(ER_NEED_REPREPARE)Message: Prepared statement needs to be re-prepared
Error:
1616SQLSTATE:HY000(ER_DELAYED_NOT_SUPPORTED)Message: DELAYED option not supported for table '%s'
Error:
1617SQLSTATE:HY000(WARN_NO_MASTER_INFO)Message: The master info structure does not exist
Error:
1618SQLSTATE:HY000(WARN_OPTION_IGNORED)Message: <%s> option ignored
Error:
1619SQLSTATE:HY000(WARN_PLUGIN_DELETE_BUILTIN)Message: Built-in plugins cannot be deleted
Error:
1620SQLSTATE:HY000(WARN_PLUGIN_BUSY)Message: Plugin is busy and will be uninstalled on shutdown
Error:
1621SQLSTATE:HY000(ER_VARIABLE_IS_READONLY)Message: %s variable '%s' is read-only. Use SET %s to assign the value
Error:
1622SQLSTATE:HY000(ER_WARN_ENGINE_TRANSACTION_ROLLBACK)Message: Storage engine %s does not support rollback for this statement. Transaction rolled back and must be restarted
Error:
1623SQLSTATE:HY000(ER_SLAVE_HEARTBEAT_FAILURE)Message: Unexpected master's heartbeat data: %s
Error:
1624SQLSTATE:HY000(ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE)Message: The requested value for the heartbeat period %s %s
Error:
1625SQLSTATE:HY000(ER_NDB_REPLICATION_SCHEMA_ERROR)Message: Bad schema for mysql.ndb_replication table. Message: %s
Error:
1626SQLSTATE:HY000(ER_CONFLICT_FN_PARSE_ERROR)Message: Error in parsing conflict function. Message: %s
Error:
1627SQLSTATE:HY000(ER_EXCEPTIONS_WRITE_ERROR)Message: Write to exceptions table failed. Message: %s"
Error:
1628SQLSTATE:HY000(ER_TOO_LONG_TABLE_COMMENT)Message: Comment for table '%s' is too long (max = %lu)
Error:
1629SQLSTATE:HY000(ER_TOO_LONG_FIELD_COMMENT)Message: Comment for field '%s' is too long (max = %lu)
Error:
1630SQLSTATE:42000(ER_FUNC_INEXISTENT_NAME_COLLISION)Message: FUNCTION %s does not exist. Check the 'Function Name Parsing and Resolution' section in the Reference Manual
Error:
1631SQLSTATE:HY000(ER_DATABASE_NAME)Message: Database
Error:
1632SQLSTATE:HY000(ER_TABLE_NAME)Message: Table
Error:
1633SQLSTATE:HY000(ER_PARTITION_NAME)Message: Partition
Error:
1634SQLSTATE:HY000(ER_SUBPARTITION_NAME)Message: Subpartition
Error:
1635SQLSTATE:HY000(ER_TEMPORARY_NAME)Message: Temporary
Error:
1636SQLSTATE:HY000(ER_RENAMED_NAME)Message: Renamed
Error:
1637SQLSTATE:HY000(ER_TOO_MANY_CONCURRENT_TRXS)Message: Too many active concurrent transactions
Error:
1638SQLSTATE:HY000(WARN_NON_ASCII_SEPARATOR_NOT_IMPLEMENTED)Message: Non-ASCII separator arguments are not fully supported
Error:
1639SQLSTATE:HY000(ER_DEBUG_SYNC_TIMEOUT)Message: debug sync point wait timed out
Error:
1640SQLSTATE:HY000(ER_DEBUG_SYNC_HIT_LIMIT)Message: debug sync point hit limit reached
Client error information comes from the following source files:
The Error values and the symbols in parentheses correspond to definitions in the
include/errmsg.hMySQL source file.The Message values correspond to the error messages that are listed in the
libmysql/errmsg.cfile.%dand%srepresent numbers and strings, respectively, that are substituted into the messages when they are displayed.
Because updates are frequent, it is possible that those files will contain additional error information not listed here.
Error:
2000(CR_UNKNOWN_ERROR)Message: Unknown MySQL error
Error:
2001(CR_SOCKET_CREATE_ERROR)Message: Can't create UNIX socket (%d)
Error:
2002(CR_CONNECTION_ERROR)Message: Can't connect to local MySQL server through socket '%s' (%d)
Error:
2003(CR_CONN_HOST_ERROR)Message: Can't connect to MySQL server on '%s' (%d)
Message: Can't create TCP/IP socket (%d)
Message: Unknown MySQL server host '%s' (%d)
Error:
2006(CR_SERVER_GONE_ERROR)Message: MySQL server has gone away
Error:
2007(CR_VERSION_ERROR)Message: Protocol mismatch; server version = %d, client version = %d
Error:
2008(CR_OUT_OF_MEMORY)Message: MySQL client ran out of memory
Error:
2009(CR_WRONG_HOST_INFO)Message: Wrong host info
Error:
2010(CR_LOCALHOST_CONNECTION)Message: Localhost via UNIX socket
Error:
2011(CR_TCP_CONNECTION)Message: %s via TCP/IP
Error:
2012(CR_SERVER_HANDSHAKE_ERR)Message: Error in server handshake
Message: Lost connection to MySQL server during query
Error:
2014(CR_COMMANDS_OUT_OF_SYNC)Message: Commands out of sync; you can't run this command now
Error:
2015(CR_NAMEDPIPE_CONNECTION)Message: Named pipe: %s
Error:
2016(CR_NAMEDPIPEWAIT_ERROR)Message: Can't wait for named pipe to host: %s pipe: %s (%lu)
Error:
2017(CR_NAMEDPIPEOPEN_ERROR)Message: Can't open named pipe to host: %s pipe: %s (%lu)
Error:
2018(CR_NAMEDPIPESETSTATE_ERROR)Message: Can't set state of named pipe to host: %s pipe: %s (%lu)
Error:
2019(CR_CANT_READ_CHARSET)Message: Can't initialize character set %s (path: %s)
Error:
2020(CR_NET_PACKET_TOO_LARGE)Message: Got packet bigger than 'max_allowed_packet' bytes
Error:
2021(CR_EMBEDDED_CONNECTION)Message: Embedded server
Error:
2022(CR_PROBE_SLAVE_STATUS)Message: Error on SHOW SLAVE STATUS:
Error:
2023(CR_PROBE_SLAVE_HOSTS)Message: Error on SHOW SLAVE HOSTS:
Error:
2024(CR_PROBE_SLAVE_CONNECT)Message: Error connecting to slave:
Error:
2025(CR_PROBE_MASTER_CONNECT)Message: Error connecting to master:
Error:
2026(CR_SSL_CONNECTION_ERROR)Message: SSL connection error
Error:
2027(CR_MALFORMED_PACKET)Message: Malformed packet
Error:
2028(CR_WRONG_LICENSE)Message: This client library is licensed only for use with MySQL servers having '%s' license
Message: Invalid use of null pointer
Error:
2030(CR_NO_PREPARE_STMT)Message: Statement not prepared
Error:
2031(CR_PARAMS_NOT_BOUND)Message: No data supplied for parameters in prepared statement
Error:
2032(CR_DATA_TRUNCATED)Message: Data truncated
Error:
2033(CR_NO_PARAMETERS_EXISTS)Message: No parameters exist in the statement
Error:
2034(CR_INVALID_PARAMETER_NO)Message: Invalid parameter number
Error:
2035(CR_INVALID_BUFFER_USE)Message: Can't send long data for non-string/non-binary data types (parameter: %d)
Error:
2036(CR_UNSUPPORTED_PARAM_TYPE)Message: Using unsupported buffer type: %d (parameter: %d)
Error:
2037(CR_SHARED_MEMORY_CONNECTION)Message: Shared memory: %s
Error:
2038(CR_SHARED_MEMORY_CONNECT_REQUEST_ERROR)Message: Can't open shared memory; client could not create request event (%lu)
Error:
2039(CR_SHARED_MEMORY_CONNECT_ANSWER_ERROR)Message: Can't open shared memory; no answer event received from server (%lu)
Error:
2040(CR_SHARED_MEMORY_CONNECT_FILE_MAP_ERROR)Message: Can't open shared memory; server could not allocate file mapping (%lu)
Error:
2041(CR_SHARED_MEMORY_CONNECT_MAP_ERROR)Message: Can't open shared memory; server could not get pointer to file mapping (%lu)
Error:
2042(CR_SHARED_MEMORY_FILE_MAP_ERROR)Message: Can't open shared memory; client could not allocate file mapping (%lu)
Error:
2043(CR_SHARED_MEMORY_MAP_ERROR)Message: Can't open shared memory; client could not get pointer to file mapping (%lu)
Error:
2044(CR_SHARED_MEMORY_EVENT_ERROR)Message: Can't open shared memory; client could not create %s event (%lu)
Error:
2045(CR_SHARED_MEMORY_CONNECT_ABANDONED_ERROR)Message: Can't open shared memory; no answer from server (%lu)
Error:
2046(CR_SHARED_MEMORY_CONNECT_SET_ERROR)Message: Can't open shared memory; cannot send request event to server (%lu)
Error:
2047(CR_CONN_UNKNOW_PROTOCOL)Message: Wrong or unknown protocol
Error:
2048(CR_INVALID_CONN_HANDLE)Message: Invalid connection handle
Message: Connection using old (pre-4.1.1) authentication protocol refused (client option 'secure_auth' enabled)
Error:
2050(CR_FETCH_CANCELED)Message: Row retrieval was canceled by mysql_stmt_close() call
Message: Attempt to read column without prior row fetch
Error:
2052(CR_NO_STMT_METADATA)Message: Prepared statement contains no metadata
Error:
2053(CR_NO_RESULT_SET)Message: Attempt to read a row while there is no result set associated with the statement
Error:
2054(CR_NOT_IMPLEMENTED)Message: This feature is not implemented yet
Error:
2055(CR_SERVER_LOST_EXTENDED)Message: Lost connection to MySQL server at '%s', system error: %d
Message: Statement closed indirectly because of a preceeding %s() call
Error:
2057(CR_NEW_STMT_METADATA)Message: The number of columns in the result set differs from the number of bound buffers. You must reset the statement, rebind the result set columns, and execute the statement again