MySQL常见问题集锦
2010-01-05 15:54:44 来源:WEB开发网Out of memory错误
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
注意,错误指向了MySQL客户mysql。这个错误的原因很简单,客户没有足够的内存存储全部结果。
首先检查你的查询是否正确
Packet too large错误
一个MySQL客户或mysqld服务器得到一个比max_allowed_packet个字节长的包
可以通过用mysql --set-variable=max_allowed_packet=8M指定一个更大的缓冲区来启动客户程序。
The table is full错误
这个错误发生在内存临时表变得比tmp_table_size字节大时。
Commands out of sync in client错误
正在以错误的次序调用客户函数!
Ignoring user错误
Found wrong password for user: _user@some_host'">'some_user@some_host'; Ignoring user
这意味着在mysqld启动时或在它再次装载权限表时,它在user表中找到了一个有一个无效口令的条目。结果,条目简单地被权限系统忽略。
Table 'xxx' doesn't exist错误
数据库和表名件是区分大小写的!可以用SHOW TABLES检查你在当前数据库中有哪个表。
从一个文本文件运行SQL命令
可以把SQL命令放在一个文件中并且告诉mysql从该文件读取其输入:创造一个文本文件“text_file”,它包含要执行的命令。然后如下调用mysql:
shell> mysql database < text_file
或
shell> mysql < text_file
启动有USE db_name语句的文本文件。
怎样重新设置一个忘记的口令
如果忘记了MySQL的root用户的口令,可以使用如下方法恢复:
通过发送一个kill(不是kill -9)到mysqld服务器来关闭mysqld服务器。pid 被保存在一个.pid文件中,通常在MySQL数据库目录中:
kill `cat /mysql-data-directory/hostname.pid`
你必须是一个UNIX root用户或运行服务器的相同用户做这个。
使用--skip-grant-tables选项重启mysqld。
用mysql -h hostname mysql连接mysqld服务器并且用一条GRANT命令改变口令。见7.26 GRANT和REVOKE句法。也可以用mysqladmin -h hostname -u user password 'new password' 进行。
用mysqladmin -h hostname flush-privileges或用SQL命令FLUSH PRIVILEGES来装载权限表。
使用DATE列的问题
DATE值的格式是'YYYY-MM-DD'。
更多精彩
赞助商链接