MYSQL的事務處理主要有兩種方法。
1、用begin,rollback,commit來實作
begin 開始一個事務
rollback 事務復原
commit 事務确認
2、直接用set來改變mysql的自動送出模式
MYSQL預設是自動送出的,也就是你送出一個QUERY,它就直接執行!我們可以通過
set autocommit=0 禁止自動送出
set autocommit=1 開啟自動送出
來實作事務的處理。
當你用 set autocommit=0 的時候,你以後所有的SQL都将做為事務處理,直到你用commit确認或rollback結束。
注意當你結束這個事務的同時也開啟了個新的事務!按第一種方法隻将目前的作為一個事務!
個人推薦使用第一種方法!
MYSQL中隻有INNODB和BDB類型的資料表才能支援事務處理!其他的類型是不支援的!
***:一般MYSQL資料庫預設的引擎是MyISAM,這種引擎不支援事務!如果要讓MYSQL支援事務,可以自己手動修改:
方法如下:1.修改c:\appserv\mysql\my.ini檔案,找到skip-InnoDB,在前面加上#,後儲存檔案。
2.在運作中輸入:services.msc,重新開機mysql服務。
3.到phpmyadmin中,mysql->show engines;(或執行mysql->show variables like 'have_%'; ),檢視InnoDB為YES,即表示資料庫支援InnoDB了。
也就說明支援事務transaction了。
4.在建立表時,就可以為Storage Engine選擇InnoDB引擎了。如果是以前建立的表,可以使用mysql->alter table table_name type=InnoDB;
或 mysql->alter table table_name engine=InnoDB;來改變資料表的引擎以支援事務。
MySQL指令行導出資料庫: 1,進入MySQL目錄下的bin檔案夾:cd MySQL中到bin檔案夾的目錄 如我輸入的指令行:cd C:\Program Files\MySQL\MySQL Server 4.1\bin (或者直接将windows的環境變量path中添加該目錄)
2,導出資料庫:mysqldump -u 使用者名 -p 資料庫名 > 導出的檔案名 如我輸入的指令行:mysqldump -u root -p news > news.sql (輸入後會讓你輸入進入MySQL的密碼) (如果導出單張表的話在資料庫名後面輸入表名即可)
3、會看到檔案news.sql自動生成到bin檔案下 指令行導入資料庫:
1,将要導入的.sql檔案移至bin檔案下,這樣的路徑比較友善 2,同上面導出的第1步 3,進入MySQL:mysql -u 使用者名 -p 如我輸入的指令行:mysql -u root -p (輸入同樣後會讓你輸入MySQL的密碼) 4,在MySQL-Front中建立你要建的資料庫,這時是空資料庫,如建立一個名為news的目标資料庫 5,輸入:mysql>use 目标資料庫名 如我輸入的指令行:mysql>use news; 6,導入檔案:mysql>source 導入的檔案名; 如我輸入的指令行:mysql>source news.sql;
MySQL備份和還原,都是利用mysqldump、mysql和source指令來完成的。 1.Win32下MySQL的備份與還原 1.1 備份 開始菜單 | 運作 | cmd |利用“cd \Program Files\MySQL\MySQL Server 5.0\bin”指令進入bin檔案夾 | 利用“mysqldump -u 使用者名 -p databasename >exportfilename”導出資料庫到檔案,如mysqldump -u root -p voice>voice.sql,然後輸入密碼即可開始導出。 1.2 還原 進入MySQL Command Line Client,輸入密碼,進入到“mysql>”,輸入指令"show databases;",回車,看看有些什麼資料庫;建立你要還原的資料庫,輸入"create database voice;",回車;切換到剛建立的資料庫,輸入"use voice;",回車;導入資料,輸入"source voice.sql;",回車,開始導入,再次出現"mysql>"并且沒有提示錯誤即還原成功。 2.Linux下MySQL的備份與還原 2.1 備份 [[email protected] ~]# cd /var/lib/mysql (進入到MySQL庫目錄,根據自己的MySQL的安裝情況調整目錄) [[email protected] mysql]# mysqldump -u root -p voice>voice.sql,輸入密碼即可。 2.2 還原 法一: [[email protected] ~]# mysql -u root -p 回車,輸入密碼,進入MySQL的控制台"mysql>",同1.2還原。 法二: [[email protected] ~]# cd /var/lib/mysql (進入到MySQL庫目錄,根據自己的MySQL的安裝情況調整目錄) [[email protected] mysql]# mysql -u root -p voice