编译安装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 zabbix@'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包
安装依赖包
下载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/
修改完之后重新连库即可看到数据了。
编译安装mysql和zabbix,xtrabackup数据库备份的更多相关文章
- CentOS 6.6 下源码编译安装MySQL 5.7.5
版权声明:转自:http://www.linuxidc.com/Linux/2015-08/121667.htm 说明:CentOS 6.6 下源码编译安装MySQL 5.7.5 1. 安装相关工具# ...
- 源码编译安装 MySQL 5.5.x 实践
1.安装cmakeMySQL从5.5版本开始,通过./configure进行编译配置方式已经被取消,取而代之的是cmake工具.因此,我们首先要在系统中源码编译安装cmake工具. # wget ht ...
- CentOS 编译安装 mysql
1.前期准备 1.1 环境说明: 操作系统: CentOS release 6.4 (Final) [查看命令 cat /etc/redhat-release ] mysql : mysql-5.6. ...
- Linux CentOS6.5下编译安装MySQL 5.6.16【给力详细教程】
一.编译安装MySQL前的准备工作 安装编译源码所需的工具和库 yum install gcc gcc-c++ ncurses-devel perl 安装cmake,从http://www.cmake ...
- Linux编译安装Mysql步骤
一. Centos 用 wget 下载需要的软件,保存到目录/home/zwl/MySql/下 wget http://dev.mysql.com/get/Downloads/MySQL-5.5/my ...
- CentOS下编译安装MySQL 5.6.21
一.编译安装MySQL前的准备工作 安装编译源码所需的工具和库 yum install gcc gcc-c++ ncurses-devel perl 安装cmake:http://www.cnblog ...
- 源码编译安装 MySQL 5.5.x 实践(转)
1.安装cmakeMySQL从5.5版本开始,通过./configure进行编译配置方式已经被取消,取而代之的是cmake工具.因此,我们首先要在系统中源码编译安装cmake工具. # wget ht ...
- Linux 环境编译安装mysql (源码安装包)
标注: Linux需要先配置网络yum源,确定yum能在线安装软件包,方便测试过程中安装部分依赖包.配置163网易提示的网络yum源参考博客 http://www.cnblogs.com/zoulo ...
- Linux(CentOS6.5)下编译安装MySQL Community Server 5.7.12
组件 官方网站 直接下载地址 备注 mysql http://dev.mysql.com/downloads/mysql/ http://mirrors.sohu.com/mysql/MySQL- ...
随机推荐
- win10 移动端 android 测试环境搭建
一.移动端自动化测试的基础环境配置1:安装Java环境 关于安装Java环境以及相关环境变量的配置在我之前的博文分享中已有详细介绍,有需要的可以直接查找翻阅,这里就不再一一介绍. 二.移动端自动化测试 ...
- 查看Docker启动jenkins的管理员密码
Docker启动docker后,第一次方法jenkins,需要输入管理员密码. 其实查看启动时候的日志可以看到密码,也可以按照以下方法找到密码. 1.查看docker容器ID:docker ps -a ...
- python多线程与_thread模块
进程与线程 1.进程:计算机程序只是存储在磁盘中的可执行二进制(或其他类型)的文件.只有把他们加载到内存中并被操作系统调用,才具有其生命周期.进程则是一个执行中的程序.每个进程都拥有自己的地址空间,内 ...
- postgresql批量插入copy_from()的使用
在批量插入postgresql时想使用同Mysql的语法时发现并不能使用: cursor.executemany("INSERT INTO persons VALUES (%d, %s, % ...
- 鸿蒙内核源码分析(重定位篇) | 与国际接轨的对外部发言人 | 百篇博客分析OpenHarmony源码 | v55.01
百篇博客系列篇.本篇为: v55.xx 鸿蒙内核源码分析(重定位篇) | 与国际接轨的对外部发言人 | 51.c.h.o 加载运行相关篇为: v51.xx 鸿蒙内核源码分析(ELF格式篇) | 应用程 ...
- 51nod1229-序列求和V2【数学,拉格朗日插值】
正题 题目链接:http://www.51nod.com/Challenge/Problem.html#problemId=1229 题目大意 给出\(n,k,r\)求 \[\sum_{i=1}^ni ...
- PyTorch中的Batch Normalization
Pytorch中的BatchNorm的API主要有: 1 torch.nn.BatchNorm1d(num_features, 2 3 eps=1e-05, 4 5 momentum=0.1, 6 7 ...
- HCNP Routing&Switching之路由引入导致的问题及解决方案
前文我们了解了路由引入相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15359902.html:今天我们来讨论下由于路由引入所导致的问题以及怎么避免此 ...
- Java网络爬虫技术《二》Jsoup
Jsoup 当我们成功抓取到页面数据了之后,还需要对抓取的数据进行解析,而刚好,Jsoup 是一款专门解析 html 页面的技术.Jsoup是一款基于 Java 的HTML 解析器,可直接解析某个 U ...
- 从工具、工具箱到数字化软件工厂——DevOps 设计理念与工程实践专场 | CIF 精彩看点
西方经典管理理论认为,组织效率可以归为劳动效率.组织效率和人的效率.美国管理学家泰勒所著的<科学管理原理>被德鲁克誉为"20 世纪最伟大的发明",劳动效率说认为分工提升 ...