[數據庫/Linux]CentOS7安裝MySQL Percona版(RPM方式)


OS: CentOS7 (x86_64)
MySQL: MySQL Percona 5.7.31-34

0 前置條件

  • 已配置完成YUM源
  • 卸載先前可能安裝的MySQL
rpm -qa | grep -i mariadb
rpm -qa | grep -i mysql
rpm -qa | grep -i percona

rpm -e  --nodeps xxxx.rpm

1 獲得安裝源

[方式1.1] 下載/上傳/解壓安裝包

MySQL Percona-5.7 - Official

  • Percona-Server-shared-57-5.7.31-34.1.el6.x86_64.rpm
  • Percona-Server-server-57-5.7.31-34.1.el6.x86_64.rpm
  • Percona-Server-client-57-5.7.31-34.1.el6.x86_64.rpm
  • ...

(建議下載全包(bundle.tar),否則 容易出現各類依賴問題,較為費時費力)

假定:上傳上述安裝包(...-bundle.tar)至服務器 /opt/software/MySQL-Percona-57-Official-All/

[root@centos7-202010061038 ~]# cd  /opt/software/MySQL-Percona-57-Official-All

[root@centos7-202010061038 ]# tar -xvf /opt/software/MySQL-Percona-57-Official-All/Percona-Server-5.7.31-34-r2e68637-el6-x86_64-bundle.tar
Percona-Server-57-debuginfo-5.7.31-34.1.el6.x86_64.rpm
Percona-Server-client-57-5.7.31-34.1.el6.x86_64.rpm
Percona-Server-devel-57-5.7.31-34.1.el6.x86_64.rpm
Percona-Server-rocksdb-57-5.7.31-34.1.el6.x86_64.rpm
Percona-Server-server-57-5.7.31-34.1.el6.x86_64.rpm
Percona-Server-shared-57-5.7.31-34.1.el6.x86_64.rpm
Percona-Server-test-57-5.7.31-34.1.el6.x86_64.rpm
Percona-Server-tokudb-57-5.7.31-34.1.el6.x86_64.rpm

[方式1.2] 配置 MySQL Percona的YUM源

rpm -Uvh https://www.percona.com/redir/downloads/percona-release/redhat/0.1-6/percona-release-0.1-6.noarch.rpm

更新過yum源后,會在 /etc/yum.repos.d/ 下生成 percona-release.repo,如下圖:

此時:

先查看有哪些可用MySQL Percona的安裝包

yum list | grep percona

yum list | grep Percona-Server-server

2 安裝依賴組件

(采用[方式1.1/1.2]的均可略過,尤其是[方式1.2],方式1.1出依賴問題時,可再依次解決)

[下列命令 推薦 執行]
yum -y install libaio libaio-devel

[下列命令 可選 執行]
yum -y remove mariadb mariadb-libs python-cryptography python-pyasn1
yum -y install perl autoconf expect net-tools
yum -y install numactl numactl-devel

【解釋1】依賴組件可避免的安裝異常

[libaio]
安裝此組件,可避免Percona-Server-server-*.rpm的依賴異常:
...
[ rpm -ivh Percona-Server-server-57*.rpm ] error: Failed dependencies:
	libaio.so.1()(64bit) is needed by Percona-Server-server-57-5.7.24-27.1.el7.x86_64
	libaio.so.1(LIBAIO_0.1)(64bit) is needed by Percona-Server-server-57-5.7.24-27.1.el7.x86_64
	libaio.so.1(LIBAIO_0.4)(64bit) is needed by Percona-Server-server-57-5.7.24-27.1.el7.x86_64
...

[libsasl2.so.2]
安裝此組件,可避免Percona-Server-server-*.rpm的依賴異常:
...
Loading mirror speeds from cached hostfile
 * base: mirrors.sonic.net
 * extras: mirror.lax.genesisadaptive.com
 * updates: mirrors.ocf.berkeley.edu
---> Package Percona-Server-shared-57.x86_64 0:5.7.31-34.1.el6 will be installed
--> Finished Dependency Resolution
Error: Package: Percona-Server-server-57-5.7.31-34.1.el6.x86_64 (/Percona-Server-server-57-5.7.31-34.1.el6.x86_64)
           Requires: libsasl2.so.2()(64bit)
 You could try using --skip-broken to work around the problem
** Found 2 pre-existing rpmdb problem(s), 'yum check' output follows:
2:postfix-2.10.1-9.el7.x86_64 has missing requires of libmysqlclient.so.18()(64bit)
2:postfix-2.10.1-9.el7.x86_64 has missing requires of libmysqlclient.so.18(libmysqlclient_18)(64bit)
...

[libmysqlclient.so.18]
安裝此組件,可避免Percona-Server-server-*.rpm的依賴異常:
Warning: RPMDB altered outside of yum.
** Found 2 pre-existing rpmdb problem(s), 'yum check' output follows:
2:postfix-2.10.1-9.el7.x86_64 has missing requires of libmysqlclient.so.18()(64bit)
2:postfix-2.10.1-9.el7.x86_64 has missing requires of libmysqlclient.so.18(libmysqlclient_18)(64bit)
  Installing : Percona-Server-shared-57-5.7.31-34.1.el6.x86_64                                                                                                                  1/2 
  Installing : Percona-Server-devel-57-5.7.31-34.1.el6.x86_64                                                                                                                   2/2 
  Verifying  : Percona-Server-shared-57-5.7.31-34.1.el6.x86_64                                                                                                                  1/2 
  Verifying  : Percona-Server-devel-57-5.7.31-34.1.el6.x86_64                                                                                                                   2/2 
Installed:
  Percona-Server-devel-57.x86_64 0:5.7.31-34.1.el6                                         Percona-Server-shared-57.x86_64 0:5.7.31-34.1.el6                                        
Skipped (dependency problems):
  Percona-Server-client-57.x86_64 0:5.7.31-34.1.el6                                        Percona-Server-server-57.x86_64 0:5.7.31-34.1.el6                                       
Complete!

2-1 依賴組件問題

可參見此文: [Linux]CentOS查看RPM包依賴問題 - 博客園/千千寰宇

【解釋1】出現組件依賴問題時的解決辦法/思路?

  • 思路1: 【rpm方式】安裝時去除依賴檢查(--nodeps),並強制安裝(--force) | 【yum方式】跳過報錯--skip-broken--nogpgcheck (取消校驗軟件是否為官方發布)
rpm -ivh *.rpm --nodeps

yum localinstall --skip-broken ./*.rpm

yum (local)install --nogpgcheck Percona-Server-server-57-5.7.31-34.1.el6.x86_64.rpm
  • 思路2: 根據報出的依賴異常,安裝對應(版本)的依賴組件
    (涉及問題:如何查詢、下載、安裝依賴組件?)

  • 思路3: 到其它服務器中拷貝同版本的依賴組件的安裝包或文件
    (拷貝文件的方法未實測,不保證可行性)

  • 思路4:修改軟鏈接/組件文件版本。
    若服務器中已安裝該依賴組件,但依賴組件版本(高於或)低於目標的組件版本,可使用此方式。

【解釋2】如何查詢/下載/安裝依賴組件?

可參見此文: [Linux]CentOS查看RPM包依賴問題 - 博客園/千千寰宇

[root@centos7-202010061038 ~]# whereis libsasl2.so.2
libsasl2.so: /usr/lib64/libsasl2.so.3

[root@centos7-202010061038 ~]# ll /usr/lib64/libsasl2.so.3
lrwxrwxrwx. 1 root root 17 Aug 24 17:37 /usr/lib64/libsasl2.so.3 -> libsasl2.so.3.0.0

[root@centos7-202010061038 ~]# yum list installed | grep -i sasl
cyrus-sasl-lib.x86_64               2.1.26-23.el7                     @CentOS   

[root@centos7-202010061038 ~]# yum deplist cyrus-sasl-lib.x86_64
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.sonic.net
 * extras: mirror.lax.genesisadaptive.com
 * updates: mirrors.ocf.berkeley.edu
package: cyrus-sasl-lib.x86_64 2.1.26-23.el7
  dependency: /sbin/ldconfig
   provider: glibc.x86_64 2.17-307.el7.1
   provider: glibc.i686 2.17-307.el7.1
  dependency: libc.so.6(GLIBC_2.15)(64bit)
   provider: glibc.x86_64 2.17-307.el7.1
  dependency: libcom_err.so.2()(64bit)
   provider: libcom_err.x86_64 1.42.9-17.el7
  dependency: libcrypt.so.1()(64bit)
   provider: glibc.x86_64 2.17-307.el7.1
  dependency: libdb-5.3.so()(64bit)
   provider: libdb.x86_64 5.3.21-25.el7
  dependency: libdl.so.2()(64bit)
   provider: glibc.x86_64 2.17-307.el7.1
  dependency: libdl.so.2(GLIBC_2.2.5)(64bit)
   provider: glibc.x86_64 2.17-307.el7.1
  dependency: libgssapi_krb5.so.2()(64bit)
   provider: krb5-libs.x86_64 1.15.1-46.el7
  dependency: libk5crypto.so.3()(64bit)
   provider: krb5-libs.x86_64 1.15.1-46.el7
  dependency: libkrb5.so.3()(64bit)
   provider: krb5-libs.x86_64 1.15.1-46.el7
  dependency: libkrb5support.so.0()(64bit)
   provider: krb5-libs.x86_64 1.15.1-46.el7
  dependency: libresolv.so.2()(64bit)
   provider: glibc.x86_64 2.17-307.el7.1
  dependency: rtld(GNU_HASH)
   provider: glibc.x86_64 2.17-307.el7.1
   provider: glibc.i686 2.17-307.el7.1

[root@centos7-202010061038 ~]# rpm -qR cyrus-sasl-lib
/sbin/ldconfig
/sbin/ldconfig
libanonymous.so.3()(64bit)
libc.so.6()(64bit)
libc.so.6(GLIBC_2.14)(64bit)
libc.so.6(GLIBC_2.15)(64bit)
libc.so.6(GLIBC_2.2.5)(64bit)
libc.so.6(GLIBC_2.3)(64bit)
libc.so.6(GLIBC_2.3.4)(64bit)
libc.so.6(GLIBC_2.4)(64bit)
libcom_err.so.2()(64bit)
libcrypt.so.1()(64bit)
libdb-5.3.so()(64bit)
libdl.so.2()(64bit)
libdl.so.2(GLIBC_2.2.5)(64bit)
libgssapi_krb5.so.2()(64bit)
libk5crypto.so.3()(64bit)
libkrb5.so.3()(64bit)
libkrb5support.so.0()(64bit)
libresolv.so.2()(64bit)
libsasl2.so.3()(64bit)
libsasldb.so.3()(64bit)
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rtld(GNU_HASH)
rpmlib(PayloadIsXz) <= 5.2-1

可在下列Linux安裝包資源網站中【查詢/下載】是否存在對應版本的依賴組件包

下載/安裝 libsasl 的安裝包(libsasl2-2.1.27-2.i686.rpmcyrus-sasl-lib-2.1.23-15.el6_6.2.i686.rpm)

rpm -ivh xxx.rpm

3 安裝數據庫

[方式1.1]的安裝命令

方式3.1.1 rpm -i

cd /opt/software/MySQL-Percona-57-Official-All
rpm -ivh *.rpm     或     rpm -ivh *.rpm --nodeps

rpm參數: i表示安裝,U表示升級,v表示顯示安裝過程,h表示顯示進度, --nodeps表示忽略依賴

方式3.1.2 yum localinstall

cd /opt/software/MySQL-Percona-57-Official-All
yum localinstall ./*.rpm

[方式1.2]的安裝命令

yum install -y Percona-Server-shared-57.x86_64
yum install -y Percona-Server-devel-57.x86_64
yum install -y Percona-Server-client-57.x86_64

yum install -y Percona-Server-server-57.x86_64 或 yum install -y Percona-Server-server-57.x86_64 --nogpgcheck

4 初始化數據庫

  • step0 啟動數據庫,並配置開機啟動
service mysql start 或 systemctl start mysql
service mysqld start 或 systemctl start mysqld

chkconfig --add mysql 或 systemctl enabled mysql
chkconfig --add mysqld 或 systemctl enabled mysqld

【注】mysql VS mysqld
mysql(客戶端 / SQL命令行工具 / 交互式輸入SQL語句或從文件以批處理模式執行它們的命令行工具)
mysqld(服務端 / mysql daemon / MySQL守護服務進程,常駐於后台)

【注】查看服務器中的開機自啟服務

[centos7] systemctl list-unit-files | grep enabled

[centos6] chkconfig --list
  • step1 獲取數據庫root用戶初始密碼
# cat /var/log/mysqld.log |grep "temporary password"
2020-10-12T09:29:04.877106Z 1 [Note] A temporary password is generated for root@localhost: e5vwDiI-;nOM
  • step2 修改root用戶密碼
# pwd_str=123456
# root_passwd="'"$pwd_str"'"
# tmp_pwd_str=`cat /var/log/mysqld.log |grep "temporary password"`
# tmp_pwd=${tmp_pwd_str##*: }

# mysql -uroot -p${tmp_pwd} --connect-expired-password <<EOF
create user 'root'@'%' IDENTIFIED BY $root_passwd;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
exit
EOF
  • step3 設置innodb_flush_log_at_trx_commit
    [本步驟可忽略]
mysql -uroot -p$pwd_str -e "set global innodb_flush_log_at_trx_commit=0;"
mysql -uroot -p$pwd_str -e "set global innodb_flush_log_at_trx_commit=1;"
  • END Over!
rpm -ivh Percona-Server-shared-57-*.rpm Percona-Server-server-57-*.rpm Percona-Server-client-57-*.rpm

X 推薦文獻


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM