编译安装mysql和zabbix,xtrabackup数据库备份

xtrabackup参考文章

https://www.cnblogs.com/linuxk/p/9372990.html

?
?

?
?

下载5.7的mysql 社区版包

https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.25-1.el7.x86_64.rpm-bundle.tar

?
?

如果是redhat7系统需要删除mariadb的包

使用以下命令检查并删除mariadb包

rpm -e --nodeps $(rpm -qa | grep mariadb)

上传到/tmp目录解压缩

tar -xvf mysql-5.7.25-1.el7.x86_64.rpm-bundle.tar

安装依赖包

yum install -y net-tools perl

安装rpm包

rpm -ivh mysql-community-common-5.7.25-1.el7.x86_64.rpm

rpm -ivh mysql-community-libs-5.7.25-1.el7.x86_64.rpm

rpm -ivh mysql-community-libs-compat-5.7.25-1.el7.x86_64.rpm

rpm -ivh mysql-community-client-5.7.25-1.el7.x86_64.rpm

rpm -ivh mysql-community-server-5.7.25-1.el7.x86_64.rpm

创建目录并设置所属

mkdir -p /data/mysql/{data,tmp,log}

chown -R mysql:mysql /data/mysql/{data,tmp,log}

修改配置文件(清除源文件的内容加入以下内容)

vi /etc/my.cnf

[client]

port = 3306

socket = /data/mysql/tmp/mysql.sock

default-character-set = utf8mb4

?
?

[mysqld]

port = 3306

datadir = /data/mysql/data

pid-file = /data/mysql/tmp/mysqld.pid

socket = /data/mysql/tmp/mysql.sock

log-error = /data/mysql/log/error.log

character_set_server = utf8mb4

user = mysql

bind-address = *

server-id = 1

symbolic-links=1

connect_timeout = 3600

wait_timeout = 3600

interactive_timeout = 3600

explicit_defaults_for_timestamp = true

启动mysql服务

systemctl start mysqld

获取安装过程中自动生成的密码到MySQL_PASS变量

MySQL_PASS=$(cat /data/mysql/log/error.log | grep "A temporary password" | awk ‘{print $NF}‘)

使用root加MySQL_PASS变量登陆

mysql -u root -p"${MySQL_PASS}"

设置新的密码为Admin123,.

mysql> SET PASSWORD=‘Admin123,.‘;

开启远程访问

GRANT ALL PRIVILEGES ON *.* TO ‘root‘@‘%‘ IDENTIFIED BY ‘ADmin123,.‘ WITH GRANT OPTION;

flush privileges;

?
?

yum -y install gcc pcre-devel openssl-devel

上传nginx-1.12.2.tar.gz包到root的家目录

解压缩nginx的包

tar -xf nginx-1.12.2.tar.gz

进入nginx的目录,编译安装

cd nginx-1.12.2

./configure --with-http_ssl_module

make && make install

?
?

yum -y install php php-mysql php-fpm

修改nginx的配置文件,让其支持php动态网站,因为有大量的php脚本需要执行,还有开启nginx的各种fastcgi缓存加速php脚本的执行速度

vi /usr/local/nginx/conf/nginx.conf

添加以下内容,添加的内容要顶格写,添加的位置如图所示

fastcgi_connect_timeout 300;

fastcgi_send_timeout 300;

fastcgi_read_timeout 300;

fastcgi_buffer_size 128k;

fastcgi_buffers 4 128k;

同时添加以下内容,添加位置如图所示

location ~ \.php$ {

root html;

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

include fastcgi.conf;

}

开启php-fpm服务和nginx服务

systemctl start php-fpm

ln -s /usr/local/nginx/sbin/nginx /sbin/nginx

nginx

首先安装zabbix server 的依赖包

yum -y install net-snmp-devel curl-devel libevent-devel

解压zabbix包,进入目录,编译安装,使用编译安装的mysql数据库时造成zabbix编译失败,报错如

zabbix error: MySQL library not found

?
?

造成以上编译错误的话,需要安装mysql的devele包,包名为mysql-community-devel-5.7.25-1.el7.x86_64.rpm

rpm -ivh mysql-community-devel-5.7.25-1.el7.x86_64.rpm

tar -xf zabbix-3.4.11.tar.gz

cd zabbix-3.4.11

./configure --enable-server --enable-proxy --enable-agent --with-mysql=/usr/bin/mysql_config --with-net-snmp --with-libcurl

编译安装参数说明

// --enable-server安装部署zabbix服务器端软件

// --enable-agent安装部署zabbix被监控端软件

// --enable-proxy安装部署zabbix代理相关软件

// --with-mysql配置mysql_config路径

// --with-net-snmp允许zabbix通过snmp协议监控其他设备

// --with-libcurl安装相关curl库文件,这样zabbix就可以通过curl连接http等服务,测试被监控主机服务的状态

执行make && make install

make && make install

数据库配置,登陆数据库,创建中文字符集的数据库,赋权,如图(一下配图为MariaDB的配图,实际情况如果使用mysql的话,mysql不允许简单密码,应该使用大小写数字加特殊字符来组成密码)

mysql

MariaDB [(none)]> create database zabbix character set utf8;

MariaDB [(none)]> grant all on zabbix.* to [email protected]‘localhost‘ identified by ‘zabbix‘;

MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* TO ‘zabbix‘@‘%‘ IDENTIFIED BY ‘zabbix‘;

创建可以访问数据库的账户和密码(zabbix的源码包下有关于数据库的sql脚本,只需要进入到源码包的database/mysql目录下,导入sql脚本即可,注意一定要安装顺序)

cd database/mysql/

mysql -uzabbix -pzabbix zabbix < schema.sql

mysql -uzabbix -pzabbix zabbix < images.sql

mysql -uzabbix -pzabbix zabbix < data.sql

将zabbix的web页面关联到nginx中

cd /root/zabbix-3.4.11/frontends/php/

cp -r * /usr/local/nginx/html/

chmod -R 777 /usr/local/nginx/html/*

修改zabbix-server配置文件,设置数据库的相关参数,启动zabbix-server服务

vi /usr/local/etc/zabbix_server.conf

DBHost=localhost

//数据库主机,默认该行被注释

DBName=zabbix

//设置数据库名称

DBUser=zabbix

//设置数据库账户

DBPassword=zabbix

//设置数据库密码,默认该行被注释

LogFile=/tmp/zabbix_server.log????

//设置日志,仅查看以下即可

添加zabbix用户,不让其登陆到系统控制台,,不添加用户的话,无法启动zabbix_server服务

useradd -s /sbin/nologin zabbix

启动zabbix_server服务

zabbix_server

验证服务是否正常启动,如图

netstat -nutpl |grep zabb

提示:如果是因为配置文件不对,导致服务无法启动时,不要重复执行zabbix_server,一定要先使用killall zabbix_server关闭服务后,再重新启动一次。

?
?

如果还是无法启动zabbix_server服务的话,查日志,日志位置/tmp/zabbix_server.log

cat /tmp/zabbix_server.log

从日志上来看是找不到sock文件

查找sock文件

find / -name "mysql.sock*"

制作连接

ln -s /data/mysql/tmp/mysql.sock /var/lib/mysql/mysql.sock

然后重新启动zabbix_server

下面配置zabbix_agent服务,同样编辑zabbix_agentd.conf配置文件

vi /usr/local/etc/zabbix_agentd.conf

Server=127.0.0.1,172.16.103.2????????????????????//允许哪些主机监控本机

ServerActive=127.0.0.1,172.16.103.2?????????????????//允许哪些主机通过主动模式监控本机

Hostname=zabbix_server????????????????????????//设置本机主机名

LogFile=/tmp/zabbix_server.log????????????????????//设置日志文件

UnsafeUserParameters=1????????????????????????//是否允许自定义key

启动zabbix_agent服务,同样如果是因为配置文件不对,导致服务无法启动时,不要重复执行zabbix_agentd,一定要先使用killall zabbix_agentd关闭服务后,再重新启动一次。

zabbix_agentd

使用浏览器访问zabbix的web页面,进行相关配置,访问地址为:http://172.16.103.2/index.php但是因为是首次登陆,会被强制跳转到http://172.16.103.2/setup.php进行配置,如图所示

程序会检查先决条件,对于不满足的,程序已经给了解决方法,

关于以上错误,如果是PHP option类的错误,那么需要修改php.ini配置文件,修改之后需要重启php服务,php.ini文件的位置位于/etc目录下,可以直接使用vi /etc/php.ini命令来编辑该文件,保存修改之后需要执行systemctl restart php-fpm才生效。

vi /etc/php.ini

post_max_size = 16M

max_execution_time = 300

max_input_time = 300

date.timezone = Asia/Shanghai

systemctl restart php-fpm

执行了这些修改之后依然还有报错信息,如下图所示

部分报错可以通过yum安装一些扩展包来解决,例如bcmath mbstring等,执行下面的yum安装命令,安装依赖包。

yum -y install php-gd php-xml php-bcmath php-mbstring

执行完上述依赖包的安装命令之后重启php-fpm再次刷新网页

PHP的LDAP未开启,后面标注是是warning警告,再次忽略。进入下一步,下图中表单中的数据参照zabbix_server.conf配置文件中的内容填写

Name可以自行填写,也可以不填写,Name为此zabbixserver实例的名称

?
?

报错提示无法创建配置文件,为了安全起见上文配置nginx的过程中修改的权限为755,也就是其他用户没有写权限,程序提示我们可以手工下载文件,上传到/usr/local/nginx/html/conf目录,保存的绝对路径为/usr/local/nginx/html/conf/zabbix.conf.php

?
?

使用admin密码zabbix登陆

登陆之后配置主机,等到zabbix变绿之后观察数据库,有实时的数据写入。

安装xtrabackup,备份的数据为mysql5.7,所以需要安装的xtrabackup版本为2.4最新版本的8.0的版本无法对mysql5.7做备份。只能使用2.4版本

下载

文件列表

https://www.percona.com/downloads/

rpm包

https://www.percona.com/downloads/Percona-XtraBackup-2.4/Percona-XtraBackup-2.4.15/binary/redhat/7/x86_64/percona-xtrabackup-24-2.4.15-1.el7.x86_64.rpm

安装依赖包

下载libev包

http://mirror.centos.org/centos/7/extras/x86_64/Packages/libev-4.15-7.el7.x86_64.rpm

rpm -ivh libev-4.15-7.el7.x86_64.rpm

安装xtrabackup

yum localinstall percona-xtrabackup-24-2.4.15-1.el7.x86_64.rpm

登陆数据库创建备份账户

CREATE USER ‘bakuser‘@‘%‘ IDENTIFIED BY ‘Admin123,.‘; #创建bakuser用户

REVOKE ALL PRIVILEGES,GRANT OPTION FROM ‘bakuser‘; #移除该用户的所有权限

grant reload,process,lock tables,replication client on *.* to ‘bakuser‘@‘%‘; #为该用户赋权,包括刷新,锁表,查看服务器信息,复制权限

执行全量备份

innobackupex --user=bakuser --password=Admin123,. /date/db_bakup/

?
?

删库跑路

执行恢复操作

innobackupex --apply-log /date/db_bakup/2019-09-18_18-02-35/

innobackupex --copy-back /date/db_bakup/2019-09-18_18-02-35/

执行上述操作之后仅仅为恢复了数据库文件,下面要修改数据库文件的权限

chown -R mysql.mysql /data/mysql/data/

修改完之后重新连库即可看到数据了。

原文地址:https://www.cnblogs.com/withfeel/p/11670638.html

时间: 2024-11-09 07:58:10

编译安装mysql和zabbix,xtrabackup数据库备份的相关文章

linux下cmake方式编译安装MySQL数据库

前言:MySQL数据库自5.5版本以后,就开始使用CMake编译工具进行安装. 安装环境: [[email protected] ~]# cat /etc/redhat-release Red Hat Enterprise Linux Server release 6.5 (Santiago)[[email protected] ~]# mysqladmin --versionmysqladmin  Ver 8.42 Distrib 5.6.14, for Linux on x86_64 1.安

CentOS 6.6 下源码编译安装MySQL 5.7.5

版权声明:转自:http://www.linuxidc.com/Linux/2015-08/121667.htm 说明:CentOS 6.6 下源码编译安装MySQL 5.7.5 1. 安装相关工具# yum -y install gcc-c++ ncurses-devel cmake make perl \ gcc autoconf automake zlib libxml libgcrypt libtool bison2. 清理环境检查boost版本: # rpm -qa boost*卸载b

CentOS 6.5最小化编译安装mysql 5.5.35

1.关闭防火墙: [[email protected] ~]# service iptables stop iptables: Setting chains to policy ACCEPT: filter          [  OK  ] iptables: Flushing firewall rules:                         [  OK  ] iptables: Unloading modules:                               [

CentOS 6.5最小化编译安装mysql 5.5.35配置多实例

1.关闭防火墙 [[email protected] ~]# service iptables stop iptables: Setting chains to policy ACCEPT: filter          [  OK  ] iptables: Flushing firewall rules:                         [  OK  ] iptables: Unloading modules:                               [ 

Cmake编译安装mysql

在实际应用中,大多数公司一般都会采用编译安装mysql 下载地址:http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.22.tar.gz/ 系统环境:CentOS 6.7 finall 1,安装所需要的依赖包 yum install -y ncurses-devel.x86_64 yum install -y cmake.x86_64 yum install -y libaio.x86_64 yum install -y bison.x8

Linux CentOS6.5下编译安装MySQL 5.6.16【给力详细教程】

一.编译安装MySQL前的准备工作 安装编译源码所需的工具和库 [sql] view plaincopy yum install gcc gcc-c++ ncurses-devel perl 安装cmake,从http://www.cmake.org下载源码并编译安装 [sql] view plaincopy wget http://www.cmake.org/files/v2.8/cmake-2.8.10.2.tar.gz tar -xzvf cmake-2.8.10.2.tar.gz cd 

CentOS 6.4下编译安装MySQL 5.6.16

一.卸载旧版本MySql 1.rpm卸载: 1> 检查安装包: rpm -qa | grep mysql 2> 普通删除: rpm -e mysql-5.6.16.rpm 3> 强力删除.如果使用上面命令删除时,提示有依赖的其他文件,则使用该命令可以对其进行强力删除. rpm -e --nodeps mysql-5.6.16.rpm 2.tar卸载: 1> 删除临时文件: make clean 2> 卸载 make uninstall 3> 删除解压文件 rm  -rf

linux学习笔记——源码编译安装Mysql

#######Redhat6.5源码编译安装Mysql########实验环境:1.IP:172.25.8.32.磁盘要大于20G先添加一块大于20G的磁盘fdisk /dev/vdb        ##得到/dev/vdb1 8e linuxpvcreate /dev/vdb1    ##把物理分区做成物理卷vgextend vg_server1 /dev/vdb1    ##把新建立的/dev/vdb1添加到vg_server1中lvextend -L 20G /dev/vg_server1

编译安装mysql

编译安装mysql源码包和多实例登录 1.编译安装mysql 1)首先查看这个包是否安装 [[email protected] ~]# rpm -qa ncurses-devel libaio-devel [[email protected] ~]# 2)如果没有安装请安装 yum install ncurses-devel libaio-devel -y 3)安装cmake编译命令 yum install cmake -y 4)创建mysql虚拟用户不指定家目录 user add mysql-