1、安装MySQL需要依赖包和编译软件 查询当前操作系统版本:
[root@ray /]# cat /etc/redhat-release # 查询当前内核版本
CentOS Linux release 7.6.1810 (Core)
[root@ray /]# uname -r # 查询当前系统位数
3.10.0-957.21.3.el7.x86_64
[root@ray /]# uname -m
x86_64
1.1 安装MySQL需要的依赖包
[root@ray /]# yum install ncurses-devel libaio-devel -y #下载
[root@ray /]# rpm -qa ncurses-devel libaio-devel #安装
1.2 安装编译MySQL需要的软件
[root@ray /]# yum -y install cmake #下载
[root@ray /]# rpm -qa cmake #安装
1.3 建立MySQL用户账户
[root@ray /]# useradd -s /sbin/nologin -M mysql #默认创建和mysql同名的用户组
[root@ray /]# id mysql #查询mysql的用户ID、组ID
uid=1003(mysql) gid=1003(mysql) groups=1003(mysql)
2.创建MySQL多实例的数据文件目录
[root@ray /]# mkdir -p /data/{3306,3307}/data
[root@ray /]# tree /data/
/data/
├── 3306
│ └── data
└── 3307
└── data
4 directories, 0 files
注意:如果要创建多个目录,则可以增加如3308、3309这样的目录名,在生产环境中一般以2-4个实例为主。
[root@ray /]# cd /home/oldboy/tools/mysql-5.6.44
[root@ray mysql-5.6.44]# ll support-files/*.cnf
-rw-r--r-- 1 root root 1126 Jul 14 16:13 support-files/my-default.cnf
[root@ray mysql-5.6.44]# mv /etc/my.cnf /etc/my.cnf.bak
注意:在/etc目录下会存在一个my.cnf,需要将此文件更名为其他名字,如/etc/my.cnf.bak,否则,该文件会干扰源码安装的MySQL的正确配置,造成无法启动
数据备份
mysqldump -u用户名 -p密码 参数 数据库名>备份的文件名.sql
mysqldump -u用户名 -p密码 -A 数据库名>备份的文件名.sql
#-A备份所有数据库
mysqldump -u用户名 -p密码 -B 数据库名>备份的文件名.sql
#-B增加创建数据库和连接数据库的语句
mysqldump -u用户名 -p密码 -F 数据库名>备份的文件名.sql
#-F将会从备份后的时刻起重新记录binlog的日志文件
mysqldump -u用户名 -p密码 --master-data=1 数据库名>备份的文件名.sql
#--master-data=1时备份结果为可执行的“CHANGE MASTER”语句,--master-data=2时备份结果为注释的“--CHANGE MASTER”语句,“--”为注释的意思
检查备份结果:
egrep -v “#|\*|--|^$" /opt/mysql_bak.sql
刷新binlog文件参数(-F) 1.binlog的作用: 使用mysqldump备份时,一般是对某一个时刻的数据进行全量备份,例如,0点进行数据备份。 假设每天0点进行数据备份,那么两次备份之间就有24小时的数据没有备份,在这期间发生了数据库故障使用mysqldump全量恢复也只能恢复到当日0点,但是有了binlog文件,就可以将两次完整备份间隔之间的数据还原。 我们称之为二进制增量数据恢复。
2.为什么要刷新binlog 刷新binlog日志的目的就是确定全量备份和增量备份的临界点。当全量备份完成后,全量备份之前的binlog文件就无用了(因为全量备份里已有了这部分数据)。但是全量备份到下一次全量备份之前的数据就很重要了,这部分数据就存在binlog里面。 -F参数就是在备份完成时刻使用新的binlog文件写入日志,以后恢复binlog就从这个文件开始即可。 恢复数据时,先恢复全量备份部分,然后恢复binlog增量备份数据。
3.如何开启binlog?
[root@ray data]# grep log_bin /etc/my.cnf
log_bin
[root@ray data]# vim /etc/my.cnf
[root@ray data]# /etc/init.d/mysqld restart
Shutting down MySQL.. SUCCESS!
Starting MySQL. SUCCESS!
[root@ray data]# ls -lrt /application/mysql/data/ray-bin*
-rw-rw---- 1 mysql mysql 120 Jul 15 00:40 /application/mysql/data/ray-bin.000001 #日志文件
-rw-rw---- 1 mysql mysql 17 Jul 15 00:40 /application/mysql/data/ray-bin.index #索引文件
[root@ray data]#