mysql安装
1.添加用户
groupadd mysql
useradd -r -g mysql mysql
 
2.路径授权
切到mysql目录 cd /usr/local/mysql
修改当前目录拥有者为mysql用户 chown -R mysql:mysql ./
 
3.初始化
安装数据库 bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
(看到有的报这个错bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory解决方法:yum install -y libaio  //安装后在初始化就OK了)
 
4.创建RSA
执行以下命令创建RSA private key  bin/mysql_ssl_rsa_setup --datadir=/usr/local/mysql/data
 
5.修改权限
修改当前目录拥有者为mysql用户 chown -R mysql:mysql ./
修改当前data目录拥有者为mysql用户 chown -R mysql:mysql data
6.配置my.cnf
vim /etc/my.cnf    (直接把下面内容复制上就行)
 
[mysqld]
character_set_server=utf8
init_connect='SET NAMES utf8'
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
#不区分大小写 (sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 这个简单来说就是sql语句是否严格)
lower_case_table_names = 1
log-error=/var/log/mysqld.log
pid-file=/usr/local/mysql/data/mysqld.pid
 
 
7.开机启动
添加开机启动     cp /usr/local/mysql/support-files/mysql.server  /etc/init.d/mysqld
vi /etc/init.d/mysqld  
 加入开机起动    chkconfig --add mysqld  
 
8、启动mysql   service mysqld start 
 
9、登录修改密码 mysql -uroot -p 上面初始化时的密码
如果出现错误 需要添加软连接  ln -s /usr/local/mysql/bin/mysql /usr/bin
 
10.修改初始化密码
mysql> alter user 'root'@'localhost' identified by 'root';
Query OK, 0 rows affected (0.00 sec)
 
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
 
mysql> set password='suntek@1234';
Query OK, 0 rows affected (0.00 sec)
 
mysql> grant all privileges on *.* to 'root'@'%' identified by 'suntek@1234';
Query OK, 0 rows affected, 1 warning (0.00 sec)
 
 
11.打开防火墙
vi /etc/sysconfig/iptables
添加一行
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306-j ACCEPT
service iptables restart
 
 


 
二.双主配置
172.16.70.6
172.16.70.7
 
1.配置/etc/my.cnf,配置完后一定要先重启
 
172.16.70.6机器
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
port=3306
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
lower_case_table_names = 1
 
server-id = 1
log-bin = mysql-bin
binlog_format = mixed
relay_log = relay-bin
auto_increment_increment=2
auto_increment_offset=1
 
 
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/usr/local/mysql/data/mysqld.pid
 
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
 
172.16.70.7机器
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
port=3306
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
lower_case_table_names = 1
 
server-id = 2
log-bin = mysql-bin
binlog_format = mixed
relay_log = relay-bin
auto_increment_increment=2
auto_increment_offset=2
 
 
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/usr/local/mysql/data/mysqld.pid
 
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
黄色背景部分server-id和 auto_increment_offset不能相同,其它必须相同
部分配置项解释如下:
binlog_format= mixed:指定mysql的binlog日志的格式,mixed是混合模式。
relay-log:开启中继日志功能
relay-log-index:中继日志清单
auto-increment-increment= 2:表示自增长字段每次递增的量,其默认值是1。它的值应设为整个结构中服务器的总数,本案例用到两台服务器,所以值设为2。
auto-increment-offset= 2:用来设定数据库中自动增长的起点(即初始值),因为这两能服务器都设定了一次自动增长值2,所以它们的起点必须得不同,这样才能避免两台服务器数据同步时出现主键冲突。
注:另外还可以在my.cnf配置文件中,添加“binlog_do_db=数据库名”配置项(可以添加多个)来指定要同步的数据库。如果配置了这个配置项,如果没添加在该配置项后面的数据库,则binlog不记录它的事件。
 
2.在msql1(172.16.70.6)创建一个用户给mysql2(172.16.70.7)连接使用的,用户名为suntek,密码为suntek@1234
 
grant replication slave on *.* to 'suntek'@'172.16.70.7' identified by 'suntek@1234';
3.msql1(172.16.70.6)查看binlog信息
 
show master status;
 
 
4.mysql2(172.16.70.7)将mysql1设为自已的主服务器并开启slave功能:
change master to master_host='172.16.70.6',master_user='suntek',master_password='suntek@1234',master_log_file=';
start slave;
 
5.msql2(172.16.70.7)的状态:
 
show slave status \G;
(\G格式化输出)
 
 
mysql1与mysql2反过来2~5步骤
 
6.在msql2(172.16.70.7)创建一个用户给mysql1(172.16.70.6)连接使用的,用户名为suntek,密码为suntek@1234
 
grant replication slave on *.* to 'suntek'@'172.16.70.6' identified by 'suntek@1234';
msql2(172.16.70.7)查看binlog信息
show master status;
 
 
7.mysql1(172.16.70.6)将mysql1设为自已的主服务器并开启slave功能:
change master to master_host='172.16.70.7',master_user='suntek',master_password='suntek@1234',master_log_file=';
start slave;
show slave status;
 


三、keepalive
vip:172.16.70.200
ip1 : 172.16.70.6、ip2 : 172.16.70.7
 
1.下载keepalive安装包http://www.keepalived.org/download.html
 
2.安装依赖
yum install -y libnl-devel libnl3-devel libnfnetlink-devel openssl-devel
 
3.解压
tar zxvf keepalived-2.0.10.tar.gz
 
4.进入解压后的目录,进行configure
cd keepalived-2.0.10
./configure --prefix=/usr/local/keepalived
 
5.进行编译安装
make && make install
 
6.拷贝执行文件
cp /usr/local/keepalived/sbin/keepalived /usr/sbin/
 
7.将init.d文件拷贝到etc下,加入开机启动项
cp /usr/local/keepalived-2.0.10/keepalived/etc/init.d/keepalived /etc/init.d/keepalived
 
8.将keepalived文件拷贝到etc下,加入网卡配置
cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
 
9.将keepalived配置文件拷贝到etc下
mkdir -p /etc/keepalived
cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf
 
10.添加可执行权限
chmod +x /etc/init.d/keepalived
 
11.加入开机启动
chkconfig --add keepalived #添加时必须保证/etc/init.d/keepalived存在
chkconfig keepalived on
#添加完可查询系统服务是否存在:
chkconfig --list
 
12.编辑检测脚本msyql.sh,放到/etc/keepalived/mysql.sh,并授权
这个的作用是当检测到mysql停止时,也kill了keepalived进程
#!/bin/sh  
pkill keepalived
 
 
授权
chmod +x /etc/keepalived/mysql.sh
 
 
 
13.编辑/etc/keepalived/keepalived.cof文件
原来两台机器原来网络172.16.70.6和172.16.70.7
 
配置文件
四个地方不同router_id ,priority,nopreempt(prority大的要配置,另一个不用配置),real_server
172.16.70.6的/etc/keepalived/keepalived.conf
 
 
! Configuration File for keepalived
 
global_defs {
  router_id mysql70-6
}
 
vrrp_instance VI_1 {
   state BACKUP
   interface eth0
   virtual_router_id 51
   priority 100
   advert_int 1
   nopreempt
   authentication {
       auth_type PASS
       auth_pass 1111
   }
   virtual_ipaddress {
       172.16.70.199
   }
}
 
virtual_server 172.16.70.199 3306 {
   delay_loop 2
   lb_algo rr
   lb_kind DR
   persistence_timeout 60
   protocol TCP
   
   real_server 172.16.70.6 3306 {
       weight 3
       notify_down    /etc/keepalived/mysql.sh
       TCP_CHECK {
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
            connect_port 3306
       }
   }
}
 
172.16.70.7的/etc/keepalived/keepalived.conf
 
! Configuration File for keepalived
 
global_defs {
  router_id mysql70-7
}
 
vrrp_instance VI_1 {
   state BACKUP
   interface eth0
   virtual_router_id 51
   priority 50
   advert_int 1
   authentication {
       auth_type PASS
       auth_pass 1111
   }
 
   virtual_ipaddress {
       172.16.70.199
   }
}
 
virtual_server 172.16.70.199 3306 {
   delay_loop 2
   lb_algo rr
   lb_kind DR
   persistence_timeout 60
   protocol TCP
 
   real_server 172.16.70.7 3306 {
       weight 3
       notify_down    /etc/keepalived/mysql.sh
       TCP_CHECK {
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
            connect_port 3306
       }
   }
}
 
 
14.启动、停止、重启keepalived服务
service keepalived start
service keepalived stop
service keepalived restart
 
15.查看服务
ps -ef |grep keepalived
16.查看网络结构
ip addr
 
17.别的机器ping 一下虚拟IP172.16.70.199
 
18.停止172.16.70.6机器数据库mysql测试
 
 
 
 
 
 
 
 
 
 
 
 
 

高可用-mysql安装,双主模式+keepalived的更多相关文章

  1. Keepalived+LVS实现高可用负载均衡双主模式

    LVS是一种集群(Cluster)技术:采用IP负载均衡技术和基于内容请求分发技术.调度器具有很好的吞吐率,将请求均衡地转移到不同的服务器上执行,且调度器自动屏蔽掉服务器的故障,从而将一组服务器构成一 ...

  2. Apache+lvs高可用+keepalive(主从+双主模型)

    Apache+lvs高可用+keepalive(主从+双主模型)     keepalive实验准备环境: httpd-2.2.15-39.el6.centos.x86_64 keepalived-1 ...

  3. nginx+keepalived高可用 (主从+双主)

    1.Nginx+keepalived 主从配置这种方案,使用一个vip地址,前端使用2台机器,一台做主,一台做备,但同时只有一台机器工作,另一台备份机器在主机器不出现故障的时候,永远处于浪费状态,对于 ...

  4. 生产环境中mysql+keepalive双主模式,keepalive守护进程实现双主切换提供数据库服务

    mysql+keepalive实现浮动地址自动切换,由于keepalive无自带健康检查功能,所以必须自动编写健康检查守护进程(监控DB1和DB2数据库的监控状态,来保证浮动地址双机自动切换.) 一, ...

  5. Nginx系列篇四:Nginx+keepalived搭建一个高可用的双机双主热备

    建议:先阅读Nginx+keepalived主从配置,因为此篇是接着上篇开始的 上一篇我们简单的介绍了主从配置及其缺点,我们看一下双主热备配置: 2台Nginx+keepalived互为主备,各自绑定 ...

  6. mysql的双主模式配置

    第一台:192.168.0.160 第二台:192.168.0.170 主从配置,第一步:192.168.0.160 作为主数据库,192.168.0.170作为从数据库,配置如下: ======== ...

  7. mysql的双主模式

    mysql主主复制配置 server1 ip:192.168.0.231server2 ip:192.168.0.234 更改两台主机的mysql配置文件vim /etc/my.cnfserver1添 ...

  8. 通过keepalived搭建MySQL双主模式的高可用集群系统

    1. 配置MySQL双主模式 1.修改my.cnf配置文件 默认情况下,MySQL的配置文件是/etc/my.cnf,在配置文件的[mysqld]段添加如下内容: server-id=1 log-bi ...

  9. nginx+keepalived高可用及双主模式

    高可用有2中方式. 1.Nginx+keepalived 主从配置 这种方案,使用一个vip地址,前端使用2台机器,一台做主,一台做备,但同时只有一台机器工作,另一台备份机器在主机器不出现故障的时候, ...

随机推荐

  1. 小程序开发基础-view视图容器

    view 视图容器. // wxml <view class="section"> <view class="section__title"& ...

  2. Linux shell脚本中shift的用法说明

    shift命令用于对参数的移动(左移),通常用于在不知道传入参数个数的情况下依次遍历每个参数然后进行相应处理(常见于Linux中各种程序的启动脚本). 示例1:依次读取输入的参数并打印参数个数:run ...

  3. nginx预防常见攻击

    目录 nginx防止DDOS攻击 概述 攻击手段 配置 限制请求率 限制连接的数量 关闭慢连接 设置 IP 黑名单 设置IP白名单 小站点解决方案 nginx防止CC攻击 概述 主动抑制方法 应用举例 ...

  4. sqlsever存储过程配合代理作业自动定时建表

    1.自动建表存储过程 USE [ThreeToOne] GO /****** Object:  StoredProcedure [dbo].[WTO_CreateTable_ScanDoXXX]    ...

  5. docker下编译mangoszero WOW60级服务端(三)

    开始构建WOW服务端通用镜像 第二篇文章中准备工作环节已经从github拉取了mangosd源代码,这里我们就可以直接开始编写dockerfile并进行编译 (1) 进入mangos/wow60/ma ...

  6. Eclipse里JAR文件的打包和使用

    作用:用于封装class.properties文件,是文件封装的最小单元:     包含Java类的普通库.资源(resources).辅助文件(auxiliary files)等.     可以将程 ...

  7. Raneto部署知识库平台&支持中文搜索

    目录 环境 更新软件包 部署 Raneto 知识库平台 安装 Node 环境 安装 node 管理工具 查看 node 列表 安装需要的Node版本 使用 淘宝NPM源 git 使用代理设置,大陆地区 ...

  8. Jenkins-2.154 windows平台部署 FAQ

    部署过程中遇到的问题及解决办法如下 1.如何将 Jenkins 汉化? 1.进入系统管理 -> 插件管理 -> 选中“可选插件” 标签 -> 在过滤条件中输入“local”进行查找插 ...

  9. iis问题

    1.8.5版本的iis配置完成,不能打开网页显示503.原因是应用程序池,加载用户配置文件失败,然后应用程序池关闭了.关闭它就可以正常打开了. server2008,打不开网页,打开url显示目录的原 ...

  10. Oracle知识点总结2

    1.聚合函数:也叫分组函数. 常用聚合函数:返回的都是NUMBER类型的值. 注:避免使用 COUNT(*) ,而使用 COUNT(ROWID) 2.分组统计:group by  字段名 having ...