环境:redhat6.9
mysql版本:mysql-5.6.41-linux-glibc2.12-x86_64
单机安装:
1.根据实际生产环境配置的,我的mysql是离线安装的,并且安装目录位于instll_mysql.sh脚本的当前目录,如脚本放置在/home下面,执行instll_mysql.sh就会将mysql安装在/home路径下面。
2.执行instll_mysql.sh脚本之后直接进入mysql的bin目录下面执行:
mysqld_safe & 就可以启动mysql的程序
3.执行完之后在mysql的bin下面执行./mysql -uroot -p(初始root密码是空的,不需要输入就可以了)
4.如果你遇到了/tmp/mysql.sock类型的连接报错,不要着急,只需要用:
ps -ef|grep mysql找到mysql的mysql.sock的位置,然后ln -s 离线的mysql.sock位置 /tmp/mysql.sock 就可以连接上mysql的程序了
主主热备
实现方式:MM+keepalived
实验部署环境介绍:
172.30.161.123 主 ---masterA
172.30.161.124 备库---masterB
都是干净环境没有任何数据
my.cnf_masterA.cnf以及my.cnf_masterB.cnf的内容将mysql,information_schema这两个基础的数据库排除热备,如果你需要热备这两个库将 binlog-ignore-db = mysql,information_schema 这个配置参数移除即可!!!
masterA(172.30.161.123):
1.将刚刚离线安装的mysql目录下面的my.cnf完全替换成my.cnf_masterA.cnf的内容即可,重新启动mysql
查看主从同步状态:
1.将刚刚离线安装的mysql目录下面的my.cnf完全替换成my.cnf_masterB.cnf的内容即可,重新启动mysql
2.执行下面的语句:
查看主从同步状态:
只要两机器的
Slave_IO_Running: Yes
Slave_SQL_Running: Yes都是yes说明机器的主主备份已经配置完毕了
测试一下:
在serverA 172.30.161.123上创建
mysql> create database test_db;
mysql> use test_db;
mysql> CREATE TABLE test_tb(id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,name CHAR(30));在serverB 172.30.161.124上查看结果:
serverB 172.30.161.124 自动创建test_db数据库和 test_tb表,即主从复制成功。再验证主主复制
在serverA 172.30.161.123上插入数据:
mysql> INSERT INTO test_tb (name) VALUES ('11'),('22'),('33');
在serverB 172.30.161.124插入数据:
mysql> INSERT INTO test_tb (name) VALUES ('88'),('88'),('88');分别查看两个服务器数据:
主主同步即为成功安装
keepalived
部署环境:
172.30.161.123 主库 ---masterA
172.30.161.124 备库---masterB
都是干净环境没有任何数据
VIP:172.30.161.126
1)安装
yum install -y gcc make openssl openssl-devel
如果你没有办法yum之类的安装手段可以通过下载需要用到的rpm包可以可以的,推荐一个博主经常下载的redhat6系列的rpm下载链接(Centos6同样适用):
http://mirrors.163.com/centos/6/os/x86_64/Packages/
因为内网环境 wget是没有办法使用的,所以我选择从网上先下载到本地之后scp到远程的服务器上,本篇文章的开头的分享链接中同样分享了本次keepalived的安装程序
2)配置
C)主备两边都需要的检测脚本
3)运行
4)检查
在172.30.161.123上查看结果:
安装完成,数据库连接用172.30.161.126即可,即使一台机器宕机了也能尽可能的保证数据库可以写