目錄
一、環境部署
?1. 克隆rhel7.9虛擬機
二、源碼安裝MySQL
?1. 準備工作
?2. 源碼部署mysql8.0.40
? 1)安裝編譯mysql所需軟件包
? 2)編譯安裝mysql8.0.40
? 3)生成啟動腳本
一、環境部署
?1. 克隆rhel7.9虛擬機
-
改名為 “RHEL79_mysql_master” 并修改IP
- 遠程登陸連接
- 修改主機名
[root@rhel79 ~]# hostnamectl set-hostname mysql-master
[root@rhel79 ~]# reboot
?2.?克隆9.3虛擬機
- 改名為 “RHEL93_mysql_server” 并修改IP
- 遠程登陸連接
- 修改主機名
[root@rhel93 ~]# hostnamectl set-hostname mysql-server
[root@rhel93 ~]# reboot
二、源碼安裝MySQL
?1. 準備工作,二者同步驟
- 下載安裝包8.0.40
- 鏈接:https://downloads.mysql.com/archives/community/
- 上傳下載后的安裝包
[root@mysql-master ~]# cd /opt/ # 將壓縮包上傳至該路徑下
[root@mysql-master opt]# ll # 查看壓縮包名稱
總用量 479008
-rw-r--r-- 1 root root 490502884 9月 2 14:29 mysql-boost-8.0.40.tar.gz
- 解壓縮
[root@mysql-master opt]# tar xf mysql-boost-8.0.40.tar.gz # 解壓[root@mysql-master opt]# ll
總用量 479012
drwxr-xr-x 32 7161 31415 4096 9月 18 2024 mysql-8.0.40
-rw-r--r-- 1 root root 490502884 9月 2 14:29 mysql-boost-8.0.40.tar.gz[root@mysql-master opt]# cd mysql-8.0.40/
[root@mysql-master mysql-8.0.40]# ls # 查看
boost doxygen_resources mysql-test sql
client extra MYSQL_VERSION sql-common
cmake include mysys storage
CMakeLists.txt INSTALL packaging strings
components libbinlogevents plugin support-files
config.h.cmake libbinlogstandalone README testclients
configure.cmake libchangestreams router unittest
CONTRIBUTING.md libmysql run_doxygen.cmake utilities
Docs libservices scripts vio
Doxyfile-ignored LICENSE SECURITY.md
Doxyfile.in man share
?2. 源碼部署mysql8.0.40
? 1)RHEL7.9
- 安裝編譯mysql所需軟件包
# 安裝mysql8的依賴軟件----------------------------------------------------------
[root@mysql-master ~]# yum install -y git bison openssl-devel ncurses-devel -y# 安裝cmake3-------------------------------------------------------------------
[root@mysql-master ~]# yum list cmake # 查看可安裝的版本
可安裝的軟件包
cmake.x86_64 2.8.12.2-2.el7 baseos[root@mysql-master ~]# vim /etc/yum.repos.d/epel.repo
添加如下內容:
[epel]
name=epel
baseurl=https://mirrors.aliyun.com/epel/7/x86_64/
gpgcheck=0[root@mysql-master ~]# yum install cmake3 -y # 安裝# 安裝gcc-11,找到相關的rpm包上傳至linux后解壓并安裝----------------------------
[root@mysql-master ~]# cd /opt/ # 將gcc-11的安裝包上傳到該路徑下
[root@mysql-master opt]#ll
總用量 534764
-rw-r--r-- 1 root root 57087061 9月 2 14:44 gcc-11.zip
drwxr-xr-x 32 7161 31415 4096 9月 18 2024 mysql-8.0.40
-rw-r--r-- 1 root root 490502884 9月 2 14:29 mysql-boost-8.0.40.tar.gz[root@mysql-master opt]# yum install unzip -y # 安裝unzip
[root@mysql-master opt]# unzip gcc-11.zip # 解壓縮[root@mysql-master opt]# cd gcc-11/
[root@mysql-master gcc-11]# ls[root@mysql-master gcc-11]# yum install ./*.rpm -y # 安裝
[root@mysql-master gcc-11]# source /opt/rh/devtoolset-11/enable # 生效
[root@mysql-master gcc-11]# cat /opt/rh/devtoolset-11/enable >> ~/.bash_profile # 讀入[root@mysql-master gcc-11]# gcc -v # 查看版本
gcc version 11.2.1 20220127 (Red Hat 11.2.1-9) (GCC)
- ?編譯安裝mysql8.0.40
[root@mysql-master ~]# cd /opt/
[root@mysql-master opt]# cd mysql-8.0.40/[root@mysql-master mysql-8.0.40]# mkdir bld # 新建目錄
[root@mysql-master mysql-8.0.40]# cd bld下列為一串代碼,提示語刪掉哦
[root@mysql-master bld]# cmake3 .. \
-DWITH_BOOST=../boost/boost_1_77_0/ \ # 指定MySQL源碼編譯所依賴的Boost庫路徑
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ # 指定安裝路徑
-DMYSQL_DATADIR=/data/mysql \ # 指定數據目錄
-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \ # 指定套接字文件
-DWITH_INNOBASE_STORAGE_ENGINE=1 \ # 指定啟用INNODB存儲引擎,默認用myisam
-DWITH_EXTRA_CHARSETS=all \ # 擴展字符集
-DDEFAULT_CHARSET=utf8mb4 \ # 指定默認字符集
-DDEFAULT_COLLATION=utf8mb4_unicode_ci \ # 指定默認校驗字符集
-DWITH_SSL=system # 指定MySQL使用系統已安裝的 SSL 庫# 該過程很久,請耐心等待,利用多核 CPU 資源同時運行 2 個編譯進程
[root@mysql-master bld]# make -j 2 [root@mysql-master bld]# make install # 安裝
- 生成啟動腳本
# 生成啟動腳本
[root@mysql-master ~]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld# 修改環境變量
[root@mysql-master ~]# vim ~/.bash_profile
添加如下內容:
export PATH=$PATH:/usr/local/mysql/bin[root@mysql-master ~]# source ~/.bash_profile # 生效# 建立數據庫程序運行用戶
[root@mysql-master ~]# useradd -M -s /sbin/nologin mysql# 建立數據庫數據目錄
[root@mysql-master ~]# mkdir -p /data/mysql/
[root@mysql-master ~]# chown -R mysql:mysql /data/mysql/# 創建配置文件
[root@mysql-master ~]# vim /etc/my.cnf
全部刪出,然后添加如下內容:提示語刪掉
[mysqld]
datadir=/data/mysql # 指定數據目錄
socket=/data/mysql/mysql.sock # 指定套接字
server_id=136 # 寫該主機的主機號即可
log-bin=binlog# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd[mysqld_safe]
log-error=/data/mysql/master.err
pid-file=/data/mysql/mysql.pid#
# include all files from the config directory
#
!includedir /etc/my.cnf.d----------------------------------------------------------------------
# 數據庫初始化建立mysql基本數據,注意在輸出中查看臨時密碼
[root@mysql-master ~]# mysqld --initialize --user=mysql
IjhUEt+J>2n.#啟動數據庫
[root@mysql-master ~]# /etc/init.d/mysqld start
Starting MySQL.Logging to '/data/mysql/master.err'.
臨時密碼:. SUCCESS!#修改數據庫密碼,新密碼為123
[root@mysql-master ~]# mysqladmin -uroot -p password '123'
Enter password: IjhUEt+J>2n. # 臨時密碼
mysqladmin: [Warning] Using a password on the command line interface can be insecure.
Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.#使用新密碼登錄數據庫
[root@mysql-master ~]# mysql -uroot -p123
mysql>
?注意:數據庫初始化建立mysql基本數據,注意在輸出中查看臨時密碼
? 2)RHEL9.3
- 安裝編譯mysql所需軟件包
# 安裝mysql8的依賴軟件--------------------------------------------------
[root@mysql-server ~]# yum install -y git bison openssl-devel ncurses-devel -y# 安裝cmake3-----------------------------------------------------------
[root@mysql-server ~]# yum list cmake # 查看版本,是3以上即可
cmake.x86_64 3.20.2-8.el9 App
若安裝,同7.9
# 安裝gcc,找到相關的rpm包上傳至linux后解壓并安裝-------------------------
[root@mysql-server ~]# yum list gcc # 查看版本,是11即可
gcc.x86_64 11.4.1-2.1.el9 App [root@mysql-server ~]# yum install ncurses ncurses-devel make cmake gcc-c++ openssl-devel bison -y[root@mysql-server opt]# yum install ./*.rpm -y # 安裝所需的依賴
- 編譯安裝mysql8.0.40
[root@mysql-server ~]# cd /opt/
[root@mysql-server opt]# cd mysql-8.0.40/[root@mysql-server mysql-8.0.40]# mkdir bld # 新建目錄
[root@mysql-server mysql-8.0.40]# cd bld下列為一串代碼,提示語刪掉哦
[root@mysql-server bld]# cmake .. \
-DWITH_BOOST=../boost/boost_1_77_0/ \ # 指定MySQL源碼編譯所依賴的Boost庫路徑
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ # 指定安裝路徑
-DMYSQL_DATADIR=/data/mysql \ # 指定數據目錄
-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \ # 指定套接字文件
-DWITH_INNOBASE_STORAGE_ENGINE=1 \ # 指定啟用INNODB存儲引擎,默認用myisam
-DWITH_EXTRA_CHARSETS=all \ # 擴展字符集
-DDEFAULT_CHARSET=utf8mb4 \ # 指定默認字符集
-DDEFAULT_COLLATION=utf8mb4_unicode_ci \ # 指定默認校驗字符集
-DWITH_SSL=system # 指定MySQL使用系統已安裝的 SSL 庫# 該過程很久,請耐心等待,利用多核 CPU 資源同時運行 2 個編譯進程
[root@mysql-server bld]# make -j 2[root@mysql-server bld]# make install # 安裝
- 生成啟動腳本
# 生成啟動腳本
[root@mysql-server ~]# mkdir -p /etc/init.d/
[root@mysql-server ~]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld# 修改環境變量
[root@mysql-server ~]# vim ~/.bash_profile
添加如下內容:
export PATH=$PATH:/usr/local/mysql/bin[root@mysql-server ~]# source ~/.bash_profile # 生效# 建立數據庫程序運行用戶
[root@mysql-server ~]# useradd -M -s /sbin/nologin mysql# 建立數據庫數據目錄
[root@mysql-server ~]# mkdir -p /data/mysql/
[root@mysql-server ~]# chown -R mysql:mysql /data/mysql/# 創建配置文件
[root@mysql-server ~]# vim /etc/my.cnf
全部刪除,然后添加如下內容:
[mysqld]
datadir=/data/mysql
socket=/data/mysql/mysql.sock
server_id=134
log-bin=binlog# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd[mysqld_safe]
log-error=/data/mysql/master.err
pid-file=/data/mysql/mysql.pid#
# include all files from the config directory
#
# !includedir /etc/my.cnf.d----------------------------------------------------------------------
# 數據庫初始化建立mysql基本數據,注意在輸出中查看臨時密碼
[root@mysql-server ~]# mysqld --initialize --user=mysql
臨時密碼:slbS3b7HbO/N#啟動數據庫
[root@mysql-server ~]# /etc/init.d/mysqld start
Starting MySQL.Logging to '/data/mysql/master.err'.SUCCESS!#修改數據庫密碼,新密碼為123
[root@mysql-server ~]# mysqladmin -uroot -p password '123'
Enter password: slbS3b7HbO/N # 臨時密碼
mysqladmin: [Warning] Using a password on the command line interface can be insecure.
Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.#使用新密碼登錄數據庫
[root@mysql-server ~]# mysql -uroot -p123
mysql>
- 數據庫初始化建立mysql基本數據,注意在輸出中查看臨時密碼