搜尋
首頁資料庫mysql教程mysql中5.6與5.7有什麼差別

mysql中5.6與5.7的區別:1、5.7版本提供了json格式數據,而5.6版本沒有提供json版本數據;2、5.7版本支援多主一從,而5.6版本不支援多主一從;3、5.7版本初始化資料時在bin目錄下,而5.6版本在script目錄。

mysql中5.6與5.7有什麼差別

本教學操作環境:windows10系統、mysql8.0.22版本、Dell G3電腦。

mysql中5.6與5.7有什麼差別

一、編譯安裝差異

Mysql5.7版本更新後有很多變化,像是json等,連安裝都有變化,他安裝必須要BOOST函式庫。 mysql的官網源碼有帶boost庫的源碼和沒有boost庫的源碼兩種,不含boost庫源碼的需要單獨安裝boost。

mysql5.7 支援多主一從 ,做高可用方式不同

#下載軟體

wget http://downloads.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz
wget http://cdn.mysql.com//Downloads/MySQL-5.7/mysql-boost-5.7.20.tar.gz
wget http://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.20.tar.gz

有boost的mysql原始碼安裝

#1.安裝依賴套件

yum -y install make gcc-c++ cmake bison-devel  ncurses-devel   bison perl perl-devel  perl perl-devel

2.編譯安裝

cd /usr/local/mysql-5.7.20/
cmake -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_BOOST=boost
make
make install

不含boost的mysql原始碼安裝

1.安裝依賴套件

yum -y install gcc gcc-c++ ncurses ncurses-devel cmake

2.編譯安裝

cmake . -DCMAKE_INSTALL_PREFIX=/application/mysql-5.7.20 \
-DMYSQL_DATADIR=/application/mysql-5.7.20/data \
-DMYSQL_UNIX_ADDR=/application/mysql-5.7.20/tmp/mysql.sock \
#开启BOOST库
-DDOWNLOAD_BOOST=1 \
#指定boost库位置
-DWITH_BOOST=/usr/local/boost_1_59_0 \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
-DWITH_ZLIB=bundled \
-DWITH_SSL=bundled \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_EMBEDDED_SERVER=1 \
-DENABLE_DOWNLOADS=1 \
-DWITH_DEBUG=0 
make
make install

二、初識化時的差異

#【5.6版本初识化】
cd /usr/local/mysql/scripts/
./mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
#【5.7版本初识化】这种初始化方式,默认密码在一个文件中
/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

–initialize 產生一個隨機密碼寫到一個檔案

–initialize-insecure 不產生隨機密碼

#三、功能與特性的差異

安全性

使用者表 mysql.user 的 plugin欄位不允許為空, 預設值為mysql_native_password,而非 mysql_old_password,不再支援舊密碼格式;

增加密碼過期機制,過期後需要修改密碼,否則可能會停用,或進入沙箱模式;

增加密碼過期機制,過期後需要修改密碼,否則可能會被停用,或進入沙箱模式;

提供了更為簡單SSL安全存取配置,並且預設連線就採用SSL的加密方式。

靈活性

MySQL資料庫從5.7.8版本開始,也提供了對JSON的支援。

可以混合儲存結構化資料和非結構化數據,同時擁有關聯式資料庫和非關係型資料庫的優點

能夠提供完整的事務支援

generated column是MySQL 5.7引入的新特性,所謂generated column,就是資料庫中這一列由其他列計算而得

易用性

##在MySQL 5.7 之前,如果使用者輸入了錯誤的SQL語句,按下 ctrl c ,雖然能夠」結束」SQL語句的運行,但是,也會退出當前會話,MySQL 5.7對這違反直覺的地方進行了改進,不再退出會話。

MySQL 5.7可以explain一個正在執行的SQL,這對於DBA分析運行時間較長的語句將會非常有用。

sys schema是MySQL 5.7.7中引入的系統函式庫,包含了一系列視圖、函數和預存過程, 該專案專注於MySQL的易用性。

可用性

線上設定 複製的篩選規則 不再需要重新啟動MySQL,只需停止SQLthread,並修改完成以後,啟動SQLthread。

線上修改buffer pool的大小。

Online DDL MySQL 5.7支援重新命名索引和修改varchar的大小,這兩個動作在先前的版本中,都需要重建索引或表格。

在線上開啟GTID ,在先前的版本中,由於不支援線上開啟GTID,使用者若希望將低版的資料庫升級至支援GTID的資料庫版本,則需要先關閉資料庫,再以GTID模式啟動,所以導致升級起來特別麻煩。

效能

臨時表的效能改進。

臨時表只在目前會話中可見

臨時表的生命週期是目前連線(MySQL宕機或重啟,則目前連線結束)

只讀交易效能改進。

MySQL 5.7透過 避免為唯讀事務分配事務ID ,不為唯讀事務分配回滾段,減少鎖定競爭等多種方式,優化了只讀事務的開銷,提高了資料庫的整體效能。

-加速連線處理

在MySQL 5.7之前,變數的初始化操作(THD、VIO)都是在連線接收執行緒裡面完成的,現在將這些工作下發給工作線程,以減少連線接收執行緒的工作量,提高連線的處理速度。這個優化對那些頻繁建立短連接的應用,將會非常有用。

複製效能的改進 (支援多執行緒複製(Multi-Threaded Slaves, 簡稱MTS)

MySQL的預設設定是函式庫層級的平行複製,為了充分發揮MySQL 5.7的並行複製的功能,我們需要將slave-parallel-type配置成LOGICAL_CLOCK。

支援多來源複製(Multi-source replication)

##嚴格性改變

預設啟用 STRICT_TRANS_TABLES 模式。

對 ONLY_FULL_GROUP_BY 模式實現了更複雜的特性支持,並且也被預設啟用。

其他預設啟用的sql mode還有 NO_ENGINE_SUBSTITUTION。

##預設參數的改變

預設binlog格式調整為ROW格式

預設binlog錯誤後的操作調整為ABORT_SERVER

在先前的選項下(binlog_error_action=IGNORE_ERROR),如果一個錯誤發生,導致無法寫入binlog,mysql-server會在錯誤日誌中記錄錯誤並強制關閉binlog功能。這會使mysql-server在不記錄binlog的模式下繼續運行,導致從庫無法繼續取得到主庫的binlog。

預設開啟mysql崩潰時的binlog安全。

預設調低slave_net_timeout。

安裝不同

mysql_install_db已經不再建議使用了,建議改成mysqld --initialize 完成實例初始化。如果 datadir 指向的目標目錄下已經有資料文件,則會有[ERROR] Aborting;

在初始化時如果加上 --initial-insecure,則會建立空密碼的 root@localhost 帳號,否則會建立有密碼的 root@localhost 帳號,密碼直接寫在 log-error 日誌檔案中;新使用者登入後需要立即修改密碼,否則無法繼續後續的工作。

推薦學習:mysql影片教學

#

以上是mysql中5.6與5.7有什麼差別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
MySQL的許可與其他數據庫系統相比如何?MySQL的許可與其他數據庫系統相比如何?Apr 25, 2025 am 12:26 AM

MySQL使用的是GPL許可證。 1)GPL許可證允許自由使用、修改和分發MySQL,但修改後的分發需遵循GPL。 2)商業許可證可避免公開修改,適合需要保密的商業應用。

您什麼時候選擇InnoDB而不是Myisam,反之亦然?您什麼時候選擇InnoDB而不是Myisam,反之亦然?Apr 25, 2025 am 12:22 AM

選擇InnoDB而不是MyISAM的情況包括:1)需要事務支持,2)高並發環境,3)需要高數據一致性;反之,選擇MyISAM的情況包括:1)主要是讀操作,2)不需要事務支持。 InnoDB適合需要高數據一致性和事務處理的應用,如電商平台,而MyISAM適合讀密集型且無需事務的應用,如博客系統。

在MySQL中解釋外鍵的目的。在MySQL中解釋外鍵的目的。Apr 25, 2025 am 12:17 AM

在MySQL中,外鍵的作用是建立表與表之間的關係,確保數據的一致性和完整性。外鍵通過引用完整性檢查和級聯操作維護數據的有效性,使用時需注意性能優化和避免常見錯誤。

MySQL中有哪些不同類型的索引?MySQL中有哪些不同類型的索引?Apr 25, 2025 am 12:12 AM

MySQL中有四種主要的索引類型:B-Tree索引、哈希索引、全文索引和空間索引。 1.B-Tree索引適用於範圍查詢、排序和分組,適合在employees表的name列上創建。 2.哈希索引適用於等值查詢,適合在MEMORY存儲引擎的hash_table表的id列上創建。 3.全文索引用於文本搜索,適合在articles表的content列上創建。 4.空間索引用於地理空間查詢,適合在locations表的geom列上創建。

您如何在MySQL中創建索引?您如何在MySQL中創建索引?Apr 25, 2025 am 12:06 AM

toCreateAnIndexinMysql,usethecReateIndexStatement.1)forasingLecolumn,使用“ createIndexIdx_lastNameEnemployees(lastName); 2)foracompositeIndex,使用“ createIndexIndexIndexIndexIndexDx_nameOmplayees(lastName,firstName,firstName);” 3)forauniqe instex,creationexexexexex,

MySQL與Sqlite有何不同?MySQL與Sqlite有何不同?Apr 24, 2025 am 12:12 AM

MySQL和SQLite的主要區別在於設計理念和使用場景:1.MySQL適用於大型應用和企業級解決方案,支持高性能和高並發;2.SQLite適合移動應用和桌面軟件,輕量級且易於嵌入。

MySQL中的索引是什麼?它們如何提高性能?MySQL中的索引是什麼?它們如何提高性能?Apr 24, 2025 am 12:09 AM

MySQL中的索引是數據庫表中一列或多列的有序結構,用於加速數據檢索。 1)索引通過減少掃描數據量提升查詢速度。 2)B-Tree索引利用平衡樹結構,適合範圍查詢和排序。 3)創建索引使用CREATEINDEX語句,如CREATEINDEXidx_customer_idONorders(customer_id)。 4)複合索引可優化多列查詢,如CREATEINDEXidx_customer_orderONorders(customer_id,order_date)。 5)使用EXPLAIN分析查詢計劃,避

說明如何使用MySQL中的交易來確保數據一致性。說明如何使用MySQL中的交易來確保數據一致性。Apr 24, 2025 am 12:09 AM

在MySQL中使用事務可以確保數據一致性。 1)通過STARTTRANSACTION開始事務,執行SQL操作後用COMMIT提交或ROLLBACK回滾。 2)使用SAVEPOINT可以設置保存點,允許部分回滾。 3)性能優化建議包括縮短事務時間、避免大規模查詢和合理使用隔離級別。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中