MySQL 8.0.19客戶端的一個(gè)小變化

本文作者:葉金榮,知數(shù)堂聯(lián)合創(chuàng)始人,MySQL DBA課程講師。Oracle MySQL ACE,MySQL布道師。有多年MySQL及系統(tǒng)架構(gòu)設(shè)計(jì)經(jīng)驗(yàn),擅長(zhǎng)MySQL企業(yè)級(jí)應(yīng)用、數(shù)據(jù)庫(kù)設(shè)計(jì)、優(yōu)化、故障處理等。

不注意到這個(gè)變化的話,還挺折騰人的。

在MySQL 8.0.19 Release Notes里,有這么一段話:

When the mysql client operates in interactive mode, the --binary-as-hex option now is enabled by default. In addition, output from the status (or \s) command includes this line when the option is enabled implicitly or explicitly。To disable hexadecimal notation, use --skip-binary-as-hex (Bug #24432545)

意思是如果用mysql客戶端進(jìn)入交互模式,那么默認(rèn)啟用參數(shù) --binary-as-hex,執(zhí)行 status\s時(shí)能看到下面這樣的標(biāo)記:

[root@yejr.me]> \s
...
Binary data as: Hexadecimal
...
Threads: 1  Questions: 88...

可以在啟動(dòng)客戶端時(shí)加上--skip-binary-as-hex關(guān)閉這個(gè)參數(shù)。

那么加上參數(shù)--binary-as-hex后,對(duì)交互式客戶端會(huì)有什么影響呢?

先看下文檔里的解釋:

When this option is given, mysql displays binary data using hexadecimal notation (0xvalue).

也就是說(shuō),當(dāng)查詢到的數(shù)據(jù)有二進(jìn)制數(shù)據(jù)的話,就會(huì)用十六進(jìn)制方式展示出來(lái)。

看看下面的例子吧:(建議在PC端或橫版觀看)

# 在 --skip-binary-as-hex 模式下
# 用CHAR()函數(shù)能把二進(jìn)制轉(zhuǎn)成ASCII字符
[root@yejr.me]> SELECT CHAR(77,121,83,81,'76');
+-------------------------+
| CHAR(77,121,83,81,'76') |
+-------------------------+
| MySQL                   |
+-------------------------+

# 在 --binary-as-hex(8.0.19后默認(rèn)) 模式下
# 直接把二進(jìn)制數(shù)據(jù)以十六進(jìn)制輸出了
...
Server characterset:    utf8mb4
...
UNIX socket:        /mysql/data01/mysql.sock
Binary data as:     Hexadecimal

[root@yejr.me]> SELECT CHAR(77,121,83,81,'76');
+--------------------------------------------------+
| CHAR(77,121,83,81,'76')                          |
+--------------------------------------------------+
| 0x4D7953514C                                     |
+--------------------------------------------------+

看起來(lái)是不是覺(jué)得怪怪的,很不適應(yīng)。

新參數(shù)--binary-as-hex是MySQL 5.6.37版本開(kāi)始引入的,由一位叫做Dani?l van Eeden的哥們建議加入的。個(gè)人不是太理解這位仁兄的腦回路,可能覺(jué)得對(duì)于二進(jìn)制數(shù)據(jù),MySQL本來(lái)就不該給智能化地轉(zhuǎn)成ASCII,而應(yīng)該以碼農(nóng)們習(xí)慣的十六進(jìn)制展示,所以能讓屏幕輸出看起來(lái)更酷一些?哈哈哈...

延伸閱讀

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容