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 推荐文献

[数据库/Linux]CentOS7安装MySQL Percona版(RPM方式)的更多相关文章

  1. Centos7安装MySQL8.0(RPM方式)

    人生处处皆学问,工作也是如此!过去不止一次在Linux上安装MySQL,可以说轻车熟路,但是写篇文章总结一下,发现有很多细节值得学习! 安装包选择 为什么用rpm? 在Linux系列上安装软件一般有源 ...

  2. linux(Centos7)安装mysql

    查看系统环境 [root@localhost html]# cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core) CentOS 7 ...

  3. Linux 5 下安装MySQL 5.6(RPM方式)

    MySQL在很多领域被广泛使用,尤其是很多互联网企业,诸如腾讯,阿里等等.本文主要介绍在Linux 5下通过rpm方式来安装Mysql,这是比较简单的一种安装方式,具体详见下文. <MySQL权 ...

  4. linux centos7安装mysql

    1.下载并安装官方的 yum repository (新建了mysql文件夹) wget -i -c http://dev.mysql.com/get/mysql57-community-releas ...

  5. CentOS7 安装mysql(YUM源方式)

    1.下载mysql源安装包 $ wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm   2.安装mysql ...

  6. linux下安装mysql(rpm文件安装)

    数据库包下载: https://www.mysql.com/downloads/ 在GPL开原协议的社区开源版里边下载 我们用mysql community server里边的 其中workbench ...

  7. linux centos7 安装常用软件java,node,mysql,Seafile

    linux centos7 安装常用软件java,node,mysql,Seafile 安装压缩解压缩软件 yum install -y unzip zip 安装git yum install -y ...

  8. linux下安装Mysql 以及导入数据库

    1.下载mysql的rpm包,创建一个文件夹例如software来放置下面文件 可以通过wget下载具体的地址 (1)MySQL-server-5.6.10-1.rhel5.x86_64.rpm:My ...

  9. linux下安装mysql(rpm安装)

    Mysql 5.7.29安装步骤 1.首先卸载自带的Mysql-libs(如果之前安装过mysql,要全都卸载掉) rpm -qa | grep -i -E mysql\|mariadb | xarg ...

  10. CentOS7安装MySQL的方法之RPM包方式

        CentOS7安装MySQL的方法之RPM包方式        

随机推荐

  1. js 复制链接内容

    <script type="text/javascript">//复制活动地址 function shareUrl(id) { var url = 'http://H5 ...

  2. 工控小工具 snmp 、opc ua 、modbus 、tcp、bacnet 开发环境Net6.0

    下载地址 https://files.cnblogs.com/files/blogs/745639/net6.0-windows.rar?t=1674114312

  3. k8s 部署单点 rabbitmq

    创建pvc vim rabbitmq-pvc.yaml kind: PersistentVolumeClaim apiVersion: v1 metadata: name: rabbitmq-data ...

  4. 调试以及Linq查询

    1.调试的步骤 调试快捷键: F10逐过程(不会进入函数内部,直接获取函数运行结果) F11逐语句(会进入函数) F5执行,如果调试中多个断点,按F5执行到下一个断点 出现黄色箭头表示执行到这一句,但 ...

  5. python常用数据类型方法详解

    str类型 count('str',begin_index,ending_index) 在s字符串中统计str出现的次数 s.endswith('str') 判断s字符串是否是已str字符串结尾,为真 ...

  6. C++11:初始化列表

    在老版本的C++中,我们可以比较方便得对结构体.数组等对象利用{}进行初始化,而类变量的初始化则取决于构造函数的形式,例如: struct A { int a, b, c; }; class Foo ...

  7. VBA类模块完全教程(www.accessoft.com软件网)

    这份礼物送给现在想学习类知识或曾经学过但因为各种原因没有"修成正果"的朋友,我期望的结果是这篇文章后,您可以在类模块中像在标准模块中写代码一样熟练,我也期望不至于太乏味而使您没有耐 ...

  8. ASP.NET WEBAPI 获取微信ticket

    public static string GetTicket(string AccessToken) { //类型 string Type = "jsapi"; string st ...

  9. Halcon代码导出到.net FrameWork/WPF

    1. 应用背景 在工业项目中,往往需要使用机器视觉结合人机界面开发特定的,面向工艺的项目.机器视觉中,Halcon无疑是功能强大的,能快速应用到项目的视觉产品,而WPF则是解决人机界面的利器.因此了解 ...

  10. 【javascript】chormeV8源码阅读之 GC(垃圾回收)过程 笔记

    1.为何需要垃圾回收     在V8引擎逐行执行JavaScript代码的过程中,当遇到函数的情况时,会为其创建一个函数执行上下文(Context)环境并添加到调用堆栈的栈顶,函数的作用域(handl ...