찾다
데이터 베이스MySQL 튜토리얼mysql双主复制并利用keepalived做高可用_MySQL

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
성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
MySQL : 초보자가 마스터하는 필수 기술MySQL : 초보자가 마스터하는 필수 기술Apr 18, 2025 am 12:24 AM

MySQL은 초보자가 데이터베이스 기술을 배우는 데 적합합니다. 1. MySQL 서버 및 클라이언트 도구를 설치하십시오. 2. SELECT와 같은 기본 SQL 쿼리를 이해하십시오. 3. 마스터 데이터 작업 : 데이터를 만들고, 삽입, 업데이트 및 삭제합니다. 4. 고급 기술 배우기 : 하위 쿼리 및 창 함수. 5. 디버깅 및 최적화 : 구문 확인, 인덱스 사용, 선택*을 피하고 제한을 사용하십시오.

MySQL : 구조화 된 데이터 및 관계형 데이터베이스MySQL : 구조화 된 데이터 및 관계형 데이터베이스Apr 18, 2025 am 12:22 AM

MySQL은 테이블 구조 및 SQL 쿼리를 통해 구조화 된 데이터를 효율적으로 관리하고 외래 키를 통해 테이블 ​​간 관계를 구현합니다. 1. 테이블을 만들 때 데이터 형식을 정의하고 입력하십시오. 2. 외래 키를 사용하여 테이블 간의 관계를 설정하십시오. 3. 인덱싱 및 쿼리 최적화를 통해 성능을 향상시킵니다. 4. 데이터 보안 및 성능 최적화를 보장하기 위해 데이터베이스를 정기적으로 백업 및 모니터링합니다.

MySQL : 주요 기능 및 기능이 설명되었습니다MySQL : 주요 기능 및 기능이 설명되었습니다Apr 18, 2025 am 12:17 AM

MySQL은 웹 개발에 널리 사용되는 오픈 소스 관계형 데이터베이스 관리 시스템입니다. 주요 기능에는 다음이 포함됩니다. 1. 다른 시나리오에 적합한 InnoDB 및 MyISAM과 같은 여러 스토리지 엔진을 지원합니다. 2.로드 밸런싱 및 데이터 백업을 용이하게하기 위해 마스터 슬레이브 복제 기능을 제공합니다. 3. 쿼리 최적화 및 색인 사용을 통해 쿼리 효율성을 향상시킵니다.

SQL의 목적 : MySQL 데이터베이스와 상호 작용합니다SQL의 목적 : MySQL 데이터베이스와 상호 작용합니다Apr 18, 2025 am 12:12 AM

SQL은 MySQL 데이터베이스와 상호 작용하여 데이터 첨가, 삭제, 수정, 검사 및 데이터베이스 설계를 실현하는 데 사용됩니다. 1) SQL은 Select, Insert, Update, Delete 문을 통해 데이터 작업을 수행합니다. 2) 데이터베이스 설계 및 관리에 대한 생성, 변경, 삭제 문을 사용하십시오. 3) 복잡한 쿼리 및 데이터 분석은 SQL을 통해 구현되어 비즈니스 의사 결정 효율성을 향상시킵니다.

초보자를위한 MySQL : 데이터베이스 관리를 시작합니다초보자를위한 MySQL : 데이터베이스 관리를 시작합니다Apr 18, 2025 am 12:10 AM

MySQL의 기본 작업에는 데이터베이스, 테이블 작성 및 SQL을 사용하여 데이터에서 CRUD 작업을 수행하는 것이 포함됩니다. 1. 데이터베이스 생성 : createAbasemy_first_db; 2. 테이블 만들기 : CreateTableBooks (idintauto_incrementprimarykey, titlevarchar (100) notnull, authorvarchar (100) notnull, published_yearint); 3. 데이터 삽입 : InsertIntobooks (Title, Author, Published_year) VA

MySQL의 역할 : 웹 응용 프로그램의 데이터베이스MySQL의 역할 : 웹 응용 프로그램의 데이터베이스Apr 17, 2025 am 12:23 AM

웹 응용 프로그램에서 MySQL의 주요 역할은 데이터를 저장하고 관리하는 것입니다. 1. MySQL은 사용자 정보, 제품 카탈로그, 트랜잭션 레코드 및 기타 데이터를 효율적으로 처리합니다. 2. SQL 쿼리를 통해 개발자는 데이터베이스에서 정보를 추출하여 동적 컨텐츠를 생성 할 수 있습니다. 3.mysql은 클라이언트-서버 모델을 기반으로 작동하여 허용 가능한 쿼리 속도를 보장합니다.

MySQL : 첫 번째 데이터베이스 구축MySQL : 첫 번째 데이터베이스 구축Apr 17, 2025 am 12:22 AM

MySQL 데이터베이스를 구축하는 단계에는 다음이 포함됩니다. 1. 데이터베이스 및 테이블 작성, 2. 데이터 삽입 및 3. 쿼리를 수행하십시오. 먼저 CreateAbase 및 CreateTable 문을 사용하여 데이터베이스 및 테이블을 작성한 다음 InsertInto 문을 사용하여 데이터를 삽입 한 다음 최종적으로 SELECT 문을 사용하여 데이터를 쿼리하십시오.

MySQL : 데이터 저장에 대한 초보자 친화적 인 접근 방식MySQL : 데이터 저장에 대한 초보자 친화적 인 접근 방식Apr 17, 2025 am 12:21 AM

MySQL은 사용하기 쉽고 강력하기 때문에 초보자에게 적합합니다. 1.MySQL은 관계형 데이터베이스이며 CRUD 작업에 SQL을 사용합니다. 2. 설치가 간단하고 루트 사용자 비밀번호를 구성해야합니다. 3. 삽입, 업데이트, 삭제 및 선택하여 데이터 작업을 수행하십시오. 4. Orderby, Where and Join은 복잡한 쿼리에 사용될 수 있습니다. 5. 디버깅은 구문을 확인하고 쿼리를 분석하기 위해 설명을 사용해야합니다. 6. 최적화 제안에는 인덱스 사용, 올바른 데이터 유형 선택 및 우수한 프로그래밍 습관이 포함됩니다.

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

PhpStorm 맥 버전

PhpStorm 맥 버전

최신(2018.2.1) 전문 PHP 통합 개발 도구

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

SublimeText3 영어 버전

SublimeText3 영어 버전

권장 사항: Win 버전, 코드 프롬프트 지원!

Atom Editor Mac 버전 다운로드

Atom Editor Mac 버전 다운로드

가장 인기 있는 오픈 소스 편집기

Dreamweaver Mac版

Dreamweaver Mac版

시각적 웹 개발 도구