MYSQL的主从复制读写分离
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MYSQL的主从复制读写分离相关的知识,希望对你有一定的参考价值。
4,在master,slave1,slave2上分别安装MySQL
[root@master1 ~]# mkdir /abc ##创建挂载点
[root@master1 ~]# mount.cifs //192.168.100.1/LNMP-C7 /abc/ ##远程挂载
Password for root@//192.168.100.1/LNMP-C7:
[root@master1 ~]# cd /abc/
[root@master1 abc]# ls
mysql-5.5.24
[root@master1 abc]# tar zxvf mysql-5.5.24.tar.gz -C /opt/ ##解压
[root@master1 opt]# yum install -y > gcc gcc-c++ > ncurses > ncurese-devel ##控制终端屏幕显示的库
> bison ##语法分析
> make
> cmake ##cmake工具
> libaio-devel ##系统调用来实现异步IO
[root@slave1 opt]# useradd -s /sbin/nologin mysql ##添加不可登录的mysql用户
[root@slave1 opt]# cd /opt/mysql-5.5.24/
[root@slave1 mysql-5.5.24]# mkdir /usr/local/mysql ##创建安装目录
[root@slave1 mysql-5.5.24]# cmake ##配置
> -DCMAKE_INSTALL_PREFIX=/usr/local/mysql ##安装路径
> -DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock ##sock文件路径
> -DDEFAULT_CHARSET=utf8 ##字符集
> -DDEFAULT_COLLATION=utf8_general_ci > -DWITH_EXTRA_CHARSETS=all > -DWITH_MYISAM_STORAGE_ENGINE=1 ##存储引擎
> -DWITH_INNOBASE_STORAGE_ENGINE=1 > -DWITH_MEMORY_STORAGE_ENGINE=1 > -DWITH_READLINE=1 > -DENABLED_LOCAL_INFILE=1 > -DMYSQL_DATADIR=/home/mysql ##数据文件路径
> -DMYSQL_USER=mysql ##用户
> -DMYSQL_TCP_PORT=3306 ##端口
[root@slave1 mysql-5.5.24]# make && make install ##编译及安装
[root@master1 mysql-5.5.24]# chown -R mysql.mysql /usr/local/mysql ##设置mysql属主属组
[root@master1 mysql-5.5.24]# vim /etc/profile ##配置环境变量便于系统识别
export PATH=$PATH:/usr/local/mysql/bin/
[root@master1 mysql-5.5.24]# source /etc/profile ##刷新配置文件
[root@master1 mysql-5.5.24]# cp support-files/my-medium.cnf /etc/my.cnf ##主配置文件
cp:是否覆盖"/etc/my.cnf"? yes
[root@master1 mysql-5.5.24]# cp support-files/mysql.server /etc/init.d/mysqld ##启动文件
[root@master1 mysql-5.5.24]# chmod 755 /etc/init.d/mysqld ##设置权限
[root@master1 mysql-5.5.24]# chkconfig --add /etc/init.d/mysqld ##添加到service管理中
[root@master1 mysql-5.5.24]# chkconfig mysqld --level 35 on ##开机自启动
[root@master1 mysql-5.5.24]# /usr/local/mysql/scripts/mysql_install_db ##初始化数据库
> --user=mysql > --ldata=/var/lib/mysql > --basedir=/usr/local/mysql > --datadir=/home/mysql
[root@master1 mysql-5.5.24]# vim /etc/init.d/mysqld ##编辑启动脚本文件
basedir=/usr/local/mysql ##找到此处添加路径
datadir=/home/mysql
[root@master1 mysql-5.5.24]# service mysqld start ##启动MySQL
Starting MySQL.. SUCCESS!
[root@master1 mysql-5.5.24]# mysqladmin -u root password ‘abc123‘ ##设置密码
至此database主从同步成功!!!
11,修改amoeba服务器配置文件
[root@amoeba conf]# vim amoeba.xml ##修改主配置文件
#第30行
<property name="user">amoeba</property> ##从服务器同步主服务器的用户密码
#第32行
<property name="password">123456</property>
#第117行去掉注释
<property name="defaultPool">master</property>
<property name="writePool">master</property>
<property name="readPool">slaves</property>
[root@amoeba conf]# vim conf/dbServers.xml ##配置数据库配置文件
#第26 至29行去掉注释
<property name="user">test</property>
<property name="password">123.com</property>
#第42行添加主服务器地址
<dbServer name="master" parent="abstractServer">
<property name="ipAddress">192.168.142.151</property>
第52行添加从服务器slave1地址
<dbServer name="slave1" parent="abstractServer">
<property name="ipAddress">192.168.142.163</property>
##复制6行添加服务器slave2地址
<dbServer name="slave2" parent="abstractServer">
<property name="ipAddress">192.168.142.145</property>
#第65行授权同步
<dbServer name="slaves" virtual="true">
<poolConfig class="com.meidusa.amoeba.server.MultipleServerPool">
#末行添加从服务器名称
<property name="poolNames">slave1,slave2</property>
</poolConfig>
[root@amoeba conf]# /usr/local/amoeba/bin/amoeba start& ##开启amoeba服务
[root@amoeba ~]# netstat -anpt | grep java ##开启另一个终端查看开启情况
tcp6 0 0 127.0.0.1:26268 :::* LISTEN 40925/java
tcp6 0 0 :::8066 :::* LISTEN 40925/java
tcp6 0 0 192.168.142.160:34090 192.168.142.151:3306 ESTABLISHED 40925/java
tcp6 0 0 192.168.142.160:33866 192.168.142.145:3306 ESTABLISHED 40925/java
tcp6 0 0 192.168.142.160:55984 192.168.142.163:3306 ESTABLISHED 40925/java
在主服务器上写如数据,在从服务器上读取数据,采用的是轮询机制,从而实现读写分离!!!
以上是关于MYSQL的主从复制读写分离的主要内容,如果未能解决你的问题,请参考以下文章
MySQL主从复制以及读写分离(❤❤❤❤含理论和实验❤❤❤❤大家中秋快乐!㊗)