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;
總結
以上是生活随笔為你收集整理的mysql 事务权限_0428-mysql(事务、权限)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql物理备份迁移注意细节_物理拷贝
- 下一篇: django 不用自带的mysql_21