Mysql集群
一:集群机器介绍
四台机器:
1.balance节点安装haproxy和keepalived
机器名:
balance01 172.18.48.1
balance02 172.18.48.2
2.galera节点安装mysql数据库和galera
机器名:
galera01 172.18.48.3
galera02 172.18.48.4
操作系统:ubuntu14.04 server64
注:每台机器/etc/hosts上要写上涉及到的所有对应的ip和主机名
二:balance节点安装
balance节点安装配置haproxy和keepalived
1./etc/sysctl.conf添加
vim /etc/sysctl.conf
net.ipv4.ip_nonlocal_bind=1
2.加载sysctl.conf
sysctl -p
3.安装haproxy和keepalived
apt-get install -y keepalived haproxy
4.创建/var/lib/haproxy
mkdir /var/lib/haproxy
5.把/var/lib/haproxy权限改为root所有
chown root:root /var/lib/haproxy/
6.vim /etc/keepalived/keepalived.conf
balance01添加如下:
global_defs {
notification_email {
root@[YOUR_DOMAIN_NAME]
}
notification_email_from keepalived@[YOUR_DOMAIN_NAME]
smtp_server localhost
smtp_connect_timeout 30
router_id balance01
}
vrrp_script haproxy {
script “killall -0 haproxy”
interval 2
weight 2
}
vrrp_instance 50 {
virtual_router_id 50
advert_int 1
priority 101
state MASTER
interface eth0
virtual_ipaddress {
172.18.48.20 dev eth0
}
track_script {
haproxy
}
}
balance02如下:
global_defs {
notification_email {
root@[YOUR_DOMAIN_NAME]
}
notification_email_from keepalived@[YOUR_DOMAIN_NAME]
smtp_server localhost
smtp_connect_timeout 30
router_id balance02
}
vrrp_script haproxy {
script “killall -0 haproxy”
interval 2
weight 2
}
vrrp_instance 50 {
virtual_router_id 50
advert_int 1
priority 101
state MASTER
interface eth0
virtual_ipaddress {
172.18.48.20 dev eth0
}
track_script {
haproxy
}
}
7.vim /etc/haproxy/haproxy.cfg
balance01上添加如下:
global
chroot /var/lib/haproxy
daemon
group haproxy
log 172.18.48.1 local0
maxconn 4000
pidfile /var/run/haproxy.pid
stats socket /var/lib/haproxy/stats
user haproxy
defaults
log global
maxconn 8000
option redispatch
retries 3
timeout http-request 10s
timeout queue 1m
timeout connect 10s
timeout client 1m
timeout server 1m
timeout check 10s
listen mysql_cluster
bind 172.18.48.20:3306
mode tcp
balance roundrobin
option mysql-check user root
option tcpka
server galera01 172.18.48.3:3306
server galera02 172.18.48.4:3306
balance02添加如下:
global
chroot /var/lib/haproxy
daemon
group haproxy
log 172.18.48.2 local0
maxconn 4000
pidfile /var/run/haproxy.pid
stats socket /var/lib/haproxy/stats
user haproxy
defaults
log global
maxconn 8000
option redispatch
retries 3
timeout http-request 10s
timeout queue 1m
timeout connect 10s
timeout client 1m
timeout server 1m
timeout check 10s
listen mysql_cluster
bind 172.18.48.20:3306
mode tcp
balance roundrobin
option mysql-check user root
option tcpka
server galera01 172.18.48.3:3306
server galera02 172.18.48.4:3306
8.balance节点修改/etc/default/haproxy
ENABLED=1
9.启动keepalived和haproxy
service keepalived restart
service haproxy restart
三:galera节点安装
(一)安装MariaDB,所有galera节点
1.安装软件源
sudo apt-get install software-properties-common
sudo apt-key adv –recv-keys –keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db
sudo add-apt-repository 'deb http://mirrors.hustunique.com/mariadb/repo/10.0/ubuntu trusty main'
2.安装MariaDB
sudo apt-get update
sudo apt-get install mariadb-server
(二)安装galera cluster,所有galera节点
1.安装软件安装源
apt-get install python-software-properties
apt-key adv –recv-keys –keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db
add-apt-repository 'deb http://mirror3.layerjet.com/mariadb/repo/5.5/ubuntu precise main'
apt-get update
2.安装galera包
DEBIAN_FRONTEND=noninteractive apt-get install -y rsync galera mariadb-galera-server
3.配置galera cluster
/etc/mysql/conf.d/galera.cnf
[mysqld]
mysql settings
binlog_format=ROW
default-storage-engine=innodb
innodb_autoinc_lock_mode=2
query_cache_size=0
query_cache_type=0
bind-address=0.0.0.0
galera settings
wsrep_provider=/usr/lib/galera/libgalera_smm.so
wsrep_cluster_name=“my_wsrep_cluster”
wsrep_cluster_address=“gcomm://172.18.48.3,172.18.48.4”
wsrep_sst_method=rsync
4.galera01和galera02关闭mysql
galera01 service mysql stop
galera02 service mysql stop
5.启动集群,第一个启动的节点要加上集群初始化命令,相当于主节点
galera01 service mysql start –wsrep-new-cluster
galera02 service mysql start
6.检查集群规模
galera01 mysql -u root -e 'SELECT VARIABLE_VALUE as “cluster size” FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME=“wsrep_cluster_size”'
+————–+
| cluster size |
+————–+
| 2 |
+————–+
7.在galera上创建数据库,并授权允许远程访问
mysql>create database nova;
mysql>GRANT ALL ON nova.* TO 'nova'@'%' IDENTIFIED BY 'password';
四:balance节点和galera的弹性和容灾
添加新节点时候直接重启服务即可,galera节点必须有一个主节点,即执行如下语句的节点:
service mysql start –wsrep-new-cluster

InnoDBBufferPool通过缓存数据和索引页来减少磁盘I/O,提升数据库性能。其工作原理包括:1.数据读取:从BufferPool中读取数据;2.数据写入:修改数据后写入BufferPool并定期刷新到磁盘;3.缓存管理:使用LRU算法管理缓存页;4.预读机制:提前加载相邻数据页。通过调整BufferPool大小和使用多个实例,可以优化数据库性能。

MySQL与其他编程语言相比,主要用于存储和管理数据,而其他语言如Python、Java、C 则用于逻辑处理和应用开发。 MySQL以其高性能、可扩展性和跨平台支持着称,适合数据管理需求,而其他语言在各自领域如数据分析、企业应用和系统编程中各有优势。

MySQL值得学习,因为它是强大的开源数据库管理系统,适用于数据存储、管理和分析。1)MySQL是关系型数据库,使用SQL操作数据,适合结构化数据管理。2)SQL语言是与MySQL交互的关键,支持CRUD操作。3)MySQL的工作原理包括客户端/服务器架构、存储引擎和查询优化器。4)基本用法包括创建数据库和表,高级用法涉及使用JOIN连接表。5)常见错误包括语法错误和权限问题,调试技巧包括检查语法和使用EXPLAIN命令。6)性能优化涉及使用索引、优化SQL语句和定期维护数据库。

MySQL适合初学者学习数据库技能。1.安装MySQL服务器和客户端工具。2.理解基本SQL查询,如SELECT。3.掌握数据操作:创建表、插入、更新、删除数据。4.学习高级技巧:子查询和窗口函数。5.调试和优化:检查语法、使用索引、避免SELECT*,并使用LIMIT。

MySQL通过表结构和SQL查询高效管理结构化数据,并通过外键实现表间关系。1.创建表时定义数据格式和类型。2.使用外键建立表间关系。3.通过索引和查询优化提高性能。4.定期备份和监控数据库确保数据安全和性能优化。

MySQL是一个开源的关系型数据库管理系统,广泛应用于Web开发。它的关键特性包括:1.支持多种存储引擎,如InnoDB和MyISAM,适用于不同场景;2.提供主从复制功能,利于负载均衡和数据备份;3.通过查询优化和索引使用提高查询效率。

SQL用于与MySQL数据库交互,实现数据的增、删、改、查及数据库设计。1)SQL通过SELECT、INSERT、UPDATE、DELETE语句进行数据操作;2)使用CREATE、ALTER、DROP语句进行数据库设计和管理;3)复杂查询和数据分析通过SQL实现,提升业务决策效率。

MySQL的基本操作包括创建数据库、表格,及使用SQL进行数据的CRUD操作。1.创建数据库:CREATEDATABASEmy_first_db;2.创建表格:CREATETABLEbooks(idINTAUTO_INCREMENTPRIMARYKEY,titleVARCHAR(100)NOTNULL,authorVARCHAR(100)NOTNULL,published_yearINT);3.插入数据:INSERTINTObooks(title,author,published_year)VA


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

SublimeText3 英文版
推荐:为Win版本,支持代码提示!

Dreamweaver Mac版
视觉化网页开发工具

禅工作室 13.0.1
功能强大的PHP集成开发环境

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能