mysql主从复制及失败切换
mysql软件包:mysql-5.6.17.tar.gz
[root@db src]# uname -a
Linux db.jrzj.com 2.6.32-358.el6.x86_64 #1 SMP Fri Feb 22 00:31:26 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
[root@backup yum.repos.d]# uname -a
Linux backup.jrzj.com 2.6.32-358.el6.x86_64 #1 SMP Fri Feb 22 00:31:26 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
[root@db cmake-2.8.12.2]# yum install gcc
[root@db cmake-2.8.12.2]# yum install gcc-C++
[root@db cmake-2.8.12.2]# yum install make
[root@db cmake-2.8.12.2]# ./configure
[root@db cmake-2.8.12.2]# make && make install
[root@db mysql-5.6.17]# useradd mysql
[root@db mysql-5.6.17]# mkdir /data/
[root@db mysql-5.6.17]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/ -DMYSQL_UNIX_ADDR=/tmp/mysqld.sock -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=GBK -DDEFAULT_COLLATION=gbk_chinese_ci
[root@db mysql-5.6.17]# make && make install
error for cmake
CMake Error at cmake/readline.cmake:85 (MESSAGE):
Curses library not found. Please install appropriate package,
remove CMakeCache.txt and rerun cmake.On Debian/Ubuntu, package name is libncurses5-dev, on Redhat and derivates it is ncurses-devel.
Call Stack (most recent call first):
cmake/readline.cmake:128 (FIND_CURSES)
cmake/readline.cmake:202 (MYSQL_USE_BUNDLED_EDITLINE)
CMakeLists.txt:411 (MYSQL_CHECK_EDITLINE)
[root@db mysql-5.6.17]# yum install ncurses-devel
[root@db mysql-5.6.17]# rm CMakeCache.txt
rm:是否删除普通文件 "CMakeCache.txt"?y
[root@db /]# chown -R mysql.mysql /usr/local/mysql
[root@db /]# chown -R mysql.mysql /data/
[root@db /]# cd /usr/local/mysql/scripts
[root@db scripts]# ./mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/data/ --collation-server=gbk_chinese_ci
[root@db scripts]# cd ../support-files/
[root@db support-files]# cp mysql.server /etc/rc.d/init.d/mysqld
[root@db support-files]# chkconfig --add mysqld
[root@db support-files]# chkconfig mysqld on
[root@db support-files]# echo 'PATH=$PATH:/usr/local/mysql/bin/' >> /etc/profile
[root@db support-files]# source /etc/profile
[root@db support-files]# mysql_secure_installation
[root@db support-files]# service mysqld start
Starting MySQL. SUCCESS!
[root@db support-files]# mysqladmin -u root password 1234qwer
[root@db support-files]# mysql -u root -p
Enter password:
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> status
--------------
mysql Ver 14.14 Distrib 5.6.17, for Linux (x86_64) using EditLine wrapper
Connection id:7
Current database:
Current user:root@localhost
SSL:Not in use
Current pager:stdout
Using outfile:''
Using delimiter:;
Server version:5.6.17 Source distribution
Protocol version:10
Connection:Localhost via UNIX socket
Server characterset:gbk
Db characterset:gbk
Client characterset:gbk
Conn. characterset:gbk
UNIX socket:/tmp/mysqld.sock
Uptime:4 min 33 sec
Threads: 1 Questions: 19 Slow queries: 0 Opens: 67 Flush tables: 1 Open tables: 60 Queries per second avg: 0.069
--------------
grant all privileges on *.* to root@'%' identified by "root";
mysql -h 192.168.0.176-u root -p
[root@db etc]# mysql -u root -p
Enter password:
mysql> create user jrzj IDENTIFIED BY '123456';
Query OK, 0 rows affected (0.00 sec)
mysql> GRANT REPLICATION SLAVE ON *.* to 'jrzj'@'192.168.0.176' identified by '1234qwer';
Query OK, 0 rows affected (0.00 sec)
[root@db etc]# vim /etc/my.cnf
server_id=177
log-bin=jrzj-bin
[root@db etc]# service mysqld restart
Shutting down MySQL.. SUCCESS!
Starting MySQL. SUCCESS!
查看日志偏移量:
mysql> show master status \G
*************************** 1. row ***************************
File: jrzj-bin.000002
Position: 120
Binlog_Do_DB:
Binlog_Ignore_DB:
Executed_Gtid_Set:
1 row in set (0.00 sec)
mysql> flush tables with read lock;
导出数据库:
[root@db tmp]# mysqldump -p3306 -uroot -p -S /tmp/mysqld.sock --all-databases > /tmp/mysql.sql
[root@db etc]# vim /etc/my.cnf
server_id=176
[root@backup tmp]# mysql -uroot -p < /tmp/mysql.sql
mysql> change master to
-> master_host='192.168.0.177',
-> master_user='jrzj',
-> master_password='1234qwer',
-> master_port=3306,
-> master_log_file='jrzj-bin.000002',
-> master_log_pos=120;
mysql> show slave status\G;
***************************1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host:192.168.0.177
Master_User: jrzj
Master_Port:3306
Connect_Retry:60
Master_Log_File: jrzj-bin.000002
Read_Master_Log_Pos:120
Relay_Log_File: backup-relay-bin.000002
Relay_Log_Pos:282
Relay_Master_Log_File: jrzj-bin.000002
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno:0
Last_Error:
Skip_Counter:0
Exec_Master_Log_Pos:120
Relay_Log_Space:456
Until_Condition: None
Until_Log_File:
Until_Log_Pos:0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master:0
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno:0
Last_IO_Error:
Last_SQL_Errno:0
Last_SQL_Error:
Replicate_Ignore_Server_Ids:
Master_Server_Id:177
Master_UUID: e0fe5f94-c633-11e3-8f4e-0050568ea576
Master_Info_File:/data/master.info
SQL_Delay:0
SQL_Remaining_Delay: NULL
Slave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update it
Master_Retry_Count:86400
Master_Bind:
Last_IO_Error_Timestamp:
Last_SQL_Error_Timestamp:
Master_SSL_Crl:
Master_SSL_Crlpath:
Retrieved_Gtid_Set:
Executed_Gtid_Set:
Auto_Position:0
0.176/0.177
[root@db tmp]# yum install ipvsadm keepalived
[root@db tmp]# chkconfig keepalived on
[root@db tmp]# cat /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
yangjob2013@126.com
}
notification_email_from yangjob2013@126.com
smtp_server smtp.126.com
smtp_connect_timeout 30
router_id HA
}
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 100
advert_int 1
preempt
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.0.16
}
}
[root@db tmp]# cat /tmp/check_mysql.sh
MYSQL="/usr/local/mysql/bin/mysql"
MYSQL_HOST=127.0.0.1
MYSQL_USER=root
MYSQL_PASSWORD=1234qwer
LOG_FILE="/tmp/log/check_mysql.log"
MYSQL_OK=1 # mysql is working MYSQL_OK is 1 , mysql down MYSQL_OK is 0
check_mysql_helth()
{
$MYSQL -h$MYSQL_HOST -u$MYSQL_USER -p${MYSQL_PASSWORD} -e "show status" &>/dev/null
if [ $? = 0 ] ; then
MYSQL_OK=1
else
MYSQL_OK=0
fi
return $MYSQL_OK
}
check_keepalived()
{
ps -ef | grep keepalived | grep -v grep > /dev/null
if [ $? = 0 ];then
keepalived_OK=1
else
keepalived_OK=0
fi
return $keepalived_OK
}
while :
do
CHECK_TIME=3
while [ $CHECK_TIME -ne 0 ]
do
let "CHECK_TIME -= 1"
check_mysql_helth
if [ $MYSQL_OK == 1 ];then
check_keepalived
if [ $keepalived_OK == 1 ];then
break
else
service keepalived start >>$LOG_FILE
break
fi
elif [ $MYSQL_OK -eq 0 ] && [ $CHECK_TIME -eq 0 ];then
service keepalived stop >> $LOG_FILE
echo `date --date=today +"%Y-%M-%d %H:%m:%S"` - [INFO] - mysql invaild. keepalived stop. >> $LOG_FILE
fi
done
done
[root@db tmp]#service mysqld start
[root@db tmp]#service keepalibed start
[root@db tmp]# nohup ./check_mysql.sh &
转载于:https://blog.51cto.com/crazyants/1406451
mysql主从复制及失败切换相关推荐
- mysql主从代替技术_mysql主从复制及失败切换
软件环境: mysql软件包:mysql-5.6.17.tar.gz cmake软件包:cmake-2.8.12.2.tar.gz @ wget http://www.cmake.org/files ...
- [转]微服务轮子项目(27) -MySQL 主从复制、主从切换、主主复制
文章目录 1. 主从复制 1.1 主库安装 1.1.1 创建配置文件 1.1.2 启动主库 1.1.3 主库创建用于同步的账号 1.2 从库安装 1.2.1 创建配置文件 1.2.2 启动从库 1.2 ...
- mysql 5.7 主从切换_mysql5.7 主从复制的正常切换【转】
目前环境如下: master server IP:172.17.61.131 slave server IP:172.17.61.132 mysql version: mysql-5.7.21-lin ...
- Mysql主从复制手动切换步骤
与Oracle DataGuard切换原理类似,主.从复制也分为计划性切换和故障切换两种方式.其中,计划性切换的关键步骤如下列所示,而故障切换则更为简单,只需要单独执行下列的步骤4)即可实现. 1.关 ...
- mysql主从复制原理详解_MySQL主从复制没使用过?三大步骤让你从原理、业务上理解透彻...
成长是一棵树,总是在你不知不觉的情况下快乐长大:成长是一株草,总是在你不知不觉的情况下长满大地:成长是一朵花,总是在你不知不觉的情况下开满山头. 这不,随着时间的迁移.项目网站的用户量.数据量持续上升 ...
- mysql 硬负载_为啥单机MySQL又遭遇瓶颈?MySQL主从复制替你解决单机问题
成长是一棵树,总是在你不知不觉的情况下快乐长大:成长是一株草,总是在你不知不觉的情况下长满大地:成长是一朵花,总是在你不知不觉的情况下开满山头. 这不,随着时间的迁移.项目网站的用户量.数据量持续上升 ...
- MySQL主从复制原理、半同步操作步骤及原理
MySQL主从复制原理.半同步操作步骤及原理 1.1 企业Linux运维场景数据同步方案 1.1.1 文件级别的异机同步方案 1.scp/sftp/nc 命令可以实现远程数据同步. 2.搭建ftp/h ...
- MySQL主从复制虽好,能完美解决数据库单点问题吗?
点击上方"朱小厮的博客",选择"设为星标" 回复"1024"获取独家整理的学习资料 一.单个数据库服务器的缺点 数据库服务器存在单点问题: ...
- MySQL主从复制能完美解决数据库单点问题吗?
一.单个数据库服务器的缺点 数据库服务器存在单点问题: 数据库服务器资源无法满足增长的读写请求: 高峰时数据库连接数经常超过上限. 二.如何解决单点问题 增加额外的数据库服务器,组建数据库集群: 同一 ...
最新文章
- sqlserver字段选择参照
- SQL中varchar和nvarchar有什么区别?
- 版本1.8.1Go安装以及语法高亮配置
- 学习组合模式,转载一段有关组合模式的详解
- 如何在Wireshark确定数据集?
- Java 算法 最大体积
- 计算机英语词汇mp3,【听单词】常用半导体英语词汇大全52,半导体专业英语单词MP3...
- python turtle画阴阳_Python turtle绘制阴阳太极图代码解析
- 数字电子技术基础(十三):时序逻辑电路(状态机)(移位寄存器、计数器、信号发生器)
- 无锁(Lock-Free)编程简介及漫谈
- 使用python发送qq邮件
- python植树问题代码_小学数学最难的13种典型题,让孩子吃透了,拿高分不难!...
- 上游任务upstream task
- SQL 已死,NoSQL才是王道?醒醒吧,别瞎说八道了
- 中小企业 数量 e-mail_【深圳】市中小企业服务局关于发布2021年深圳市工业设计发展扶持计划工业设计走进中小微制造企业扶持项目申请指南的通知...
- Python基础与拾遗1:Python中的数字
- 从兴电子笔试题目小结
- 计算机术语pc是什么意思,pc_pc是什么意思-太平洋IT百科
- NLM_B-A non-local algorithm for image denoising分享
- Docker创建容器时指定IP
热门文章
- hdu5247找连续数(打表)
- POJ2118基础矩阵快速幂
- 操作系统原理第四章:线程
- C语言-一维数组与指针
- 【错误记录】解压 Linux 内核报错 ( Can not create symbolic link : 客户端没有所需的特权 | Windows 中配置 7z 命令行执行解压操作 )
- 【Android 逆向】Android 进程注入工具开发 ( SO 进程注入环境及 root 权限获取 | 进程注入时序分析 )
- 【Android 插件化】基于插件化的恶意软件的加载策略分析 ( 自定义路径加载插件 | 系统路径加载插件 | 用户同意后加载插件 | 隐藏恶意插件 )
- 【Qt】Qt 开发桌面程序 ( Qt 版本 5.14.2 | 编辑 Qt 桌面按钮控件 | 修改按钮文本 | 为按钮添加点击事件 | 系统调用 | 去掉系统调用命令窗口 )
- 【Visual Studio 2019】创建 MFC 桌面程序 ( 安装 MFC 开发组件 | 创建 MFC 应用 | MFC 应用窗口编辑 | 为按钮添加点击事件 | 修改按钮文字 | 打开应用 )
- IOS文本框readonly时焦点事件