官术网_书友最值得收藏!

  • MySQL高可用實踐
  • 王雪迎
  • 1184字
  • 2021-03-26 23:06:29

1.2 搭建實驗環境

理解了原理后,在著手配置MySQL異步復制前,先要安裝MySQL數據庫軟件。本節介紹我們的實驗環境以及在此環境中安裝MySQL的具體步驟。

1.2.1 實驗環境說明

1. 主機IP
  • 172.16.1.125(主)
  • 172.16.1.126(從)
  • 172.16.1.127(從)
2. 軟件環境
  • OS:CentOS Linux release 7.2.1511 (Core)
  • MySQL:MySQL Community Server 8.0.16
  • glibc:glibc-2.17-105.el7.x86_64
3. 硬件環境

三臺虛擬機,每臺的基本配置為:

  • 雙核雙CPU,Intel(R) Xeon(R) CPU E5-2420 0@1.90GHz
  • 8GB物理內存,8GB Swap
  • 100GB物理硬盤

1.2.2 安裝MySQL

從https://dev.mysql.com/downloads/mysql/下載二進制安裝文件mysql-8.0.16-linux-glibc2.12-x86_64.tar.xz,相關選項如圖1-5所示。

圖1-5 下載mysql-8.0.16安裝包

然后以root用戶按順序執行下面的命令,在三臺主機上安裝MySQL。

     # 進入安裝目錄
     cd /usr/local
# 從tar包中提取文件 tar xvf /home/mysql/mysql-8.0.16-linux-glibc2.12-x86_64.tar.xz
# 建立軟鏈接 ln -s mysql-8.0.16-linux-glibc2.12-x86_64 mysql
# 進入mysql目錄 cd mysql
# 建立secure_file_priv系統變量指向的目錄 mkdir mysql-files
# 修改屬主為mysql chown mysql:mysql mysql-files
# 修改目錄權限 chmod 750 mysql-files
# mysql系統初始化 bin/mysqld --initialize --user=mysql
# 建立SSL/RSA相關文件,如果不啟用SSL連接,此步可省略 bin/mysql_ssl_rsa_setup
# 啟動mysql服務器 bin/mysqld_safe --user=mysql &
# 連接mysql服務器 bin/mysql -u root -p
-- 修改root密碼 alter user user() identified by "123456";
-- 創建一個新的mysql管理員賬號 create user 'wxy'@'%' identified with mysql_native_password by '123456'; grant all on *.* to 'wxy'@'%' with grant option;

命令說明:

(1)mysql-files目錄用作secure_file_priv系統變量的值。該變量將導入和導出操作限制到特定目錄。例如由LOAD DATA、SELECT... INTO OUTFILE語句和LOAD_FILE()函數所執行的操作,僅允許具有FILE權限的用戶執行這些操作。secure_file_priv系統變量設置如下:

  • 空字符串:變量不起作用,是不安全的設置。
  • 目錄名:MySQL限制導入和導出操作僅用于該目錄中的文件。目錄必須已經存在,MySQL不會創建它。
  • NULL:MySQL禁用導入和導出操作。

(2)mysqld --initialize命令創建默認數據庫并退出。在過程中會創建一個超級用戶'root'@'localhost',并為該用戶生成一個隨機密碼。命令執行輸出如下所示:

MySQL文檔中說產生的臨時密碼會寫到.err日志文件里,但在本次安裝中,這一步并沒有生成.err文件。安全的做法還是記下臨時密碼,因為在initialize情況下,臨時密碼默認標記為已過期,用戶必須在第一次進入MySQL后首先修改root用戶的密碼。

(3)mysql_ssl_rsa_setup程序將創建SSL證書和密鑰文件,以及創建使用SSL進行安全連接所需的RSA密鑰對文件。如果現有的SSL文件已過期,mysql_ssl_rsa_setup也可用于創建新的SSL文件。mysql_ssl_rsa_setup使用openssl命令,因此主機上必須安裝有OpenSSL。mysql_ssl_rsa_setup檢查數據目錄中的以下SSL文件:

     ca.pem
     server-cert.pem
     server-key.pem

只要存在這些文件之一,則mysql_ssl_rsa_setup不會創建任何SSL文件。否則,它會調用openssl來創建它們以及一些其他文件。啟用SSL安全客戶端連接時需要這些文件:

之后mysql_ssl_rsa_setup檢查數據目錄中的以下RSA文件:

只要存在這些文件之一,則mysql_ssl_rsa_setup不會創建任何RSA文件。否則,它會調用openssl來創建它們。對于sha256_password或caching_sha2_password插件驗證的賬戶不加密連接時,通過這些文件使用RSA進行安全密碼交換。

mysql-8.0.16默認支持SSL加密連接:

(4)第一次進入MySQL后,執行任何命令都會報出以下錯誤:

提示很明顯,需要修改初始化時為用戶'root'@'localhost'生成的臨時密碼。MySQL 8默認使用的認證插件是caching_sha2_password:

當用舊版本的MySQL客戶端連接MySQL 8服務器時,可能報出以下錯誤:

可以使用兩種方法解決此問題:第一種方法是在配置文件中設置default_authentication_plugin='mysql_native_password',然后重啟MySQL服務器使之生效。default_authentication_plugin是只讀系統變量,不能動態修改;第二種方法是在創建用戶時,使用兼容新舊版本的認證方式,例如:

     create user 'wxy'@'%' identified with mysql_native_password by '123456';

通過以下查詢可以得到用戶所對應的認證插件:

主站蜘蛛池模板: 南涧| 红桥区| 富民县| 通辽市| 夏河县| 盐源县| 盐城市| 富民县| 柯坪县| 凉城县| 汤原县| 桂阳县| 若羌县| 银川市| 和林格尔县| 罗城| 武宣县| 安塞县| 河北区| 清丰县| 巴南区| 凤翔县| 越西县| 云龙县| 康马县| 丽江市| 千阳县| 汝州市| 西林县| 峨眉山市| 普格县| 宜都市| 高青县| 盘锦市| 应城市| 巴马| 南澳县| 新闻| 田林县| 新巴尔虎左旗| 博湖县|