mysql 事务权限_0428-mysql(事务、权限)
1.事務(wù)
“事務(wù)”是一種可以保證“多條語句一次性執(zhí)行完成”或“一條都不執(zhí)行”的機(jī)制。
兩種開始事務(wù)的方法:
1.set ?autocommit = 0; //false,此時(shí)不再是一條語句一個(gè)事務(wù)了,必須使用commit語句才能夠生效。默認(rèn)=1(true)
2.start transaction //聲明事務(wù)開始。
事務(wù)的基本實(shí)現(xiàn)流程:
1.聲明事務(wù)開始:start transaction;
2.設(shè)定多條要執(zhí)行的具體語句,比如:insert, update, delete, select...其實(shí)就是執(zhí)行,只是這些執(zhí)行的語句,并不“生效”——其只是內(nèi)存狀態(tài)下的執(zhí)行,而不是物理狀態(tài)的執(zhí)行。
3.判斷是否需要執(zhí)行該些語句:
if( 判斷是否有錯(cuò)誤){
//執(zhí)行——才針對(duì)執(zhí)行了物理性改變——即生效。
commit;
}
else{
//回滾——不執(zhí)行任何語句。
rollback;
}
判斷是否有錯(cuò)誤通常分這兩種環(huán)境:
1.如果是cmd中,直接觀察是否出錯(cuò)。
2.如果是php程序中,那就需要使用 mysql_error()函數(shù)來判斷是否有錯(cuò)。
2.權(quán)限
MySQL 默認(rèn)有個(gè)root用戶,但是這個(gè)用戶權(quán)限太大,一般只在管理數(shù)據(jù)庫時(shí)候才用。如果在項(xiàng)目中要連接 MySQL 數(shù)據(jù)庫,則建議新建一個(gè)權(quán)限較小的用戶來連接。
在 MySQL 命令行模式下輸入如下命令可以為 MySQL 創(chuàng)建一個(gè)新用戶:
新用戶創(chuàng)建完成,但是此刻如果以此用戶登陸的話,會(huì)報(bào)錯(cuò),因?yàn)槲覀冞€沒有為這個(gè)用戶分配相應(yīng)權(quán)限,分配權(quán)限的命令如下:
授予username用戶在所有數(shù)據(jù)庫上的所有權(quán)限。
如果此時(shí)發(fā)現(xiàn)剛剛給的權(quán)限太大了,如果我們只是想授予它在某個(gè)數(shù)據(jù)庫上的權(quán)限,那么需要切換到root 用戶撤銷剛才的權(quán)限,重新授權(quán):
甚至還可以指定該用戶只能執(zhí)行 select 和 update 命令:
這樣一來,再次以u(píng)sername登陸 MySQL,只有wordpress數(shù)據(jù)庫是對(duì)其可見的,并且如果你只授權(quán)它select權(quán)限,那么它就不能執(zhí)行delete 語句。
另外每當(dāng)調(diào)整權(quán)限后,通常需要執(zhí)行以下語句刷新權(quán)限:
刪除剛才創(chuàng)建的用戶:
仔細(xì)上面幾個(gè)命令,可以發(fā)現(xiàn)不管是授權(quán),還是撤銷授權(quán),都要指定響應(yīng)的host(即 @ 符號(hào)后面的內(nèi)容),因?yàn)橐陨霞案衩顚?shí)際上都是在操作mysql 數(shù)據(jù)庫中的user表,可以用如下命令查看相應(yīng)用戶及對(duì)應(yīng)的host
1 SELECT User, Host FROM user;
總結(jié)
以上是生活随笔為你收集整理的mysql 事务权限_0428-mysql(事务、权限)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql物理备份迁移注意细节_物理拷贝
- 下一篇: 五粮春是酱香还是浓香?