DECLARE handler_type HANDLER FOR condition_value[,...] sp_statement
其中,
handler_type的取值范围:CONTINUE | EXIT | UNDO
condition_value的取值范围:SQLSTATE [VALUE] sqlstate_value | condition_name | SQLWARNING | NOT FOUND | SQLEXCEPTION | mysql_error_code
这个语句指定每个可以处理一个或多个条件的处理程序.如果产生一个或多个条件,指定的语句被执行. 对一个CONTINUE处理程序,当前子程序的执行在执行处理程序语句之后继续.对于EXIT处理程序,当前BEGIN...END复合语句的执行被终止.UNDO 处理程序类型语句还不被支持.
- SQLWARNING是对所有以01开头的SQLSTATE代码的速记.
- SQLEXCEPTION是对所有没有被SQLWARNING或NOT FOUND捕获的SQLSTATE代码的速记.
注:除了SQLSTATE值,MySQL错误代码也不被支持.
例:
delimiter $$
CREATE TABLE +_t1+ (
+id+ int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (+id+)
DELIMITER $$
CREATE DEFINER=+abandonship+@+%+ PROCEDURE +P_TestException+()
BEGIN
declare _var,_err int default 0;
翻译:不能连接到 localhost 上的mysql
分析:这说明"localhost"计算机是存在的,但在这台机器上却没提供MySQL服务.
需要启动这台机器上的MySQL服务,如果机子负载太高没空相应请求也会产生这个错误.
解决:既然没有启动那就去启动这台机子的mysql.如果启动不成功,多数是因为你的my.ini配置的有问题.重新配置其即可.
第二段:Unknown MySQL Server Host 'localhosadst' (11001)
翻译:未知的MySQL服务器 localhosadst
分析:服务器 localhosasdst 不存在.或者根本无法连接
解决:仔细检查自己论坛下面的 ./config.inc.php 找到$dbhost重新设置为正确的mysql 服务器地址.
翻译:用户 roota 访问 localhost 被拒绝(没有允许通过)
分析:造成这个错误一般数据库用户名和密码相对mysql服务器不正确
解决:仔细检查自己论坛下面的 ./config.inc.php 找到$dbuser、$dbpw核实后重新设置保存即可.
翻译:用户 red 在localhost 服务器上没有权限操作数据库newbbs
分析:这个提示和问题三是不同的.那个是在连接数据库的时候就被阻止了,而这个错误是在对数据库进行操作时引起的.比如在select update等等.这个是因为该用户没有操作数据库相应的权力.比如select 这个操作在mysql.user.Select_priv里记录 Y 可以操作N 不可以操作.
解决:如果是自己的独立主机那么更新mysql.user 的相应用户记录,比如这里要更新的用户为red .或者直接修改 ./config.inc.php 为其配置一个具有对数据库操作权限的用户
提示:更新了mysql库中的记录一定要重启mysql服务器才能使更新生效
FLUSH PRIVILEGES;
第五段:No Database Selected
翻译:没有数据库被选择上
分析:产生的原因有两种
config.inc.php 里面$dbname设置的不对.致使数据库根本不存在,所以在 $db-select_db($dbname); 时返回了false
和上面问题四是一样的,数据库用户没有select权限,同样会导致这样的错误.当你发现config.inc.php的设置没有任何问题,但还是提示这个错误,那一定就是这种情况了.
解决:对症下药
打开config.inc.php 找到$dbname核实重新配置并保存
同问题四的解决方法
翻译:不能打开xxx_forums.MYI
问题分析:
这种情况是不能打开 cdb_forums.MYI 造成的,引起这种情况可能的原因有:
①.、服务器非正常关机,数据库所在空间已满,或一些其它未知的原因,对数据库表造成了损坏.
解决方法:
①.、修复数据表
可以使用下面的两种方式修复数据表:(第一种方法仅适合独立主机用户)
①.)使用 myisamchk ,MySQL 自带了专门用户数据表检查和修复的工具 —— myisamchk .更改当前目录到 MySQL/bin 下面,一般情况下只有在这个下面才能运行 myisamchk 命令.常用的修复命令为:myisamchk -r 数据文件目录/数据表名.MYI;
注意:以上两种修复方式在执行前一定要备份数据库.
今天晚上运营同事反馈了系统有个列表数据查询不出来,筛选某个条件又能查出数据来.当运营反馈时,立马收到线上报警邮件提示如下: