bitscn.com		
	1、架构
	      vip 192.168..45.244
	      mysql-1:192.168.45.238
	      mysql-2:192.168.45.239
	2、mysql双主设置
	      192.168.45.238
	#vim /etc/my.cnf
	[client]
	port            = 3306
	socket          = /tmp/mysql.sock
	[mysqld]
	port            = 3306
	socket          = /tmp/mysql.sock
	datadir=/usr/local/mysql/var/
	skip-locking
	skip-name-resolve
	key_buffer = 64m
	max_allowed_packet = 64m
	table_cache = 2048
	sort_buffer_size = 4m
	net_buffer_length = 256k
	read_buffer_size = 10m
	read_rnd_buffer_size = 10m
	myisam_sort_buffer_size = 16m
	interactive_timeout = 240
	wait_timeout = 240
	max_connections = 800
	connect_timeout=30
	open_files_limit=8192
	query_cache_size = 1024m
	thread_cache_size=16
	thread_concurrency = 8
	long_query_time = 1
	log-slow-queries = slow.log
	innodb_additional_mem_pool_size = 8m
	innodb_buffer_pool_size = 32m
	innodb_log_buffer_size=8m
	innodb_log_file_size = 256m
	innodb_log_files_in_group = 3
	innodb_file_io_threads = 8
	innodb_lock_wait_timeout= 50
	innodb_thread_concurrency = 16
	innodb_file_per_table
	log_slave_updates
	expire_logs_days=7
	auto_increment_increment=2
	auto_increment_offset=2
	binlog_format=mixed
	log-bin=mysql-bin
	server-id       = 8
	[mysqldump]
	quick
	max_allowed_packet = 16m
	[mysql]
	no-auto-rehash
	[isamchk]
	key_buffer = 20m
	sort_buffer_size = 20m
	read_buffer = 2m
	write_buffer = 2m
	[myisamchk]
	key_buffer = 20m
	sort_buffer_size = 20m
	read_buffer = 2m
	write_buffer = 2m
	[mysqlhotcopy]
	interactive-timeout
	设置mysql复制账号
	mysql>grant replication slave on *.* to 'repl'@'192.168.45.238' identified by 'repl_123';
	mysql>grant replication slave on *.* to 'repl'@'192.168.45.239' identified by 'repl_123';
	 导出数据库
	#mysqldump -uroot -p --single-transaction --flush-logs --master-data=2 --all-databases > all.sql
	192.168.45.239
	mysql配置
	#vim /etc/my.cnf
	[client]
	port            = 3306
	socket          = /tmp/mysql.sock
	[mysqld]
	port            = 3306
	socket          = /tmp/mysql.sock
	datadir=/usr/local/mysql/var/
	skip-locking
	skip-name-resolve
	key_buffer = 64m
	max_allowed_packet = 64m
	table_cache = 128
	sort_buffer_size = 4m
	net_buffer_length = 256k
	read_buffer_size = 10m
	read_rnd_buffer_size = 10m
	myisam_sort_buffer_size = 64m
	interactive_timeout = 240
	wait_timeout = 240
	max_connections = 800
	connect_timeout=30
	open_files_limit=8192
	query_cache_size = 1024m
	thread_cache_size=16
	thread_concurrency = 8
	long_query_time = 1
	log-slow-queries = slow.log
	innodb_additional_mem_pool_size = 8m
	innodb_buffer_pool_size = 64m
	innodb_log_buffer_size=8m
	innodb_log_file_size = 256m
	innodb_log_files_in_group = 3
	innodb_file_io_threads = 8
	innodb_lock_wait_timeout= 50
	innodb_thread_concurrency = 16
	innodb_file_per_table
log_slave_updates
	expire_logs_days=7
	auto_increment_increment=2
	auto_increment_offset=1
	binlog_format=mixed
	log-bin=mysql-bin
	server-id       = 9
	[mysqldump]
	quick
	max_allowed_packet = 16m
	[mysql]
	no-auto-rehash
	[isamchk]
	key_buffer = 20m
	sort_buffer_size = 20m
	read_buffer = 2m
	write_buffer = 2m
	[myisamchk]
	key_buffer = 20m
	sort_buffer_size = 20m
	read_buffer = 2m
	write_buffer = 2m
	[mysqlhotcopy]
	interactive-timeout
	导入主库数据
	#mysql -uroot -p 	设置同步
	mysql> change master to master_host='192.168.45.238',master_port='3306',master_user='repl',master_password='repl_123',master_log_file='mysql-bin.000004',master_log_pos=106;
	mysql> start slave;
	在192.168.45.238上设置同步
	mysql>change master tomaster_host='192.168.45.239',master_port='3306',master_user='repl',master_password='repl_123',master_log_file='mysql-bin.000008',master_log_pos=105020214;
	mysql>start slave;
	3、配置keepalived
	192.168.45.238
	192.168.45.239
	安装keepalived
	wget http://www.keepalived.org/software/keepalived-1.2.2.tar.gz
	tar zxvf keepalived-1.2.2.tar.gz
	cd keepalived-1.2.2
	./configure --prefix=/
	make
	make install
	192.168.45.238 keepalived 配置
	6># vim /etc/keepalived/keepalived.conf
	! configuration file for keepalived
	global_defs {
	    router_id yuangnag.com
	}
	vrrp_script check_run {
	    script /root/keepalived_check_mysql.sh
	    interval 5
	}
	vrrp_sync_group vg1 {
	     group {
	        vi_1
	     }
	}
	vrrp_instance vi_1 {
	     state master
	     interface eth0
	     virtual_router_id 88
	     priority 100
	     advert_int 1
	     nopreempt
	     authentication {
	         auth_type pass
	         auth_pass yuangang.net
	     }
	     track_script {
	         check_run
	     }
	     virtual_ipaddress {
	         192.168.45.244
	     }
	}
	检测mysql脚本配置(两台mysql一样的配置)
	#vim #!/bin/bash
	mysql=/usr/local/mysql/bin/mysql
	mysql_host=localhost
	mysql_user=root
	mysql_password=
	check_time=3
	#mysql  is working mysql_ok is 1 , mysql down mysql_ok is 0
	mysql_ok=1
	function check_mysql_helth (){
	$mysql -h $mysql_host -u $mysql_user -e show status; >/dev/null 2>&1
	if [ $? = 0 ] ;then
	     mysql_ok=1
	else
	     mysql_ok=0
	fi
	     return $mysql_ok
	}
	while [ $check_time -ne 0 ]
	do
	     let check_time -= 1
	     check_mysql_helth
	if [ $mysql_ok = 1 ] ; then
	     check_time=0
	     exit 0
	fi
	if [ $mysql_ok -eq 0 ] &&  [ $check_time -eq 0 ]
	then
	     /etc/init.d/keepalived stop
	exit 1
	fi
	sleep 1
	done
	#!/bin/bash
	mysql=/usr/local/mysql/bin/mysql
	mysql_host=localhost
	mysql_user=root
	mysql_password=
	check_time=3
	#mysql  is working mysql_ok is 1 , mysql down mysql_ok is 0
	mysql_ok=1
	function check_mysql_helth (){
	$mysql -h $mysql_host -u $mysql_user -e show status; >/dev/null 2>&1
	if [ $? = 0 ] ;then
	     mysql_ok=1
	else
	     mysql_ok=0
	fi
	     return $mysql_ok
	}
	while [ $check_time -ne 0 ]
	do
	     let check_time -= 1
	     check_mysql_helth
	if [ $mysql_ok = 1 ] ; then
	     check_time=0
	     exit 0
	fi
	if [ $mysql_ok -eq 0 ] &&  [ $check_time -eq 0 ]
	then
	     /etc/init.d/keepalived stop
	exit 1
	fi
	sleep 1
	done
	chmod 755  /root/keepalived_check_mysql.sh
	192.168.45.239 keepalived配置
	# vim /etc/keepalived/keepalived.conf
	! configuration file for keepalived
	global_defs {
	    router_id yuangang.com
	}
	vrrp_script check_run {
	    script /root/keepalived_check_mysql.sh
	    interval 5
	}
	vrrp_sync_group vg1 {
	     group {
	       vi_1
	     }
	}
	vrrp_instance vi_1 {
	     state backup
	     interface eth0
	     virtual_router_id 88
	     priority 80
	     advert_int 1
	     authentication {
	         auth_type pass
	         auth_pass yuangang.com
	     }
	     track_script {
	         check_run
	     }
	     virtual_ipaddress {
	         192.168.45.244
	     }
	}
	启动 238上的keepalived mysql
	/etc/init.d/keepalived start
	/etc/init.d/mysqld start
	启动239上的keepalived mysql
	/etc/init.d/keepalived start
	/etc/init.d/mysqld start
	测试,关闭238上的mysql在另外一台机器上用vip连接mysql
	            关闭239上的mysql在另外一台机器上用vip连接mysql
	作者“linux运维”
						bitscn.com
   
 
   