日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > > 充電吧
[導讀]作者:天一閣圖書管理員今天群里有前同事在問mysqldump出來的sql文件在導入的時候,報錯error1227(42000)at line 18: Acess denied; you need (a

作者:天一閣圖書管理員

今天群里有前同事在問mysqldump出來的sql文件在導入的時候,報錯error1227(42000)at line 18: Acess denied; you need (at least one of) the SUPER privilege(s) for this operation

定位到18行顯示的是一個這樣的語句: set @@session.sql_log_bin=0;

按正常情況來說是不會出現(xiàn)這種情況的,這個語句只是控制當前session的查詢是否寫入binlog。群里的人都覺得這個問題很奇怪。

解決方案1:
大家看到既然是權限問題,那么就提權吧,或者使用root吧。但是前同事說是跳板機轉過去的,沒有辦法用root,而提權和授權(grant)也需要root權限。方案1被否。

解決方案2:
既然不能用root,只能想其它辦法了,但是我疑惑的是,為什么會出現(xiàn)用戶無法控制自己的session變量的情況?于是搜索了一下,跳到mysql官網,找到這樣一段描述:
sql_log_bin
This variable controls whether logging to the binary log is done. The default value is 1 (do logging). To change logging for the current session, change the session value of this variable. The session user must have the [SUPER ](https://dev.mysql.com/doc/refman/5.7/en/privileges-provided.html#priv_super) privilege to set this variable. *Setting this variable to 0 prevents GTIDs from being assigned to transactions in the binary log*. If you are using GTIDs for replication, this means that, even when binary logging is later enabled once again, the GTIDs written into the log from this point do not account for any transactions that occurred in the meantime—in effect, those transactions are lost. In MySQL 5.7, it is not possible to set @@session.sql_log_bin within a transaction or subquery. (Bug #53437)
注意最后一行,上面說MySQL5.7有個bug,無法在子查詢或者事務中執(zhí)行set @@session.sql_log_bin。但是盡信書不如無書,我自己在mysql中執(zhí)行了一下:

mysql>?select?version();
+-------------------------+
|?version()???????????????|
+-------------------------+
|?5.7.16-0ubuntu0.16.04.1?|
+-------------------------+
1?row?in?set?(0.00?sec)

mysql>?set?@@session.sql_log_bin=0;
Query?OK,?0?rows?affected?(0.03?sec)

說明這個bug已經修復了,那這個同事用的mysql版本是不是聲名狼藉的mysql5.6?讓他確認了一下,確實是5.6。到此問題的根源找到了,解決方法也就有了。直接刪除sql中所有的set @@session.sql_log_bin語句就可以了。

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

關于gorm框架的簡單運用

關鍵字: gorm mysql

來源:https://juejin.cn/post/6860252224930070536|?背景日志是?mysql?數據庫的重要組成部分,記錄著數據庫運行期間各種狀態(tài)信息。mysql日志主要包括錯誤日志、查詢日志、慢查...

關鍵字: mysql

mysql的一行記錄,最終肯定是存儲在磁盤上,也就是肉眼可見的文件上,今天我們的目標很簡單,就是看看它到底是怎么存的。當然還有一個更重要的目標,就是以這個為引子,帶大家完全通過一手資料,來揭秘這個問題的答案。所以大家閱讀...

關鍵字: mysql

跟著官方文檔 源碼 源文件三件套自己探索

關鍵字: mysql 存儲

什么Mysql的事務?事務的四大特性?事務帶來的什么問題?你詳細了解過MVCC嗎?它是怎么工作的?

關鍵字: mysql 嵌入式

想進大廠,mysql不會那可不行,來接受mysql面試挑戰(zhàn)吧,看看你能堅持到哪里?

關鍵字: mysql 嵌入式

最近,在開發(fā)一個分庫分表中間件,由于功能需求,需要分析MySQL協(xié)議,發(fā)現(xiàn)網上對于MySQL協(xié)議分析的文章大部分都過時了,原因是分析的MySQL版本太低了。怎么辦?于是乎,我便硬著頭皮開始啃MySQL源碼,經過兩個多月的...

關鍵字: mysql 嵌入式

想進大廠,Mysql不會那可不行,來接受Mysql面試挑戰(zhàn)吧,看看你能堅持到哪里?

關鍵字: mysql 嵌入式

Explain被稱為執(zhí)行計劃,在語句之前增加explain關鍵字,MySQL會在查詢上設置一個標記,模擬MySQL優(yōu)化器來執(zhí)行SQL語句,執(zhí)行查詢時,會返回執(zhí)行計劃的信息,并不執(zhí)行這條SQL。

關鍵字: mysql 嵌入式

什么是事務?事務是應用程序中一系列嚴密的操作,所有操作必須成功完成,否則在每個操作中所作的所有更改都會被撤消。也就是事務具有原子性,一個事務中的一系列的操作要么全部成功,要么一個都不做。

關鍵字: mysql 嵌入式
關閉