我们专注攀枝花网站设计 攀枝花网站制作 攀枝花网站建设
成都网站建设公司服务热线:400-028-6601

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

48.MYSQL的主从与读写分离

linux企业级知识点总结

创新互联建站是网站建设技术企业,为成都企业提供专业的成都做网站、网站设计,网站设计,网站制作,网站改版等技术服务。拥有10年丰富建站经验和众多成功案例,为您定制适合企业的网站。10年品质,值得信赖!

MySQL主从复制与读写分离原理图 

Mysql的主从复制:从服务器在主服务器上自动同步数据。

Mysql的读写分离:通过amoeba服务器控制用户读数据在从服务器上进行,写数据从主服务器上进行,这样可以做到负载均衡

 

搭建mysql主从复制:

建立时间同步环境

#yum -y install ntp

#vim /etc/ntp.conf

修改相关内容:

Server  127.127.1.0

Fudge   127.127.1.0  stratum  8

#service ntpd restart

#yum -y install ntpdate

#/usr/sbin/ntpdate  1.1.1.1

安装mysql数据库

# yum -y install ncurses-devel

# yum -y install cmake

# tar xzvf mysql-5.5.22.tar.gz

# cd 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

#useradd  mysql  -s  /sbin/nologin  -M  -g  mysql

# chown -R mysql.mysql  /usr/local/mysql/

# cp /usr/local/mysql/support-files/my-medium.cnf  /etc/my.cnf

# cd /usr/local/mysql/scripts/

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

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

# . /etc/profile

# cp /usr/local/mysql/support-files/mysql.server  /etc/init.d/mysqld

# chkconfig --add mysqld

# chkconfig mysqld on

#service mysqld start

# mysqladmin -u root password  123

修改master主服务器配置文件

#vim /etc/my.cnf

server-id  =  11

log-bin=master-bin

log-slave-updates=true

重启服务

#Service mysqld restart

登陆mysql数据库,给从服务器授权

#mysql -u root -p123

Mysql>GRANT REPLICATION SLAVE ON *.* TO‘ren’@’1.1.1.%’ IDENTIFIED BY‘123’;

Mysql>FLUSH PRIVILEGES;

Mysql>show master status;

注:*.*表示所有数据库下所有表

 

配置从服务器

#vim /etc/my.cnf

修改内容:

Server-id = 22

Relay-log=relay-log-bin

Relay-log-index=slave-relay-bin.index

注:这里的ID号不能与主服务器相同

重启服务

#service  mysqld restart

登陆mysql配置同步

#mysql -u root -p123,

Mysql>change master to master_host=1.1.1.1,master_user=ren ,master_password=’123’,

 master_log_file=’master-bin.000001’,master_log_pos=339

启动同步

Mysql>start slave;

Mysql>show slave status\G;

验证方法:在主服务器上创建一个新的数据库,在从服务器上查看是否同步过来。

Mysql的读写分离

搭建amoeba服务器

安装JAVA环境

# chmod +x jdk-6u14-linux-x64.bin

# ./jdk-6u14-linux-x64.bin

# mv jdk1.6.0_14/  /usr/local/jdk1.6

#vim /etc/profile

添加内容:

export JAVA_HOME=/usr/local/jdk1.6

export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib

export PATH=$JAVA_HOME/lib:$JAVA_HOME/jre/bin:$PATH:$HOME/bin

export AMOEBA_HOME=/usr/local/amoeba/

export PATH=$PATH:$AMOEBA_HOME/bin

#source /etc/profile

#java -version

安装amoeba软件

#mkdir /usr/local/amoeba

#tar xzvf amoeba-mysql-binary-2.2.0.tar.gz -C /usr/local/amoeba

#chmod -R  755  /usr/local/amoeba

配置master,slave1,salve2服务器开放权限给amoeba访问

Grant  all on *.* totest@’1.1.1.%’ identified by‘123’;

编辑配置amoeba.xml配置文件,指定amoeba的用户名和密码,指定读写服务器。

#vim /usr/local/amoeba/conf/amoeba.xml

                        

                                

                                      amoeba

 

                                        123

                                        

                                                

                                                        ${amoeba.home}/conf/access_list.conf

                                                

                                        

                master

                master

                slaves

编辑配置dbservers.xml配置文件,指定访问的数据库的账号和密码,指定主从服务器

#vim /usr/local/amoeba/conf/dbServers.xml

                        

                        test

                        123

        

                

                        

                        1.1.1.1

                

        

        

                

                        

                        1.1.1.2

                

        

        

                

                        

                        1

                        

                        slave1,slave2

                

        

启动amoeba软件

#/usr/local/amoeba/bin/amoeba start

验证方法:在master服务器上写入数据同步到slave读服务器上,然后slave读服务器关闭同步,自己增加相关表中内容,然后使用客户端连接测试是否能成功在slacve服务器上读取内容。

关闭同步:Mysql>stop  slave;

 


当前标题:48.MYSQL的主从与读写分离
本文来源:http://shouzuofang.com/article/gigpeo.html

其他资讯