引用:http://linuxguest.blog.51cto.com/195664/389169
今天由于需要批量生成一些游戏账号,所以打算用存储过程来实现,这样速度会快很多。结果却是用了大量时间,主要原因是mysql server不知道出了点什么问题,运行创建procedure的语句,一直报错。
语句如下:
USE test
delimiter //
create procedure createuser()
BEGIN
DECLARE a INT default 8000;
while a < 10000 do
insert into t (id,pw) values (a,md5('xxxxxx'));
set aa = a + 1;
END WHILE;
END;//
错误提示 ERROR 1307 (HY000): Failed to CREATE PROCEDURE createuser
搞了很久,我跑到mysql5.0的服务器执行,能够通过,难道是语法问题?我去查了5.1的手册,没有问题。有用了其他5.1的机器测试,可以通过。
最后再mysql官方找到了这样的解决方案,执行 /usr/local/mysql/bin/mysql_upgrade工具,对表进行检查,检查结果如下,并未发现什么错误,但是可以创建存储过程了。
[root@zj6 ~]# /usr/local/mysql/bin/mysql_upgrade
Looking for 'mysql' as: /usr/local/mysql/bin/mysql
Looking for 'mysqlcheck' as: /usr/local/mysql/bin/mysqlcheck
Running 'mysqlcheck' with connection arguments: '--port=9188' '--socket=/var/lib/mysql/mysql.sock'
Running 'mysqlcheck' with connection arguments: '--port=9188' '--socket=/var/lib/mysql/mysql.sock'
ZION_GAME_DB.BADUser OK
ZION_GAME_DB.MAPOwnerGuild OK
ZION_GAME_DB.actionlimit OK
ZION_GAME_DB.billinfo OK
ZION_GAME_DB.completemission OK
ZION_GAME_DB.currentmission OK
ZION_GAME_DB.email OK
ZION_GAME_DB.emailitems OK
ZION_GAME_DB.equipitems OK
ZION_GAME_DB.familyinfo OK
ZION_GAME_DB.familymember OK
ZION_GAME_DB.familymission OK
ZION_GAME_DB.groupdata OK
ZION_GAME_DB.invenitems OK
ZION_GAME_DB.loopmission OK
ZION_GAME_DB.microcosm OK
ZION_GAME_DB.pet OK
ZION_GAME_DB.safegarbage OK
ZION_GAME_DB.sale OK
ZION_GAME_DB.saleprice OK
ZION_GAME_DB.signpost OK
ZION_GAME_DB.titledata OK
ZION_GAME_DB.userfriend OK
ZION_GAME_DB.usergarbage OK
ZION_GAME_DB.userinfo OK
ZION_GAME_DB.userskills OK
ZION_GAME_DB.usersubinfo OK
ZION_GAME_DB.usertable OK
ZION_LOG_DB.BillItemLog OK
ZION_LOG_DB.DeleteLog OK
ZION_LOG_DB.GarbageLog OK
ZION_LOG_DB.GarbageMoneyLog OK
ZION_LOG_DB.ItemLog OK
ZION_LOG_DB.LevelItemLog OK
ZION_LOG_DB.LevelLog OK
ZION_LOG_DB.LoginLog OK
ZION_LOG_DB.MoneyLog OK
ZION_LOG_DB.MyShopLog OK
ZION_LOG_DB.StressLog OK
ZION_LOG_DB.deluserinfo OK
ZION_LOG_DB.delusertable OK
mysql.columns_priv OK
mysql.db OK
mysql.event OK
mysql.func OK
mysql.general_log
Error : You can't use locks with log tables.
status : OK
mysql.help_category OK
mysql.help_keyword OK
mysql.help_relation OK
mysql.help_topic OK
mysql.host OK
mysql.ndb_binlog_index OK
mysql.plugin OK
mysql.proc OK
mysql.procs_priv OK
mysql.servers OK
mysql.slow_log
Error : You can't use locks with log tables.
status : OK
mysql.tables_priv OK
mysql.time_zone OK
mysql.time_zone_leap_second OK
mysql.time_zone_name OK
mysql.time_zone_transition OK
mysql.time_zone_transition_type OK
mysql.user OK
test.t OK
Running 'mysql_fix_privilege_tables'...
OK
分享到:
相关推荐
如果上述方法都无法解决问题,或者修复过程中出现了其他问题,建议先备份现有数据,然后尝试创建一个新的空表,并将数据重新导入新表中。 4. **使用第三方工具** 除了上述方法外,还可以考虑使用第三方的MySQL表...
6. 错误1005(HY000 ER_CANT_CREATE_TABLE):无法创建表格,可能的原因包括表名已存在、语法错误或者存储引擎问题。 7. 错误1006(HY000 ER_CANT_CREATE_DB):创建数据库失败,可能是数据库名已存在或权限不足。 ...
当尝试将通过`mysqldump`从本地环境导出的数据导入到服务器上的MySQL数据库时,可能会遇到一个错误提示:“ERROR 2005 (HY000): Unknown MySQL server host 'mysql'”。此错误导致数据导入中断,并且用户被迫退出...
在MySQL里创建外键时,提示错误,但只提示很简单的信息:ERROR 1005 (HY000): Can’t create table ‘db_qxztc.qx_userssssnew’ (errno: 150)。根本起不到解决问题的作用。 要看错误的详细提示,可以使用命令:(在...
ERROR 1007 (HY000): Can't create database 'test'; database exists ``` 为了避免这种错误,你可以使用带`IF NOT EXISTS`条件的`CREATE DATABASE`语句,这样只有在数据库不存在时才会执行创建操作,且不会出现...
Error 1419 (HY000): You do not have the super privilege and binary logging is enabled. 这意味着用户没有足够的权限来创建或修改触发器。这种情况通常发生在启用二进制日志记录(Binary Logging)选项的...
MySQL 错误1418通常发生在尝试创建或调用存储过程、函数或触发器时,错误信息提示“ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary ...
首先,关于错误代码ERROR 2005 (HY000): Unknown MySQL server host 'mysql'的问题。当使用mysqldump工具从本地导出数据到服务器上进行导入时,可能会遇到这种错误。该问题的出现可能是由于多种原因,例如数据不完整...
如果你的函数没有声明以上任何一个特性,而bin-log又已启用,MySQL就会抛出“ERROR 1418 (HY000)”错误。 解决这个问题的方法是明确指定函数的特性,或者调整MySQL的配置。你可以通过设置全局变量`log_bin_trust_...
- **常见错误处理**:如果遇到错误提示“ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)”,通常意味着MySQL服务未运行。 - **退出连接**:通过输入`QUIT`或按`...
然而,在开启bin-log时,可能会遇到一些问题,比如在创建存储过程时出现的错误:`ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging...
- **错误2**:设置密码时报错“ERROR 1820 (HY000): You must SET PASSWORD before executing this statement”。 - 解决方案:如上所述,先使用`SET PASSWORD`命令设置密码,然后再执行其他操作。 #### 四、...
- 错误:1005 (SQLSTATE: HY000) - 无法创建表:这通常发生在创建新表时,可能是由于语法错误、存储引擎问题或者重复的键值。 - 错误:1006 (SQLSTATE: HY000) - 无法创建数据库:数据库创建失败,可能是因为数据库...
如果数据库已存在,再次运行该语句会导致错误 `ERROR 1007 (HY000): Can't create database 'test3'; database exists`。为了避免这种错误,我们可以使用 `IF NOT EXISTS` 子句: ```sql CREATE DATABASE IF NOT ...
首先,尝试直接通过`ALTER TABLE`语句添加分区到非分区表会导致错误,MySQL会返回`ERROR 1505 <HY000>: Partition management on a not partitioned table is not possible`。正确的方法是创建一个新的具有相同结构...
MySQL是世界上最流行的关系型数据库管理系统(RDBMS)之一,它允许用户存储、管理和检索大量结构化数据。本文将简要介绍MySQL的基础知识,包括如何登录、创建数据库、操作数据库表以及执行基本的SQL查询。 首先,让...
然而,在创建自定义函数时,可能会遇到错误提示"ERROR 1418 (HY000): This routine has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled"。这个错误是由于...