本文目录一览:
- 1、如何实现mysql读写分离
- 2、mysql 读写分离 有几种实现方法
- 3、mysql5.7.13支持读写分离吗
- 4、mysql 如何实现读写分离,用mysql-proxy 或者直接用php连接两个数据库?
- 5、mysql如何做读写分离啊 ?
- 6、mysql读写分离原理是什么
如何实现mysql读写分离
Slave从服务器(Ubuntu)
(1)找到MySQL安装文件夹修改my.cnf文件,vim my.cnf
s
(2) ./support-files/myql.server restart 重启MySQL服务 , ./bin/mysql 进入MySQL命令窗口
(3)连接Master
change master to master_host='192.168.0.104', //Master 服务器Ip
master_port=3306,
master_user='repl',
master_password='mysql',
master_log_file='master-bin.000001',//Master服务器产生的日志
master_log_pos=0;
(4)启动Slave
start slave;
mysql 读写分离 有几种实现方法
利用mysql proxy来实现的。 MySQL Proxy最强大的一项功能是实现“读写分离(Read/Write Splitting)”。基本的原理是让主数据库处理事务性查询,而从数据库处理SELECT查询。数据库复制被用来把事务性查询导致的变更同步到集群中的从数据库。
mysql5.7.13支持读写分离吗
mysql支持读写分离,可以参考如下实例:
1.确认环境
linux centos 7--64bit
2.准备材料
lua
mysql-proxy
3.安装lua
[root@bogon ~]# mkdir /opt/install/
[root@bogon ~]# cd /opt/install/
[root@bogon install]# tar zxvf lua-5.2.3.tar.gz
[root@bogon install]# cd lua-5.3.3
[root@bogon install]# make linux test
pre name="code" class="plain"若没有错误择执行
[root@bogon install]# make linux
pre name="code" class="plain"[root@bogon install]# make install
写入环境变量
[root@bogon install]# export LUA_CFLAGS="-I/usr/local/include" LUA_LIBS="-L/usr/local/lib -llua -ldl" LDFLAGS="-lm"
若是显示
readline/readline.h: No such file or directory
择需要安装
yum install readline-devel
4.安装mysql-proxy
[root@bogon install]# cd /opt/install
[root@bogon install]# tar zxvf mysql-proxy-0.8.5-linux-glibc2.3-x86-64bit.tar.gz
[root@bogon install]# mkdir /opt/mysql-proxy/
[root@bogon install]# cp /opt/install/mysql-proxy-0.8.4-linux-rhel5-x86-32bit/* /opt/mysql-proxy/
[root@bogon install]# cd /opt/mysql-proxy/
[root@bogon install]# export PATH=$PATH:/opt/mysql-proxy/bin/ #写入环境变量
5.编辑mysql-proxy配置文件
[root@bogon install]# cp share/doc/mysql-proxy/rw-splitting.lua ./
[root@bogon install]# vi rw-splitting.lua
6修改以下配置文件内容
if not proxy.global.config.rwsplit then
proxy.global.config.rwsplit = {
min_idle_connections = 4, # 4改成1
max_idle_connections = 8, # 8改成1
is_debug = false
}
end
7.执行任务
[root@bogon install]# mysql-proxy --proxy-read-only-backend-addresses=192.168.23.132:3306
span style="white-space:pre" /span--proxy-backend-addresses=192.168.2.131:3306 --proxy-lua-script=/opt/mysql-proxy/share/rw-splitting.lua
proxy-read-only-backend-addresses:从库的地址
pre name="code" class="plain"proxy-backend-addresses: 主库的地址
pre name="code" class="plain"proxy-lua-script=rw-spliting.lua脚本的路径
8.查看监听情况
[root@bogon install]# netstat -tlp | grep mysql-proxy
tcp 0 0 *:yo-main *:* LISTEN 13364/mysql-proxy
9.创建用于读写分离的数据库连接用户
CREATE USER 'proxy'@'ip' IDENTIFIED BY '000000';
GRANT ALL ON *.* TO 'proxy1'@'ip' IDENTIFIED BY '000000';
FLUSH PRIVILEGES;
10.设置mysql-proxy服务脚本
#!/bin/sh
#
# mysql-proxy This script starts and stops the mysql-proxy daemon
#
# chkconfig: - 78 30
# processname: mysql-proxy
# description: mysql-proxy is a proxy daemon to mysql
# Source function library.
. /etc/rc.d/init.d/functions
#PROXY_PATH=/usr/local/bin
PROXY_PATH=/opt/mysql-proxy/bin
prog="mysql-proxy"
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ ${NETWORKING} = "no" ] exit 0
# Set default mysql-proxy configuration.
#PROXY_OPTIONS="--daemon"
PROXY_OPTIONS="--proxy-read-only-backend-addresses=192.168.23.132:3306 --proxy-backend-addresses=192.168.23.131:3306 --proxy-lua-script=/opt/mysql-proxy/share/rw-splitting.lua"
PROXY_PID=/opt/mysql-proxy/run/mysql-proxy.pid
# Source mysql-proxy configuration.
if [ -f /etc/sysconfig/mysql-proxy ]; then
. /etc/sysconfig/mysql-proxy
fi
PATH=$PATH:/usr/bin:/usr/local/bin:$PROXY_PATH
# By default it's all good
RETVAL=0
# See how we were called.
case "$1" in
start)
# Start daemon.
echo -n $"Starting $prog: "
$NICELEVEL $PROXY_PATH/mysql-proxy $PROXY_OPTIONS --daemon --pid-file=$PROXY_PID --user=root --log-level=debug --log-file=/opt/mysql-proxy/log/mysql-proxy.log
RETVAL=$?
echo
if [ $RETVAL = 0 ]; then
touch /var/lock/subsys/mysql-proxy]
echo "ok"
fi
;;
stop)
# Stop daemons.
echo -n $"Stopping $prog: "
killproc $prog
RETVAL=$?
echo
if [ $RETVAL = 0 ]; then
rm -f /var/lock/subsys/mysql-proxy
rm -f $PROXY_PID
fi
;;
restart)
$0 stop
sleep 3
$0 start
;;
condrestart)
[ -e /var/lock/subsys/mysql-proxy ] $0 restart
;;
status)
status mysql-proxy
RETVAL=$?
;;
*)
echo "Usage: $0 {start|stop|restart|status|condrestart}"
RETVAL=1
;;
esac
exit $RETVAL
11.启动脚本
[root@bogon init.d]# /opt/mysql-proxy/init.d/mysql-proxy start
mysql 如何实现读写分离,用mysql-proxy 或者直接用php连接两个数据库?
Mysql主从配置,实现读写分离
原理:主服务器(Master)负责网站NonQuery操作,从服务器负责Query操作,用户可以根据网站功能模特性块固定访问Slave服务器,或者自己写个池或队列,自由为请求分配从服务器连接。主从服务器利用MySQL的二进制日志文件,实现数据同步。二进制日志由主服务器产生,从服务器响应获取同步数据库。
具体实现:
1、在主从服务器上都装上MySQL数据库,windows系统鄙人安装的是mysql_5.5.25.msi版本,Ubuntu安装的是mysql-5.6.22-linux-glibc2.5-i686.tar
windows安装mysql就不谈了,一般地球人都应该会。鄙人稍微说一下Ubuntu的MySQL安装,我建议不要在线下载安装,还是离线安装的好。大家可以参考 这位不知道大哥还是姐妹,写的挺好按照这个就能装上。在安装的时候可能会出现几种现象,大家可以参考解决一下:
(1)如果您不是使用root用户登录,建议 su - root 切换到Root用户安装,那就不用老是 sudo 了。
(2)存放解压的mysql 文件夹,文件夹名字最好改成mysql
(3)在./support-files/mysql.server start 启动MySQL的时候,可能会出现一个警告,中文意思是启动服务运行读文件时,忽略了my.cnf文件,那是因为my.cnf的文件权限有问题,mysql会认为该文件有危险不会执行。但是mysql还会启动成功,但如果下面配置从服务器参数修改my.cnf文件的时候,你会发现文件改过了,但是重启服务时,修改过后的配置没有执行,而且您 list一下mysql的文件夹下会发现很多.my.cnf.swp等中间文件。这都是因为MySQL启动时没有读取my.cnf的原因。这时只要将my.cnf的文件权限改成my_new.cnf的权限一样就Ok,命令:chmod 644 my.cnf就Ok
(4)Ubuntu中修改文档内容没有Vim,最好把Vim 装上,apt-get install vim,不然估计会抓狂。
这时候我相信MySQL应该安装上去了。
2、配置Master主服务器
(1)在Master MySQL上创建一个用户‘repl’,并允许其他Slave服务器可以通过远程访问Master,通过该用户读取二进制日志,实现数据同步。
mysql如何做读写分离啊 ?
我刚给公司做完mysql的主从读写分离
先给你个思路
第一步:先做mysql的主从(Master/Slave Replication),实现数据同步
第二部:通过Amoeba来实现读写分离,也可以通过mysql proxy(比较麻烦)。
ps:
我的环境是两台装windows server 2008,一台做主,一台做从。
如果你需要的话,留下邮箱,我发给你一个我自己刚做好的文档。照着做就可以了
mysql读写分离原理是什么
利用mysql proxy来实现的。
MySQL Proxy最强大的一项功能是实现“读写分离(Read/Write Splitting)”。基本的原理是让主数据库处理事务性查询,而从数据库处理SELECT查询。数据库复制被用来把事务性查询导致的变更同步到集群中的从数据库。 当然,主服务器也可以提供查询服务。使用读写分离最大的作用无非是环境服务器压力。