如何全局关闭MYSQL的自动提交

如何全局关闭MYSQL的自动提交,第1张

MySQL默认 *** 作模式就是autocommit自动提交模式。这就表示除非显式地开始一个事务,否则每个查询都被当做一个单独的事务自动执行。我们可以通过设置autocommit的值改变是否是自动提交autocommit模式。

通过以下命令可以查看当前autocommit模式

mysql>show variables like 'autocommit'

+---------------+-------+

| Variable_name | Value |

+---------------+-------+

| autocommit| ON|

+---------------+-------+

1 row in set (0.04 sec)

从查询结果中,我们发现Value的值是ON,表示autocommit开启。我们可以通过以下SQL语句改变这个模式

mysql>set autocommit = 0

值0和OFF都是一样的,当然,1也就表示ON。通过以上设置autocommit=0,则用户将一直处于某个事务中,直到执行一条commit提交或rollback语句才会结束当前事务重新开始一个新的事务。

举个例子:

张三给李四转账500元。那么在数据库中应该是以下 *** 作:

1,先查询张三的账户余额是否足够

2,张三的账户上减去500元

3,李四的账户上加上500元

以上三个步骤就可以放在一个事务中执行提交,要么全部执行要么全部不执行,如果一切都OK就commit提交永久性更改数据;如果出错则rollback回滚到更改前的状态。利用事务处理就不会出现张三的钱少了李四的账户却没有增加500元或者张三的钱没有减去李四的账户却加了500元。

MySQL默认的存储引擎是MyISAM,MyISAM存储引擎不支持事务处理,所以改变autocommit没有什么作用。但不会报错,所以要使用事务处理的童鞋一定要确定你所 *** 作的表示支持事务处理的,如InnoDB。如果不知道表的存储引擎可以通过查看建表语句查看建表的时候有没有指定事务类型的存储引擎,如果没有指定存储引擎默认则是MyISAM不支持事务的存储引擎。

当然,事务处理是为了保障表数据原子性、一致性、隔离性、持久性。这些都是要消耗系统资源的,要谨慎选择。

使用: mysql -u root -p 进入 mysql 命令号以后, 如果想退出, 可以使用: quit 命令, 如下:

mysql -u root -p

quit

扩展资料:

数据库常用 *** 作:

登录到mysql中,然后在mysql的提示符下运行下列命令,每个命令以分号结束。

1、显示数据库列表。

show databases

缺省有两个数据库:mysql和test。 mysql库存放着mysql的系统和用户权限信息,我们改密码和新增用户,实际上就是对这个库进行 *** 作。

2、 显示库中的数据表:

use mysql

show tables

3、 显示数据表的结构:describe 表名

4、 建库与删库:

create database 库名

drop database 库名

5、 建表:

use 库名

create table 表名(字段列表)

drop table 表名

6、 清空表中记录:

delete from 表名

truncate table 表名

7、 显示表中的记录:select * from 表名

关于Ubuntu中的MySQL *** 作

ubuntu下mysql的常用命令,MySQL数据库的基本 *** 作命令

一、mysql服务 *** 作

0、查看数据库版本 sql->status

1、net start mysql //启动mysql服务

2、net stop mysql //停止mysql服务 

3、mysql

-h主机地址 -u用户名 -p用户密码 //进入mysql数据库

4、quit //退出mysql *** 作

5、mysqladmin -u用户名

-p旧密码 password 新密码 //更改密码

6、grant select on 数据库.* to 用户名@登录主机 identified by

"密码" //增加新用户

exemple:

例2、增加一个用户test2密码为abc,让他只可以在localhost上登录,并可以对数据库mydb进行查询、插入、修改、删除的 *** 作

(localhost指本地主机,即MYSQL数据库所在的那台主机),这样用户即使用知道test2的密码,他也无法从internet上直接访问数据

库,只能通过MYSQL主机上的web页来访问了。

grant select,insert,update,delete on mydb.* to

test2@localhost identified by "abc"

如果你不想test2有密码,可以再打一个命令将密码消掉。

grant

select,insert,update,delete on mydb.* to test2@localhost identified by ""


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

原文地址: https://outofmemory.cn/zaji/8659965.html

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

发表评论

登录后才能评论

评论列表(0条)

保存