菜单

Mysql数据库读写分离配置

2019年6月7日 - MySQL

景况模拟

Mysql数据库读写分离轻便布署

贯彻读写分离 减轻数据库的载重
主服务器 master 十.0.0.1二
从服务器 slave 10.0.0.6六

 

 

环境:


 

配置主服务器: 在10.0.0.12服务器操作
开创数据库
create database mydemo;

Master:192.168.71.128      mysql-sql-node1

Slave:192.168.71.140       mysql-data-node1

Mysql-Proxy:192.168.71.138 mysql-mgm-node

rpm -q libevent glib2 pkgconfig libtool mysql-devel

 

 查看系统是还是不是已安装以上包,如未设置,使用yum install 安装。

一.改造配置文件

 

vi /etc/my.cnf
在[mysqld] 后边增多上边包车型地铁代码

yum install -y libtermcap-devel ncurses-devel libevent-devel readline-devel gcc-c++
sync_binlog=1
binlog-do-db=mydemo #设置需要同步的数据库名
binlog_ignore_db=mysql  #不需要同步的数据库  如果有多个不需要同步则依次列出
# binlog_ignore_db=xxxx

    保存退出  :wq

   2. 重新启动mysql 服务器

     service mysqld restart


   3.进入mysql平台 设置需要同步的用户账号
 create user '用户名'@'从服务器ip地址' identified by '密码'  

 create user 'eduask'@'10.0.0.66' identified by 'test123'  #创建一个从服务器用户同步到主服务器


 4. 给slave 用户赋权限
         grant all  on *.* to 'eduask'@'10.0.0.%' identified by 'test123'
  grant replication slave  on *.* to 'eduask'@'10.0.0.66' identified by 'test123'  允许从服务器用户远程登录

 5.刷新授权表
 flush privileges


 6.给数据库创建测试数据库
 create table userinfo(
  uid  int primary key auto_increment,
  uname char(30) not null,
  upwd  char(30) not null
 );
 insert into userinfo (`uid`,`uname`,`upwd`) values(null,'aaa','test123')

      7.退出系统   

 \q  exit


 ------------从服务器配置完成后再操作-----------
 8. 导出主服务器数据库 传递到从服务器
 /usr/local/web/mysql/bin/mysqldump -uroot -ptest123 数据库名 > /home/数据库名.sql
        scp  从哪里  到哪里
 scp  /home/数据库名.sql  [email protected]:/home
 [提示: 如果系统提示你是否远程传输 yes]
 系统会提示你输入密码: test123

 9.重新启动主服务器
 service mysqld stop 
 service mysqld start
 10. 进入mysql 平台
      /usr/local/web/mysql/bin/mysql -uroot -ptest123
       11.查询主服务器状体 master
        show master status;
        运行后mysql 会显示一个当前master 的服务器日志状况表,我们需要记住两个字段的值
 file: mysql-bin.000006 #这是需要同步的master 的二进制文件
 position:519


-----------------------------------------------------------------------------------------------------------------------
配置从服务器   (在 10.0.0.66)
 1.进入mysql 平台
  /usr/local/web/mysql/bin/mysql -uroot -ptest123
 2.创建数据库
 create database mydemo;
 eixt
 3.导入master 的数据库
  /usr/local/web/mysql/bin/mysql -uroot -ptest123 数据库名 < /home/数据库名.sql
 4.配置从服务器mysql 配置文件
 vi /etc/my.cnf
 找到 server-id=1 改成 2  (注意:server-id 必须要比master 的大 关键是不能重复)
 在 [mysqld] 后面添加
  replicate-do-db=mydemo  #配置需要同步的数据库名
         保存文件
  :wq
 5.重启mysqld
  service mysqld restart
 6.以root用户登录mysql 平台
  /usr/local/web/mysql/bin/mysql -uroot -ptest123
  stop slave;
  change master to  master_host='10.0.0.12', #master ip
    master_user='eduask',  #master 用户名
    master_password='test123', #master 密码
    master_port=3306, #master 端口
    master_log_file='mysql-bin.000006', #master 需要同步的二进制
    master_log_pos=519,  #master pos
    master_connect_retry=60; #连接master 的时间

 7.启动slave
 start slave;
 8. 查看是否连接同步成功
  show slave status\G;
          如果 SLAVE_IO_running  yes
  slave_sql_running yes

           这两个参数都为 yes 则表示成功 否则失败



----------------------------------------------------------------------------------------------------------------------
测试主从数据库同步

  1.进入主服务器
  /usr/local/web/mysql/bin/mysql -uroot -ptest123
 use  mydemo;
 insert into userinfo(uid,uname,upwd) values(nuull,'111','222');

 2. 进入从服务器
     /usr/local/web/mysql/bin/mysql -uroot -ptest123
 use  mydemo;
   select * from  userinfo;

 如果从服务器中有master 的数据 成功

 

  

 

http://www.bkjia.com/Mysql/625967.htmlwww.bkjia.comtruehttp://www.bkjia.com/Mysql/625967.htmlTechArticle环境模拟 达成读写分离 缓慢消除数据库的载荷 主服务器
master 十.0.0.1二 从服务器 slave 10.0.0.6陆—————————————————————-…

壹、下载程序:

wget http://www.lua.org/ftp/lua-5.1.4.tar.gz

wget http://gd.tuwien.ac.at/db/mysql/Downloads/MySQL-Proxy/mysql-proxy-0.6.0.tar.gz

wget http://www.monkey.org/~provos/libevent-1.4.13-stable.tar.gz

 

 

二、安装lua:

[[email protected] /software]# tar zxvf lua-5.1.4.tar.gz

[[email protected] lua-5.1.4]#  cd lua-5.1.4

[[email protected] lua-5.1.4]# # vi Makefile

修改:

INSTALL_TOP= /usr/local/lua



[[email protected] lua-5.1.4]#  make && make linux && make install

设置环境变量

[[email protected] lua-5.1.4]# export LUA_CFLAGS="-I/usr/local/lua/include" LUA_LIBS="-L/usr/local/lua/lib -llua -ldl" LDFLAGS="-L/usr/local/libevent/lib -lm"

[[email protected] lua-5.1.4]# export CPPFLAGS="-I/usr/local/libevent/include"

[[email protected] lua-5.1.4]# export CFLAGS="-I/usr/local/libevent/include"

 

 

三、安装 libevent:

 

tar zvxf libevent-1.4.13-stable.tar.gz

cd libevent-1.4.13-stable

./configure --prefix=/usr/local/libevent

make && make install

 

 

四、安装mysql-proxy:

 

./configure --prefix=/usr/local/mysql-proxy --with-mysql=/usr/local/mysql --with-lua

make && make install

启动:

/usr/local/mysql-proxy/sbin/mysql-proxy --proxy-read-only-backend-addresses=192.168.71.140:3306 --proxy-backend-addresses=192.168.71.128:3306 --proxy-lua-

script=/usr/local/mysql-proxy/share/mysql-proxy/rw-splitting.lua &

查看进程:

netstat -ntlp | grep mysql

编辑启动脚本:

vi /etc/init.d/mysql-proxy

#!/bin/bash

PRODIR=/usr/local/mysql-proxy

LUA_PATH=$PRODIR/share/mysql-proxy

start(){

$PRODIR/sbin/mysql-proxy --proxy-read-only-backend-addresses=192.168.71.140:3306 --proxy-backend-addresses=192.168.71.128:3306 --proxy-lua-



script=/usr/local/mysql-proxy/share/mysql-proxy/rw-splitting.lua &

>>$PRODIR/mysql-proxy.log &

}

stop(){

kill $(pidof mysql-proxy)

if [ $? -ne 0 ];then

kill -9 $(pidof mysql-proxy)

fi

}

case "$1" in

start)

start

;;

stop)

stop

;;

restart)

stop

start

;;

*)

echo $"Usage: $0 {start|stop|restart}"

esac

修改权限:

chmod +x /etc/init.d/mysql-proxy

/etc/init.d/mysql-proxy start

测试:

在MySQL-Master 上创建测试数据库和用户。

mysql> create database unixhot;

mysql> GRANT ALL PRIVILEGES ON king.* to [email protected]'%' identified by 'bobo365';

连接测试

[[email protected] ~]# mysql -h 192.168.71.138 -P 4040 -u proxytest -p

输入密码即可登录。

mysql> show processlist;

+----+-----------+----------------------+------+---------+------+-------+------------------+

| Id | User      | Host                 | db   | Command | Time | State | Info             |

+----+-----------+----------------------+------+---------+------+-------+------------------+

| 14 | proxytest | 192.168.71.138:17350 | NULL | Sleep   |    2 |       | NULL             |

| 15 | proxytest | 192.168.71.138:17355 | NULL | Query   |    0 | NULL  | show processlist |

| 16 | proxytest | 192.168.71.138:17358 | NULL | Sleep   |    2 |       | NULL             |

+----+-----------+----------------------+------+---------+------+-------+------------------+

3 rows in set (0.01 sec)

 

http://www.bkjia.com/Mysql/487343.htmlwww.bkjia.comtruehttp://www.bkjia.com/Mysql/487343.htmlTechArticleMysql数据库读写分离简单配置 环境:
Master:192.168.71.128 mysql-sql-node1Slave:192.168.71.140
mysql-data-node1Mysql-Proxy:192.168.71.138 mysql-mgm-noderpm -q
lib…

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图