mysql 事务权限_0428-mysql(事务、权限)

1.事务

“事务”是一种可以保证“多条语句一次性执行完成”或“一条都不执行”的机制。

两种开始事务的方法:

1.set  autocommit = 0; //false,此时不再是一条语句一个事务了,必须使用commit语句才能够生效。默认=1(true)

2.start transaction  //声明事务开始。

事务的基本实现流程:

1.声明事务开始:start transaction;

2.设定多条要执行的具体语句,比如:insert, update, delete, select...其实就是执行,只是这些执行的语句,并不“生效”——其只是内存状态下的执行,而不是物理状态的执行。

3.判断是否需要执行该些语句:

if( 判断是否有错误){

//执行——才针对执行了物理性改变——即生效。

commit;

}

else{

//回滚——不执行任何语句。

rollback;

}

判断是否有错误通常分这两种环境:

1.如果是cmd中,直接观察是否出错。

2.如果是php程序中,那就需要使用 mysql_error()函数来判断是否有错。

2.权限

MySQL 默认有个root用户,但是这个用户权限太大,一般只在管理数据库时候才用。如果在项目中要连接 MySQL 数据库,则建议新建一个权限较小的用户来连接。

在 MySQL 命令行模式下输入如下命令可以为 MySQL 创建一个新用户:

新用户创建完成,但是此刻如果以此用户登陆的话,会报错,因为我们还没有为这个用户分配相应权限,分配权限的命令如下:

授予username用户在所有数据库上的所有权限。

如果此时发现刚刚给的权限太大了,如果我们只是想授予它在某个数据库上的权限,那么需要切换到root 用户撤销刚才的权限,重新授权:

甚至还可以指定该用户只能执行 select 和 update 命令:

这样一来,再次以username登陆 MySQL,只有wordpress数据库是对其可见的,并且如果你只授权它select权限,那么它就不能执行delete 语句。

另外每当调整权限后,通常需要执行以下语句刷新权限:

删除刚才创建的用户:

仔细上面几个命令,可以发现不管是授权,还是撤销授权,都要指定响应的host(即 @ 符号后面的内容),因为以上及格命令实际上都是在操作mysql 数据库中的user表,可以用如下命令查看相应用户及对应的host

1 SELECT User, Host FROM user;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值