SQL执行错误怎么办

SQL执行错误怎么办,第1张

MySQL软件所提供的权限(mysqluser、mysqldb、mysqlhost)

(1) 系统表mysqluser

user权限表中字段分为四类: 用户字段、权限字段、安全字段和资源控制字段。

用户字段

用户字段png

权限字段

权限字段png

安全字段

安全字段png

# 查看是否支持ssl标准show variables like 'have_openssl';123

资源控制字段

资源控制png

系统表mysqluser中的所有资源字段的默认值为0,表示没有任何限制。

(2) 系统表mysqldb和mysqlhost

在系统数据库mysql中,权限表除了表user外,还有表db和表host,这两张表都存储了某个用户对数据库的权限。

用户字段

mysqldb表

mysqldb表png

mysqlhost表

mysqlhost表png

权限字段

权限字段png

(3)其他权限表

在系统数据库mysql中,除了上述权限表外,还有表tables_priv和columns_priv,其中标tables_priv用来实现单个表的权限设置,表columns_priv用来实现单个字段列的权限设置。

系统表mysqltables_priv表结构

mysqltables_priv表结构png

mysqltables_priv表结构png

系统表mysqlcolumns_priv的表结构

columns_priv的表结构png

用户机制

(1) 登录和退出MySQL软件的完整命令

# 登录mysql -h 127001 -u root -p# 退出(\q)exit|quit12345

(2) 创建普通用户账户

执行CREATE USER语句来创建用户账户

create user 'mazaiting'@'localhost' identified by '123456';12

执行INSERT语句来创建用户

insert into user(host,user,password,ssl_cipher,x509_issuer,x509_subject)values('localhost', 'linghaoyu', password('linghaoyu'),'','','');# 使新建用户生效flush privileges;12345

执行GRANT语句来创建用户

grant select on companyt_deptto 'wangxingqin'@'localhost' identified by 'wangxingqin';123

(3) 利用超级权限用户root修改用户账户密码

修改超级权限用户账户密码

# 通过mysqladmin命令修改root用户密码mysqladmin -u root -p password "123456"# 通过SET命令修改密码set password=password("123456");# 更新系统表mysqluser数据记录修改root用户密码update user set password=password("123456")where user="root" and host="localhost";12345678

(4) 利用拥有超级权限用户root修改普通用户账户密码

# 创建用户grant select,create,drop on to 'mazaiting'@'localhost' identified by 'mazaiting'with grant option;# 通过grant命令修改用户密码grant select,create,drop on to 'mazaiting'@'localhost' identified by '123456';# 通过set命令修改用户密码set password for 'mazaiting'@'localhost'=password("123456");# 更新系统表mysqluser数据记录修改用户密码update user set password=password("mazaiting")where user='mazaiting' and host='localhost';# 登录当前用户,并使用set命令修改密码set password=password("123456");123456789101112131415

(5) 删除普通用户账户

通过DROP USER语句删除普通用户

drop user 'mazaiting'@'localhost';12

删除系统表mysqluser数据记录实现删除用户账号

# 选择mysql数据库use mysql;# 删除用户delete from user where user='mazaiting' and host='localhost';12345

权限管理

(1) 对用户进行授权

# 创建用户grant select,create,drop on to 'mazaiting'@'localhost' identified by 'mazaiting'with grant option;# 查询表数据记录select host,user,password,select_priv,update_priv,grant_priv,drop_privfrom mysqluserwhere user='mazaiting' \G12345678910

(2) 查看用户所拥有权限

show grants for 'mazaiting'@'localhost' \G12

(3) 收回用户所拥有权限

# 回收用户的查询权限revoke select on from 'mazaiting'@'localhost';# 回收用户的全部权限revoke all privileges, grant optionfrom 'mazaiting'@'localhost

可能是权限不足,不能创建表格,或者:当你试图在mysql中创建一个外键的时候,这个出错会经常发生,这是非常令人沮丧的。像这种不能创建一个frm

文件的报错好像暗示着 *** 作系统的文件的权限错误或者其它原因,但实际上,这些都不是的,事实上,这个mysql报错已经被报告是一个mysql本身的bug并出现在mysql

开发者列表当中很多年了,然而这似乎又是一种误导。在很多实例中,这种错误的发生都是因为mysql一直以来都不能很好的支持的关系的问题,

更不幸的是它也并没有指明到底是哪一个问题会导致上面那种错误,下面我把导致这个可怕

的150错误的常见原因列出来了,并且我以可能性的大小作了排序已知的原因:1,两个字段的类型或者大小不严格匹配,例如,如果一个是INT(10),

那么外键也必须设置成INT(10),

而不是

INT(11)

也不能是TINYINT

你得使用

SHOW

命令来查看字段的大小,因为一些查询浏览器有时候把

int(10)

和int(11)都显示为integer。另外,你还必须确定两个字段是否一个为

SIGNED,而另一个又是UNSIGNED,

这两字段必须严格地一致匹配。2,

你试图引用的其中一个外键没有建立起索引,或者不是一个primary

key

,

如果其中一个不是primary

key

的放,你必须为它创建一个索引。3,

外键的名字是一个已经存在的一个键值了,这个时候,你应该检查你的数据库以确保外健名字是唯一的,或者你在键名后面加上几个随机的字符以测试是否是这个原因。4,

其中一个或者两个表是MyISAM引擎的表,若想要使用外键约束,必须是InnoDB引擎,(实际上,如果两个表都是MyISAM

引擎的,这个错误根本不会发生,但也不会产生外键),你可以通过查询浏览器来设置表的引擎类型5,

你可能设置了ON

DELETE

SET

NULL,

但是相关的键的字段又设置成了NOTS

NULL

值。你可能通过修改cascade

的属性值或者把字段属性设置成

allow

null

来搞定这个bug6,

请确定你的Charset

Collate

选项在表级和字段级上的一致7,

你可能设置为外键设置了一个默认值,如

default=08,

在这个关系里面,其中的一个字段是一个混合键值中的一个,它没有自己独立的索引,这时,你必须为它创建一个独立的索引。9,

ALTER

声明中有语法错误1、外键的引用类型不一样,主键是int外键是char2、找不到主表中

引用的列3、主键和外键的字符编码不一致4还有要建立外键的话,要先建立索引。没有建立索引也会出错。我的问题解决方案是在sql后面加上了如下句话,ok!成功导入脚本ENGINE=INNODB

DEFAULT

CHARSET=utf8;charset对应的换成你的主键表的字符集!

mysql 版本不对……

换个mysql 5x的试下。

或者试这样:

CREATE TABLE `tbl_online` (

`auctionID` int( 6 ) unsigned NOT NULL default '0',

`userID` int( 6 ) unsigned NOT NULL default '0',

`userName` varchar( 100 ) NOT NULL default '',

`actionDate` timestamp NOT NULL,

`bz` varchar( 100 ) NOT NULL default ''

);

一:数据库引擎没有启动:\x0d\ 开始->程序->Microsoft SQL Server 2005->SQL Server 2005外围应用配置器,在打开的界面单击"服务的连接的外围应用配置器",在打开的界面中找到Database Engine,单击"服务",在右侧查看是否已启动,如果没有启动可单击"启动",并确保"启动类型"为自动,不要为手动,否则下次开机时又要手动\x0d\二:启动行远程连接设置没有打开\x0d\1指向“开始->程序->Microsoft SQL Server 2005->配置工具->SQL Server 外围应用配置器” \x0d\2在“SQL Server 2005 外围应用配置器”页, 单击“服务和连接的外围应用配置器” \x0d\3然后单击展开“数据库引擎”, 选中“远程连接”,在右边选中“本地连接和远程连接”, \x0d\再选择要使用的协议,( 这个地方应当启用TCP/IP 和命名管道服务!)单击“应用”,您会看到下消息: “直到重新启动数据库引擎服务后,对连接设置所做的更改才会生效。”,单击“确定”按钮返回 \x0d\4展开“数据库引擎”, 选中“服务”,在右边单击“停止”,等到 MSSQLSERVER 服务停止, 然后单击“启动”,重新启动MSSQLSERVER 服务。

以上就是关于SQL执行错误怎么办全部的内容,包括:SQL执行错误怎么办、SQL执行错误#1193从数据库Unknown system variable 'SQL_MODE'、MYSQL数据库,创建时执行语句出错,要怎么改呢等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/sjk/10144485.html

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

发表评论

登录后才能评论

评论列表(0条)

保存