Mysql支持事务处理

转载 2006年06月12日 14:55:00
Mysql支持事务处理

转贴——让Mysql支持事务处理
摘自:http://www.web-bbs.com/forum/read.php?tid=15
在RedHat 7.2 下已经验证

一、在linux 6.2下安装
1.在mysql网站上下载稳定最大功能版本 (当前版本为 3.23.47-max)
2.注意你可以下载二进制版本没,而不需要编译;不必下载RPM版本
3.我们将安装mysql server到/usr/local下,故cd /usr/local
5.解开下载档案 tar zxvf /root/mysql-max-3.23.47-pc-linux-gnu-i686.tar.gz ./
6.有空你可以看看 INSTALL-BINARY,或直接按下面的步骤操作
7.
shell> groupadd mysql
shell> useradd -g mysql mysql
shell> cd /usr/local
shell> gunzip < /path/to/mysql-VERSION-OS.tar.gz | tar xvf -
shell> ln -s mysql-VERSION-OS mysql
shell> cd mysql
shell> scripts/mysql_install_db
shell> chown -R root /usr/local/mysql
shell> chown -R mysql /usr/local/mysql/data
shell> chgrp -R mysql /usr/local/mysql
shell> chown -R root /usr/local/mysql/bin
shell> vi startmysqld
上面这个命令是要编辑一个启动脚本,内容如下,不要包括虚线哦!
#---不要这一行--------------------------------------------------------------------
#!/bin/sh
cd /usr/local/mysql
./bin/safe_mysqld --user=mysql &
cd -
#---不要这一行---------------------------------------------------------------------
shell> chmod 775 startmysqld
shell> vi /etc/rc.d/rc.local
上面这个命令是准备把启动mysql命令加入系统启动文件中,这样机器一启动完,mysql server也就启动了,在文件的最后一行加入:/usr/local/mysql/bin/startmysqld,关闭vi退出。
shell>startmysqd
这时出现下面的消息,如果没有报错就继续8,否则检查上面的步骤
Starting mysqld daemon with databases from /usr/local/mysql-max-3.23.47-pc-linux-gnu-i686/data
8. shell>mysqladmin -uroot shutdown
9. shell>cd /usr/local/mysql
shell>cp support-files/my-small.cnf data/my.cnf
shell>vi data/my.cnf
这里把innodb开关打开,去掉那些#象下面一样。
innodb_data_home_dir = /usr/local/mysql/var/
innodb_data_file_path = ibdata1:100M
innodb_data_home_dir = /usr/local/mysql/var/
innodb_log_group_home_dir = /usr/local/mysql/var/
innodb_log_arch_dir = /usr/local/mysql/var/
set-variable = innodb_mirrored_log_groups=1
set-variable = innodb_log_files_in_group=3
set-variable = innodb_log_file_size=5M
set-variable = innodb_log_buffer_size=8M
innodb_flush_log_at_trx_commit=1
innodb_log_archive=0
set-variable = innodb_buffer_pool_size=16M
set-variable = innodb_additional_mem_pool_size=2M
set-variable = innodb_file_io_threads=4
set-variable = innodb_lock_wait_timeout=50
上面的配置把innodb的数据,日志等文件都保存在/usr/local/mysql/var下,下面就要创建这个目录了
10. shell>mkdir var
shell>chown mysql.mysql var
shell>chmod g+w var
注意要使得改目录mysql用户能写,innodb不会自动创建目录
11. shell>startmysqld
shell>mysql -uroot
希望你能看到:

mysql> show variables like "have_%";
+-------------------+--------+
| Variable_name | Value |
+-------------------+--------+
| have_bdb | YES |
| have_gemini | NO |
| have_innodb | YES |
| have_isam | YES |
| have_raid | NO |
| have_openssl | NO |
+-------------------+--------+
6 rows in set (0.00 sec)

如果是这样的,那么我们就可以创建一张支持事务处理的表来试试了
1.mysqladmin -uroot creat innodb 创建一个数据库
2.mysql innodb 进入mysql client

mysql> CREATE TABLE CUSTOMER (A INT, B CHAR (20), INDEX (A)) TYPE = InnoDB;
Query OK, 0 rows affected (0.02 sec)
mysql> set autocommit=0;
Query OK, 0 rows affected (0.00 sec)
mysql> INSERT INTO CUSTOMER VALUES(0,"Rainman");
Query OK, 1 row affected (0.00 sec)
mysql> COMMIT;
Query OK, 0 rows affected (0.02 sec)
mysql> SELECT * FROM CUSTOMER;
+------+---------+
| A | B |
+------+---------+
| 0 | Rainman |
+------+---------+
1 row in set (0.01 sec)
mysql> INSERT INTO CUSTOMER VALUES(1,"Rainman2");
Query OK, 1 row affected (0.00 sec)
mysql> SELECT * FROM CUSTOMER;
+------+----------+
| A | B |
+------+----------+
| 0 | Rainman |
| 1 | Rainman2 |
+------+----------+
2 rows in set (0.00 sec)
mysql> ROLLBACK;
Query OK, 0 rows affected (0.02 sec)
mysql> SELECT * FROM CUSTOMER;
+------+---------+
| A | B |
+------+---------+
| 0 | Rainman |
+------+---------+
1 row in set (0.00 sec)
mysql> COMMIT;

MYSQL的事务处理功能

事务处理在各种管理系统中都有着广泛的应用,比如人员管理系统,很多同步数据库操作大都需要用到事务处理。比如说,在人员管理系统中,你删除一个人员,你即需要删除人员的基本资料,也要删除和该人员相关的信息,如...
  • dodott
  • dodott
  • 2015年08月27日 15:31
  • 1341

关于mysql管理事务处理

前提:数据库引擎必须是InnoDB类型。 在mysql中,MyISAM和InnoDB是最常用的两种引擎,(其中MyISAM是默认引擎),其中 MyISAM 支持全文本搜索,但不支持事务;而 Inno...
  • baidu_30000217
  • baidu_30000217
  • 2015年12月21日 12:18
  • 1099

MySQL事务处理实现方法步骤

需求说明:  案例背景:银行的转账过程中,发生意外是在所难免。为了避免意外而造成不必要的损失,使用事务处理的方式进行处理: A账户现有余额1000元,向余额为200的B账户进行转账500元。可能由于某...
  • hello_zhou
  • hello_zhou
  • 2016年07月09日 12:39
  • 7498

MySQL数据库事务处理

事务处理用于有效记录某机构感兴趣的业务活动(称为事务)的数据处理(例如销售、供货的定购或货币传输)。通常,联机事务处理 (OLTP) 系统执行大量的相对较小的事务。 事务处理是将多个操作或者命令一起执...
  • moxigandashu
  • moxigandashu
  • 2017年03月16日 15:43
  • 1078

MySQL 事务处理的理解

事务是为了解决一组数据库操作过程中出现意外而导致数据不能同步的更新和操作以致...
  • dg8804027
  • dg8804027
  • 2014年08月14日 22:03
  • 403

MySQL不支持事务处理的解决方法

http://www.baike369.com/content/?id=5456 MySQL不支持事务处理的解决方法 MySQL数据库默认的存储引擎类型是MyISAM,...
  • zunguitiancheng
  • zunguitiancheng
  • 2016年04月09日 20:13
  • 1660

数据库的事务处理

事务是这样一种机制,它确保多个SQL语句被当作单个工作单 元来处理。事务具有以下的作用: 一致性:同时进行的查询和更新彼此不会发生冲突,其他 用户不会看到发生了变化但尚未提交的数据。 可恢复...
  • liutao2016
  • liutao2016
  • 2017年01月10日 17:26
  • 428

PHP中PDO的MYSQL事务处理实例

PHP中PDO的MYSQL事务处理实例 事务(transaction)是由查询和/或更新语句的序列组成。 用 begin、start transaction 开始一个事务,rollback...
  • listen_for
  • listen_for
  • 2016年09月06日 14:27
  • 2201

【mysql学习笔记】-事务处理

1.基本概念 1)事务:指一组SQL语句,是在一次逻辑中对数据库执行的一系列操作 2)回退:指撤销指定SQL语句的过程 3)提交:指将未存储的SQL语句结果写入数据库表 4)保留点:指事务处理...
  • Kevin_zhai
  • Kevin_zhai
  • 2016年06月21日 14:04
  • 3879

mysql事务处理用法与实例详解

mysql事物处理实例 MYSQL的事务处理主要有两种方法 1.用begin,rollback,commit来实现     begin开始一个事务     rollback事务回滚   ...
  • u014796999
  • u014796999
  • 2016年10月30日 05:01
  • 814
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Mysql支持事务处理
举报原因:
原因补充:

(最多只允许输入30个字)