MYSQL #1064错误

MYSQL #1064错误,第1张

出现这种情况是因为你建表的SQL语句有错误

你的给出的代码里option为MYSQL关键字,不能直接写,需要用`包括起来,为:  `option` varchar(50) NOT NULL default ''

----下面就没问题了

CREATE TABLE components (

id int(11) NOT NULL auto_increment,

name varchar(50) NOT NULL default '',

link varchar(255) NOT NULL default '',

menuid int(11) unsigned NOT NULL default '0',

parent int(11) unsigned NOT NULL default '0',

admin_menu_link varchar(255) NOT NULL default '',

admin_menu_alt varchar(255) NOT NULL default '',

`option` varchar(50) NOT NULL default '',

ordering int(11) NOT NULL default '0',

admin_menu_img varchar(255) NOT NULL default '',

iscore tinyint(4) NOT NULL default '0',

params text NOT NULL,

PRIMARY KEY (id)

) TYPE=MyISAM

扩展资料:

MYSQL 报错解决:

1.Starting MySQL.Manager of pid-file quit without updating fi[失败]

关于这个错误原因有很多,最大的可能是没有创建测试数据库,可以用/usr/local/mysql/scripts/mysql_install_db _user=mysql命令进行创建;另外一个原因可能是权限设置问题,需要赋予mysql的data权限,可以用chmod -R 命令。

2.FATAL ERROR: Could not find /home/mysql/bin/my_print_defaults If you are using a binary release,you must run this script from

within the directory the archive extracted into. If you compiled

MySQL yourself you must run ‘make install’ first.

这个错误,是没有指明mysql的data路径导致的:

vim /etc/my.cnf

在[mysqld] 后面加上路径:

basedir = /usr/local/mysql

datadir =/opt/data;

3.-bash: mysql: command not found

用mysql命令进行登陆mysql报错,原因是没有设置环境变量,需要设置。

mysql -u root

4.ERROR 1130: Host ’192.168.1.3′ is not allowed to connect to this MySQL server

用mysql远程工具链接数据库报错,这个错误原因是没有开放远程链接功能,可以在mysql里面输入如下命令进行解决:GRANT ALL PRIVILEGES ON *.* TO ’root‘@’%' IDENTIFIED BY ’password’ WITH GRANT OPTION

参考资料:百度百科-mySQL

declare是用来定义变量和常用处理、声明之类的关键字。在mysql存储过程出现之前declare是一块鸡肋,大家常用declare来定义局部变量,我习惯性的还是使用set来定义变量(虽然是全局的,但是来的方便)。存储过程出现后declare的标准处理定义就变成了非常强大的工具,可以用来为存储过程添加一些非常强大的错误处理机制。首先需要提一点的是declare定义变量如果想定义varchar型的,必须注明参数最大长度,即declare varchar(20).在这里我们不深究它用来定义参数的小细节我们主要来研究DECLARE Condition 和 DECLARE HandlerDECLARE Condition 和 DECLARE Handler可以说是为了处理错误而生的。功能上讲DECLARE Condition出现的时间比较早,功能也比较简单,它可以通过错误编号或者SQLSTATE来触发一各名字,说明白一点就是当某个错误编号出现的时候替换一个名字给它。这样调用的时候,我们不用去记一大串错误编号了。它的标准语法我们可以在mysql的附注中找到。DECLARE condition_name CONDITION FOR condition_valuecondition_value:例子如下:DECLARE errname CONDITION FOR SQLSTATE '23000'将返回SQLSTATE信息为23000的错误定名为errname这个名字就可以被我们的绝对重头戏DECLARE Handler调用了,在DECLARE Handler中可以定义错误的处理办法,可以使用begin和end来标记语句块,可以单独使用rollback。处理的过程也可以定义为继续执行和中断存储过程。标准语法:DECLARE handler_type HANDLER FOR condition_value[,...] sp_statementhandler_type: 处理的过程。CONTINUE 继续执行未完成的存储过程,直至结束。(常用,默认)| EXIT 出现错误即自动跳出所在的begin不再执行后面的语句。condition_value: 处理的触发条件SQLSTATE [VALUE] sqlstate_value 不用说了,最常用的错误定义,自己去查错误列表吧。| condition_name 我们刚刚定义的那个名字errnmae就是用在这里的。| SQLWARNING 这个太好用了,从错误编号01开始的错误。相当于错误的通配符。| NOT FOUND 和上面差不多,从02开始。| SQLEXCEPTION 上面两个中没有包括的错误它都可以用来触发,就是说你想定义只要出错就触发的话就定义出错条件为SQLWARNING+SQLEXCEPTION。| mysql_error_code 错误编号,和第一个不一样,不过同样可以在错误列表从中查到,是我比较常用的。例子DECLARE errname CONDITION FOR SQLSTATE '23000'给导致错误23000的错误定义名字为errnameDECLARE continue handler for errname 当errname发生时作下面的处理BEGIN 语句开始set @x=1设置@x=1

请采纳。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8653838.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-19
下一篇 2023-04-19

发表评论

登录后才能评论

评论列表(0条)

保存