mysql的主从复制以及读写分离

本文介绍了如何配置MySQL的主从复制和读写分离。首先,通过安装ntp、mysql并同步时间来确保一致性。接着,详细阐述了在三台服务器上安装、配置MySQL的步骤,包括开启二进制日志、设置服务器ID、配置主从复制账号等。最后,通过配置amoeba实现读写分离,详细描述了amoeba的安装、配置及启动过程,确保读操作分散到从服务器,写操作集中在主服务器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先配置主从复制

1.安装ntp

yum -y ntp

修改ntp的配置文件

[root@centos ~]# vim /etc/ntp.conf 

设置ntp开机自动启动

两台从服务器同步时间

安装mysql

安装依赖配置文件

挂载光盘

mount /dev/cdrom /mnt

将mysql解压到/usr/src下

[root@centos ~]# tar zxvf /mnt/mysql-5.5.22.tar.gz -C /usr/src

将mysql复制到192.168.100.20和192.168.100.30中

[root@centos ~]# scp /mnt/mysql-5.5.22.tar.gz root@192.168.100.20:/usr/src

[root@centos ~]# scp /mnt/mysql-5.5.22.tar.gz root@192.168.100.30:/usr/src

进入到 /usr/src/mysql-5.5.22/中

cd /usr/src/mysql-5.5.22/

使用cmake编译

[root@centos mysql-5.5.22]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all -DSYSCONFDIR=/etc

然后执行编译安装

make && make install

[root@centos mysql-5.5.22]# cp support-files/my-medium.cnf /etc/my.cnf       
cp:是否覆盖"/etc/my.cnf"? y
[root@centos mysql-5.5.22]# rm -rf /etc/my.conf
[root@centos mysql-5.5.22]# cp support-files/mysql.server /etc/init.d/mysqld        
[root@centos mysql-5.5.22]# chmod +x /etc/init.d/mysqld

优化mysql:命令优化

[root@centos mysql-5.5.22]# vim /etc/profile

[root@centos mysql-5.5.22]# source /etc/profile

初始化mysql

[root@centos ~]# /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

启动mysql

[root@centos ~]# chkconfig --add mysqld
[root@centos ~]# chkconfig --level 35 mysqld on
[root@centos ~]# systemctl start mysqld

监听mysql的端口3306

[root@centos ~]# netstat -anptu |grep 3306

配置mysql数据库的密码

[root@centos ~]# mysqladmin -uroot password 'pwd@123'

登录mysql数据库

[root@centos ~]# mysql -uroot -ppwd@123

三台mysql全部配置完成

接下来配置主mysql的配置文件

在末行模式输入:%g/^$/d  是删除此配置文件中以空行开头的行

%g/^#/d   删除以#开头的行

[root@centos ~]# vim /etc/my.cnf

   16 log-bin=mysql-bin                    //开启二进制日志 
        18 server-id       = 10                    //设置mysql服务器ID
        19 log-slave-update=true                //开启日志复制功能

保存退出

重启mysql

systemctl restart mysqld

修改从服务器主配置文件

vim /etc/my.cnf

[root@centos02 ~]# vim /etc/my.cnf
        16 log-bin=mysql-bin
        18 server-id       = 20
        19 relay-log=relay-log-bin
        20 relay-log-index=slave-relay-bin.index

然后重启mysql数据库

配置主从复制

登录mysql

[root@centos ~]# mysql -uroot -ppwd@123

创建slave账户,密码为pwd@123

mysql> grant replication slave on *.* to 'slave'@'192.168.100.%' identified by 'pwd@123';

查看mysql状态

mysql> show master status;

配置从mysql复制账户
        mysql> change master to master_host='192.168.100.10',master_user='slave',master_password='pwd@123'
        ,master_log_file='mysql-bin.000004',master_log_pos=263;

查看从mysql复制进程

mysql> start slave

查看从mysql复制状态

mysql> show slave status\G;

 

测试主从复制

在databasrs中创建benet

在两台从服务器中查看databases

完成

配置读写分离

首先修改host文件

[root@centos ~]# vim /etc/hosts

安装jdk

cp /mnt/jdk

./jdk

[root@centos ~]# mv jdk1.6.0_14/ /usr/local/java

创建amoeba位置目录

[root@centos ~]# mkdir /usr/local/amoeba

解压amoeba

[root@centos ~]# mkdir /usr/local/amoeba

配置环境变量

[root@centos ~]# vim /etc/profile.d/java.sh

查看jdk版本

复制配置文件

[root@centos ~]# cp /usr/local/amoeba/conf/amoeba.xml /usr/local/amoeba/conf/amoeba.xml.bak

修改配置文件

         10                         <property name="port">8066</property>                        //访问amoeba端口
         27                                         <property name="user">amoeba</property>        //登录amoeba账户
         28                                         <property name="password">pwd@123</property> //登录amoeba密码
         111                 <property name="defaultPool">master</property>
         113                 <property name="writePool">master</property>                          //主mysql
        114                 <property name="readPool">slaves</property>                              //读取组名字slaves
        115                 <property name="needParse">true</property>

修改配置文件添加读写节点

[root@centos ~]# vim /usr/local/amoeba/conf/dbServers.xml

        19                         <property name="port">3306</property>                //amoeba访问mysql端口
        22                         <property name="user">write</property>                //amoeba访问mysql账户
        23                         <property name="password">pwd@123</property>            //amoeba访问mysql密码
         38         <dbServer name="master"  parent="abstractServer">
         39                 <factoryConfig>
         40                         <property name="ipAddress">192.168.100.10</property>
         41                 </factoryConfig>
         42         </dbServer>
         43         
         44         <dbServer name="slave01"  parent="abstractServer">
         45                 <factoryConfig>
         46                         <property name="ipAddress">192.168.100.20</property>
         47                 </factoryConfig>
         48         </dbServer>
         49         
         50         <dbServer name="slave02"  parent="abstractServer">
         51                 <factoryConfig>
         52                         <property name="ipAddress">192.168.100.30</property>
         53                 </factoryConfig>
         54         </dbServer>  
         55         <dbServer name="slaves" virtual="true">
         56                 <poolConfig class="com.meidusa.amoeba.server.MultipleServerPool">
         57                         <property name="loadbalance">1</property>
         58                         <property name="poolNames">slave01,slave02</property>
         59                 </poolConfig>
         60         </dbServer>

启动

[root@centos ~]# /usr/local/amoeba/bin/amoeba start&

 

成功

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

过客不予秋风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值