Mysql的主从复制读写分离--简单篇

Mysql基础拓扑图:

Mysql环境准备:

一台mysql主服务器(安装mysql)

两台mysql从服务器(安装mysql)

一台mysql代理(安装amoeba和java)

一台mysql客户端(mysql客户端)

部署前先关闭所有的iptables,selinux

Mysql的主从复制读写分离所需安装包:

cmake-2.8.6.tar.gz

mysql-5.5.22.tar.gz

amoeba-mysql-binary-2.2.0.tar.gz

jdk-7u65-linux-x64.tar.gz

jdk-6u14-linux-x64.bin

ncurses-devel

部署一个时间服务器来进行时间同步:

yum -y install ntp

编辑配置文件添加如下行:

server 127.127.1.0
fudge 127.127.1.0 stratum 8

重启服务:

客户端安装软件同步:

yum -y install ntp-date

/usr/sbin/ntpdate 99.99.99.22



安装mysql独特的编译安装软件cmake:

tar zxf /root/cmake-2.8.6.tar.gz -C /root/
cd /root/cmake-2.8.6

./configure && gmake && gmake install

安装mysql依赖包:

yum -y install ncurses-devel

编译安装mysql

tar zxf /root/mysql-5.5.22.tar.gz -C /usr/src
cd /usr/src/mysql-5.5.22

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DSYSCONFDIR=/etc \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all
make && make install

授权数据库用户:
useradd -M -s /sbin/nologin mysql -g mysql
chown -R mysql:mysql /usr/local/mysql

初始化数据库:

/usr/local/mysql/scripts/mysql_install_db \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data/

优化数据库

cp -rf /usr/src/$MY_Q/support-files/my-medium.cnf /etc/my.cnf

cp -rf /usr/src/$MY_Q/support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
chkconfig --add mysqld

chkconfig mysqld on

启动数据库并设置密码:

echo "PATH=$PATH:/usr/local/mysql/bin" >>/etc/profile

source /etc/profile

/etc/init.d/mysqld start

mysqladmin -uroot password ‘123123‘



配置Mysql主服务器

vim /etc/my.cnf

server-id       = 11   #改

log-bin=master-bin  #改

log-slave-updates=true   #添加

重启服务:

/etc/init.d/mysqld restart

登陆Mysql给服务器授权

[[email protected] ~]# mysql -uroot -p123123
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.5.22-log Source distribution
Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.
mysql>grant replication slave on *.* to ‘myslave‘@‘99.99.99.%‘ identified by ‘123123‘;
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> show master status ;
+-------------------+----------+--------------+------------------+
| File              | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+-------------------+----------+--------------+------------------+
| master-bin.000002 |      336 |              |                  |
+-------------------+----------+--------------+------------------+
1 row in set (0.00 sec)

从服务器的数据库与主服务器一致,不需要配置任何命令。

配置第一个从服务器添加如下行:

vim /etc/my.cnf
server-id       = 22   #改
relay-log=relay-log-bin   #添加
relay-log-index=slave-relay-bin.index  #添加

重启服务:

service mysqld restart

配置数据库:

[[email protected] ~]# mysql -uroot -p123123
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.5.22-log Source distribution

Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.

mysql> change master to master_host=‘99.99.99.22‘,master_user=‘myslave‘,master_password=‘123123‘,master_log_file=‘master-bin.000001‘,master_log_pos=336;
start slave;
show slave status\G;
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes

配置第二个从服务器添加如下行:

vim /etc/my.cnf

server-id       = 33  #改
relay-log=relay-log-bin   #添加
relay-log-index=slave-relay-bin.index  #添加

重启服务:

/etc/init.d/mysqld restart

配置mysql数据库:

[[email protected] ~]# mysql -uroot -p123123
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.5.22-log Source distribution

Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.

mysql> change master to master_host=‘99.99.99.22‘,master_user=‘myslave‘,master_password=‘123123‘,master_log_file=‘master-bin.000001‘,master_log_pos=336;
start slave;
show slave status\G;
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes

验证主从复制的效果

登陆主服务器,创建数据库:

从服务器查看:



实现Mysql的读写分离(待续):

时间: 2024-10-25 07:25:43

Mysql的主从复制读写分离--简单篇的相关文章

Ansible-playbook自动部署mysql的主从复制读写分离

目录结构: Ansible-mysql-replication ├── group_vars │   ├── all │   ├── mysql-proxy │   └── mysql-slave ├── hosts ├── mysql-replication.retry ├── mysql-replication.yml └── roles     ├── amoeba     │   ├── files     │   │   ├── amoeba-mysql-3.0.5-RC-distri

mysql数据业务垂直+水平分割+主从复制读写分离

友情提示:本人第一次写技术博客,会继续完善,尽量做到图文并茂,通俗易懂,如果有什么写的不好的地方,还请大家多多提意见,您的意见将是我宝贵的资源.如果有兴趣的话,还可以一起讨论相关技术哦,亲!一定要注意软件版本哦! 联系方式 QQ:794884160 指导老师:双星  冯德勇老师  曾勇老师 一.拓扑图: 垂直+水平分割+主从复制+读写分离完整原理图: 仅说明原理,详细拓扑及参数参考本次实验拓扑图 本次试验拓扑图:(上图左侧部分) 二.实验描述: 根据业务原型先进行数据库垂直切割,然后用户数据根据

mysql主从复制读写分离-Altas

mysql主从复制读写分离 本文读写分离使用的软件是Altas,altas是奇虎360公司开发的开源数据库代理软件.它是基于mysql-proxy开发而成的 它集中地响应应用的请求,依据用户事先设置的规则,将SQL请求发送到特定的数据库上执行.基于此可以实现负载均衡.读写分离.高可用性等需求. mysql读写分离原理: 数据库层在高并发的情况下,i/o会产生瓶颈.而实际上用户读的请求要远远大于写的请求. 使用代理服务作为数据库前端,将不同的请求根据规则分配到不同的后端数据上面去,比如将写的请求分

【实战】Amoeba 代理 MySQL 主从复制 + 读写分离 【提供源码包】

目录简介: 1· Amoeba 的介绍2· MySQL 主从复制原理3· MySQL 读写分离原理4· 实战案例5· 总结归纳 Amoeba 的介绍 1)Amoeba 是什么: 1·Amoeba 的中文名是:变形虫.它是一个以MySQL为底层数据存储,并对应用提供MySQL协议接口的proxy.它集中地响应应用的请求,依据用户事先设置的规则,将SQL请求发送到特定的数据库上执行.基于此可以实现负载均衡.读写分离.高可用性等需求. 2·Amoeba相当于一个SQL请求的路由器,目的是为负载均衡.读

mysql主从复制读写分离之——proxysql应用

一.说明ProxySQL是一个开源的MySQL代理服务器,这意味着它充当MySQL服务器和访问其数据库的应用程序之间的中介.ProxySQL可以通过在多个数据库服务器池之间分配流量来提高性能,并且如果一个或多个数据库服务器发生故障,还可以通过自动故障切换到备用数据库来提高可用性. 系统环境:master1:ubuntu16.04 mysql5.6 192.168.1.10 3307 master2:ubuntu16.04 mysql5.6 192.168.1.20 3307slave1: ubu

Mysql主从配置+读写分离(转)

   MySQL从5.5版本开始,通过./configure进行编译配置方式已经被取消,取而代之的是cmake工具.因此,我们首先要在系统中源码编译安装cmake工具. 注:安装前须查看是否已经安装了如下依赖包,如果没有请安装. apt-get -y install gcc g++ libncurses5-dev ncurses-devel openssl 一.主库安装及配置 1.源码安装cmake # tar xf cmake-3.0.0.tar.gz # cd cmake-3.0.0 # .

docker-compose.yml样例(mysql主从+mycat读写分离)

Docker-compose.yml文件示例 1.mysql主从复制的docker-compose.yml文件 # cat docker-compose.yml version: '2' # 这个version是指dockerfile解析时用的版本,不是给我们自己定义版本号用的. services: m1: # master build: ./master # ./master文件下需要有Dockerfile文件,并且build属性和image属性不能一起使用 container_name: m

利用oneproxy部署mysql数据库的读写分离

实验系统:CentOS 6.6_x86_64 实验前提:防火墙和selinux都关闭 实验说明:本实验共有4台主机,IP分配如拓扑 实验软件:mariadb-10.0.20 oneproxy-rhel5-linux64-v5.6-ga 下载地址:http://pan.baidu.com/s/1jGpL2o2 实验拓扑: 注意:本实验是之前mysql-proxy实验的拓展,因此大部分环境及设定是相同的,其中一.二步这里不再重复,具体请参考:利用mysql-proxy进行mysql数据库的读写分离

Mysql主从配置+读写分离

Mysql主从配置+读写分离     MySQL从5.5版本开始,通过./configure进行编译配置方式已经被取消,取而代之的是cmake工具.因此,我们首先要在系统中源码编译安装cmake工具. 注:安装前须查看是否已经安装了如下依赖包,如果没有请安装. apt-get -y install gcc g++ libncurses5-dev ncurses-devel openssl   一.主库安装及配置 1.源码安装cmake # tar xf cmake-3.0.0.tar.gz #