教程:MySQL 8安裝與配置及注意事項

劉美利發表於2018-07-19

MySQL 是目前最流行的開源資料庫。如果你想選擇一個適用於你應用程式,並且學習資料豐富,易於使用的資料庫,那麼 MySQL 必定會是選擇之一。

 

MySQL 最新版本 MySQL 8 已經發布,官方表示 MySQL 8 要比 MySQL 5.7 快兩倍,並帶來了大量的改進和更好的效能,同時也解決了很多之前長期存在的問題。

 

本文將著重介紹 MySQL 8 伺服器的安裝,以及安裝、升級過程中的注意事項。

 

【注意】本文基於 MySQL 8 的社群開源版本,而非企業版。企業版具有更多高階功能,僅提供給具有商業許可證的企業。

 

下載 MySQL 8

 

MySQL 8 下載站點

 

【注意】您需要從“ Select Operating System ”下拉選單中選擇作業系統。否則,該網站將預設瀏覽器檢測到的作業系統提供下載。

 

安裝 MySQL 8

 

設定 MySQL 的過程因目標作業系統的不同而異。

 

l   Microsoft Windows MacOS 使用者可以下載並執行基於 GUI 的安裝程式。這將引導使用者完成設定過程,併為常見配置選項提供預設值。

l   Linux 使用者可以下載 Oracle 提供的通用二進位制檔案,也可以通過 Linux 發行版的軟體包管理系統安裝 MySQL

 

Linux 上安裝 MySQL 時的注意事項:

 

l   MySQL 至少最新版,可能無法在給定的 Linux 發行版的預設軟體資源庫中使用。例如,在 Fedora Linux 上,您可能需要手動向包管理系統新增 MySQL 儲存庫,然後從該儲存庫安裝。

l   除非您完全解除安裝以前的版本,否則您無法從使用通用 Linux 二進位制檔案切換到發行版軟體包管理器提供的版本。(反過來也是如此。)最好的辦法是儘可能使用相同的分配路徑,來保持一致性。

 

MySQL 也可用作 Docker 映像。通過向容器傳遞命令列標記,可以更改 MySQL 中許多最常見的選項。如果需要更細粒度的控制,可以建立自定義配置檔案並將其傳遞給容器。 ( 如果您是 Docker 專家,可以通過新增層來進一步定製容器映像。 )

 

Oracle 為許多平臺提供的另一個選項是沒有安裝程式的通用二進位制歸檔。這需要手工設定,主要通過建立和編輯配置檔案。優點是,只需刪除二進位制檔案及其支援檔案,以後就可以輕鬆刪除整個檔案。

 

從以前的版本升級到 MySQL 8

 

如果您想從以前版本的 MySQL 升級到 MySQL 8 ,可以選擇處理升級的兩種常規策略。

 

【注意】僅支援從 MySQL 7 GA 版本(最好是最新的 GA 版本)升級。 GA 版本的 MySQL 7 及早期版本的 MySQL (例如 MySQL 6 )的升級不能保證有效。

 

l   本地升級。 這涉及用 MySQL 8 二進位制檔案替換現有的 MySQL 7 二進位制檔案

l   匯出和重新匯入。 MySQL 的文件將此過程稱為“ logical upgrade. ”。這可以使用 mysqldump mysqlpump 實用程式執行。

 

在任何一種情況下,都應確保要升級的資料庫沒有遺留的相容性問題。 同時還要關注 正在執行平臺的升級方法 ,因為 Windows MacOS 系統的升級過程是跟 Linux 程式不一樣的。

 

配置 MySQL 8

 

MySQL 有很多的配置選項,但好在安裝或升級過程的初始階段,很多是不需要的。

 

編輯 MySQL 8 配置檔案

 

MySQL 8 Microsoft Windows MacOS 圖形安裝程式會自動選擇合理的預設值,讓使用者瞭解最重要的選項。這些選擇記錄在 MySQL 使用的配置檔案中。此外, linux 使用者還會有一個基本的配置檔案 , 其中有一些自動生成的預設值 , 儘管在 Linux 上預設情況下沒有新增多少設定。

 

要找出 MySQL 配置檔案的位置,先從 shell 執行 mysql -help ,然後查詢“ Default options are read from the following files in the given order. ”的行。配置檔案及其位置將在那裡列出。

 

如果 MySQL 配置檔案中所有選項的預設值都沒有列在配置檔案裡,您可以在檔案的文件中尋找。

 

一個好的方法是,使用 MySQL 安裝中包含的 MySQL Workbench 應用程式來編輯選項檔案。 MySQL Workbench 提供了一個選項卡式 GUI ,列出了檔案中的每個可能設定以及每個設定的功能描述。一些意外情況也會使 MySQL Workbench 配置檔案變得更加困難,比如,不小心插入一個不屬於它的 linebreak

最初, MySQL Workbench 沒有用特定的 MySQL 連線註冊的選項檔案。要新增選項檔案,請執行以下步驟 :

 

1.          MySQL Workbench 主頁中,右鍵單擊為其新增選項檔案的例項連線,然後選擇“ Edit Connection. ”。

2.          在系統配置檔案選項卡下,在“ Configuration File ”行中填寫選項檔案的完整路徑。

3.          單擊“ Test Connection ”進行測試,確保一切正常。

4.          當您下次開啟該連線時,可以通過“ Instance | Options File. ”的方式從左側樹狀選單編輯選項檔案設定。

 

設定 MySQL 8 root 密碼

 

如果說 MySQL 設定中有需要的注意事項,那麼從一開始就為伺服器設定 root 密碼,以減少不必要的安全隱患。

 

MySQL 8 Windows MacOS 安裝程式在安裝過程中會提示使用者輸入 root 密碼,一些用於 MySQL 8 Linux 安裝程式,比如 Ubuntu 的基於 apt-get 安裝,允許使用者提供 root MySQL 密碼。

 

在其他情況下,比如使用 Fedora yum dnf 安裝程式時, root 密碼會隨機設定並在 MySQL 的錯誤日誌中回顯。這時可以使用命令 sudo grep ‘temporary password’ /var/log/mysqld.log.  顯示它。 但該密碼應儘快更改並且一定要儘可能複雜。

 

使用 MySQL 8 的新身份驗證方法

 

如果你想在 Linux 推薦的環境中使用 MySQL Workbench ,那麼你需要注意 MySQL 8 中的另一個配置選項。

 

安裝 MySQL 8 時,您將看到新的 SHA-256 密碼身份驗證方法的選項。 此方法比傳統的“ native password ”方法安全得多,因此建議將其作為新安裝的預設方法。

 

但是,這種新方法的主要缺點是與最新版本的 MySQL 客戶端軟體(尤其是 MySQL Workbench )不相容。

 

【注意】客戶端軟體的最新版本無法由預設安裝路徑安裝所有 Linux 版本。也就是說,如果您從該作業系統的 MySQL 儲存庫安裝一個全新的 MySQL 8 ,比如 Ubuntu 18.04 ,那麼 MySQL Workbench 的附帶副本將不支援 SHA-256 身份驗證!

 

解決方法:

 

l   下載 MySQL Workbench 的開發版本 這完全取決於是否為你的作業系統構建了開發版本,但大多數 Linux 似乎都有最新開發的二進位制版本,這通常是最簡單的路徑。

 

l   如果您只允許從 localhost 連線到 MySQL ,則可以避免使用 SHA-256 身份驗證,並且不會在安全性方面損失太多。這並不一定是你的永久解決方案,您可以使用舊連線協議,直到獲得系統最新版本的客戶端軟體,然後更改為 新的身份驗證方法 。但這意味著您必須更改 MySQL 配置檔案中的身份驗證方法,並更改 MySQL 使用者帳戶以匹配。

 

l   從頭開始構建客戶端軟體。這是最費力的解決方法,只建議那些實在沒有其他選擇的人選用。

 

主要 MySQL 8 配置選項

 

MySQL 8 絕大多數的選項都不需要預先設定。一些如上面提到的客戶端安全協議,應該儘早決定,是使用 GUI 安裝嚮導還是手工編輯配置檔案。以下是其他幾個:。

 

其他 MySQL 使用者

 

如果可能的話,儘量不要使用 root 賬戶來連線使用 MySQL 的應用程式。建立一個只有在該應用程式需要的資料庫上具有完全許可權的帳戶。 MySQL Workbench 應用程式只需要幾次單擊就可以實現這一點。

 

MySQL 連線協議

 

MySQL 8 可以通過多種方式 接受到伺服器的傳入連線

 

l   TCP/ IP 。這是連線到 MySQL 例項最廣泛的方式,它允許本地和遠端連線。 總的來說,它也是最慢的,因為流量必須通過整個 TCP / IP 堆疊,但這通常只存在在極端效能的情況下。對於需要遠端客戶端連線的情況來說,無論如何 TCP / IP 都是一個簡單的方式。 但是同時也需要密切關注連線的安全性。

l   Unix sockets/named pipes 。這些是 Unix / Linux Windows 中兩個大致相同的功能。 當客戶端或應用程式和伺服器位於同一系統上時, Sockets pipes  最佳,因為資料可以更快地在客戶端和伺服器之間傳輸,也可以通過網路釋出這樣的連線,但這樣做很麻煩,這種情況下,你最好只使用 TCP / IP

l   共享記憶體。 這是伺服器和客戶端之間最快的連線選項,但也是最不靈活的。 它僅在伺服器和客戶端位於同一物理系統上時才有效,並且伺服器可能難以檢測客戶端是否已超時或被終止,從而導致未終止的連線累積並浪費資源。

 

【注意】在 Unix 系統上,為了提高效能, localhost 的任何連線都預設使用 Unix sockets

 

MySQL 日誌選項

 

除了一般的錯誤日誌之外, MySQL 還可以維護其他三種日誌,這些日誌在預設情況下全部禁用,但在配置過程中可以根據需要啟用除錯。

 

l   General 。這提供了 MySQL 從啟動到關閉的詳細執行摘要。

l   Slow query 。可以記錄任何執行時間超過 x 秒(數量可配置)的查詢以進行除錯。

l   BINLOG 。“二進位制日誌”的縮寫,可以將此日誌配置為包含對資料庫檔案的所有修改的二進位制轉儲。顯而易見,這會對效能產生重大影響,所以除非嘗試除錯真正棘手的問題,否則不應啟用它。

 

預設情況下,日誌不會自動清除,因此必須通過 mysql-log-rotate 指令碼 定期刪除。 Binlogs 是一個例外,預設情況下它會在 30 天后過期。

 

MySQL 遷移和安裝提示

 

如果您要將現有的 MySQL 資料庫遷移到 MySQL 8.0 ,規則很簡單:

 

l   對資料進行完全備份。

l   僅使用 MySQL 5.7 中的資料庫進行本地升級。否則,您有兩種選擇:

a)          匯出並重新匯入資料。

b)          將現有 MySQL 例項升級到 5.7 ,然後進行本地升級。

 

MySQL 8.0 中建立新資料庫時的注意事項:

 

l   InnoDB 用於所有新表。 InnoDB 現在是 MySQL 中新建立表的預設選擇。為什麼呢?因為有一段時間,傳統的 MyISAM 儲存引擎比新的 InnoDB 有一些優勢,尤其是全文索引。但現在 MySQL 8.0 InnoDB 支援全文索引,除了行級鎖定,事務交易,崩潰恢復,外來鍵約束以及許多其他功能資料庫之外,還有許多其他功能不應該放棄。

l   使用 utf8mb4 字符集,但要研究使用的排序規則。 MySQL 8 現在支援 utf8mb4 字符集 UTF-8 的一種實現),每個字元最多可儲存 4 個位元組,以便儘可能廣泛地與 Unicode 相容。預設情況下 , 為新資料庫選擇了 utf8mb4, 而選擇其他內容則沒有什麼意義。 與此同時,您使用的排序規則要遵循應用程式的需求。預設情況下, MySQL 8 使用通用的 utf8mb4_0900_ai_ci 排序規則,但排序規則不區分重音和大小寫 ; 為此,可以改用 utf8mb4_0900_as_cs 如果您的大多數工作都是使用特定語言完成的,您或許會想要 更具特定語言的排序規則

 

簡而言之,在大多數情況下,預設值通常都是最佳選擇,但您仍需要了解實際用例去處理特定語言的問題。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31542119/viewspace-2157800/,如需轉載,請註明出處,否則將追究法律責任。

相關文章