美文网首页
二进制版安装以及启动 Percona-5.7.15

二进制版安装以及启动 Percona-5.7.15

作者: Linux大师 | 来源:发表于2023-04-30 22:31 被阅读0次

| 本文将叙述通过二进制源码方式安装Percona-5.7.15,并进行快速启动。这边如何使用二进制版本安装Percona-5.7.15就不说了,和之前一模一样。 |

不做多余的事

1、解压

2、创建用户

3、创建相关目录并且赋予MySQL权限

4、使用mysqld初始化

麻烦的地方

按道理来说安装和启用MySQL应该是一件很容易的事,特别是使用二进制版本安装的特别容易的,只要解压初始化就行了。

但是在Percona-5.7.15(包括)之后的版本官网为了一个严重的MySQL漏洞,从而在启动MySQL的时候一些动态链接库只能从/usr/lib、/usr/lib64加载。而一般我安装MySQL都喜欢使用jemalloc这个内存分配,而不使用linux自带的和tcmalloc。所以在my.cnf配置文件中有如下一个配置

[mysqld_safe]
malloc-lib          = /usr/local/mysql/lib/mysql/libjemalloc.so.1

有读过mysqld_safe启动程序源码的都知道在MySQL在寻找 jemalloc.so.1 这两个动态链接库的时候是先寻找到 my.cnf 中设置的 basedir

源码如下:

#
# Add jemalloc to ld_preload if no other malloc forced - needed for TokuDB
#
if test $load_jemalloc -eq 1
then
  for libjemall in "${MY_BASEDIR_VERSION}/lib/mysql" "/usr/lib64" "/usr/lib/x86_64-linux-gnu" "/usr/lib"; do
    if [ -r "$libjemall/libjemalloc.so.1" ]; then
      add_mysqld_ld_preload "$libjemall/libjemalloc.so.1"
      break
    fi  
  done
fi

启动报错

由于libjemalloc.so.1 在 basedir 中存在,可是MySQL又限制了只能在/usr/lib64、/usr/lib等等标准库中加载这些动态文件所以启动的时候会报错。

报错如下:

mysqld_safe --malloc-lib must be located in one of the directories: /usr/lib /usr/lib64 /usr/lib/i386-linux-gnu /usr/lib/x86_64-linux-gnu

其实查看报错的提示就很明显,就是对于加载这些库只能在/usr/lib /usr/lib64 /usr/lib/i386-linux-gnu /usr/lib/x86_64-linux-gnu这个库中

解决

1、将libjemalloc.so.1文件拷贝到/usr/lib /usr/lib64 /usr/lib/i386-linux-gnu /usr/lib/x86_64-linux-gnu 这几个目录中

cp /usr/local/mysql/lib/mysql/libjemalloc.so.1 /usr/lib64/libjemalloc.so.1

2、修改[mysqld_safe]

修改前:

[mysqld_safe]
malloc-lib          = /usr/local/mysql/lib/mysql/libjemalloc.so.1

修改后:

[mysqld_safe]
malloc-lib          = /usr/lib64/libjemalloc.so.1

3、重启MySQL

[root@[centos](https://www.linuxprobe.com/ "centos")7 mysql]# numactl --interleave=all /bin/bash /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my_3306.cnf  
 mysqld_safe Adding '/usr/lib64/libjemalloc.so.1' to LD_PRELOAD for mysqld
 mysqld_safe Adding '/usr/local/mysql/lib/libHotBackup.so' to LD_PRELOAD for mysqld
2016-12-28T09:03:30.653874Z mysqld_safe Logging to '/u01/mysql/mysql_3306/logs/trace/mysql.err'.
2016-12-28T09:03:30.675215Z mysqld_safe Transparent huge pages are already set to: never.
2016-12-28T09:03:30.692654Z mysqld_safe Starting mysqld daemon with databases from /u01/mysql/mysql_3306/data

可见已经启动成功了

当然可以去修改mysqld_safe文件代码,但是对于要脚本部署就比较麻烦了,需要使用sed对代码进行替换,因为每个版本MySQL的mysqld_safe都会有所不同。所以这边就使用拷贝的方法暂时解决。

注意

MySQL 的basedir是一个软连接,那libHotBackup.so也需要修改

具体最终操作如下:

1、拷贝相关动态链接库

cp /usr/local/mysql/lib/mysql/libjemalloc.so.1 /usr/lib64/libjemalloc.so.1
cp /usr/local/mysql/lib/libHotBackup.so /usr/lib64/libHotBackup.so
mv /usr/local/mysql/lib/libHotBackup.so /usr/local/mysql/lib/libHotBackup.so.bak

2、修改my.cnf

[mysqld_safe]
malloc-lib          = /usr/lib64/libjemalloc.so.1

文章来源:https://www.linuxprobe.com/percona-binary-install.html

相关文章

  • Helm安装

    二进制版本安装helm 每一个版本的helm提供多种操作系统的二进制版本。这些二进制版本可以手动下载和安装,可详见...

  • 安装MySQL

    一.MySQL的安装方式以及版本选择 1)安装方式 1、通过二进制的方式安装 二进制安装方式中,包括rpm版本以及...

  • EAM系统架构之二:MySQL数据库安装

    1. 下载mysql二进制版本到主节点服务器 2. 创建mysql的默认安装目录 3. 安装MySQL 3.1 编...

  • Basis-ANT

    安装 JDK 要求 1.4 及以上版本,推荐 1.7 及以上版本确保 JAVA_HOME 已配置 下载二进制版压缩...

  • mysql数据库版本介绍及安装(day1)2019-08-05

    DBA中级学习大纲 一、数据库版本介绍: 二、安装MYSQL 5.7.26二进制版本的步骤: 1、准备硬件环境:...

  • RocketMQ实战入门

    (一)安装与启动 下载rocketmq-4.8.0二进制包,启动name server和broker: 注:Roc...

  • mysql备份迁移--业务篇

    mysql安装启动以及配置 使用到阿里云主机直接yum安装以及配置 安装这版本默认没有密码直接启动服务,创建abc...

  • Linux下的Mysql集群之路

    一。安装mysql集群版本 首先下载二进制版本的mysql集群传送门。这里我下载的是7.4.13. 二。sql节点...

  • 实验一【2021OS】

    实验一:Linux 软件部署及应用 二进制软件包安装以及源码编译安装。软件卸载,更新。 二进制软件包安装 git安...

  • MySQL数据库二进制版安装

    MySQL 数据库二进制版本安装操作步骤: 1. 首先先上传数据库安装包到linux操作系统 2. 添加一块新的硬...

网友评论

      本文标题:二进制版安装以及启动 Percona-5.7.15

      本文链接:https://www.haomeiwen.com/subject/bzznjdtx.html