【初学菜鸟作-MySQL代理服务器设置与集群】

mysql代理服务器的搭建(读写分离)

实验环境:

所有主机之间物理连接正常

2台数据库服务器上的数据库服务要正常运行,并在期内建立一个同名同表的库,但内容区别,以便验证

停止mysql代理服务器上的数据库服务

2台数据库服务器上授权yeyue用户可以从网络中的所有主机访问自己,对自己   的所有库所有表有完全权限  密码123

grant all on *.*  to [email protected]"%" identified by"123";

二、配置代理服务器

1、 验证2台数据库服务器上的授权用户权限

mysql -h192.168.1.10  -uyeyue -p123

mysql -h192.168.1.1  -uyeyue -p123

2、安装提供mysql代理服务的软件

[[email protected] ~]# rpm -qa  | grep lua

lua-5.1.4-4.1.el6.x86_64

[[email protected]  ~ ]#

tar -zxvfmysql-proxy-0.8.3-linux-rhel5-x86-64bit.tar.gz

mv mysql-proxy-0.8.3-linux-rhel5-x86-64bit  /usr/local/mysqlproxy

cd  /usr/local/mysqlproxy/

bin  可执行命令

include lib  libexec  licenses    程序运行时调用的库文件和头文件

share/doc/mysql-proxy/           脚本文件目录

cd share/doc/mysql-proxy/

chmod +x rw-splitting.lua

主要命令选项

-P 指定代理监听的ip地址,端口

-r 指定读服务器的ip地址,端口

-b 指定写服务器的ip地址,端口

-s 指定lua脚本文件的路径

--keeplive 若进程崩溃,自动重启此进程

./mysql-proxy -P 192.168.13.17:3306 -r192.168.13.15:3306 -b 192.168.13.20:3306 -s/usr/local/mysql-proxy-0.8.3-linux-rhel5-x86-64bit/share/doc/mysql-proxy/rw-splitting.lua  --运行代理服务器

代理服务器运行时,可指定多个r和b。使用时运行顺序优先。

启动mysql代理服务

启动前先将两台数据库服务器mysql服务关闭,保证端口的开放。

cd /usr/local/mysqlproxy/bin

./mysql-proxy   -P  192.168.1.100:3306    -r  192.168.1.10:3306   -b    192.168.1.1:3306   -s  /usr/local/mysqlproxy/share/doc/mysql-proxy/rw-splitting.lua    &

查看是否启动成功

netstat -utnalp  | grep :3306

停止 mysql代理服务

pkill  -9   mysql-proxy

三、测试mysql代理服务的功能

当用户的并发连接数<=4时,把读写操作多发给负责写的数据库服务器(只能看到写服务器的内容)。

当用户的并发连接数>4时,区分用户的读写请求,首次区分后将保持区分状态

(可看到读和写服务器的内容)

vim  rw-splittiing.lua                       --修改并发连接数文件

min_idle_connections = 4,

在客户端通过mysql代理服务访问数据。

mysql  -h192.168.1.100  -uyeyue  -p123

mysql>

insert into  proxydb.a values(1000);

select * from  proxydb.a ;

搭建mysql集群

目的:实现单点故障和数据备份功能

集群中的主机角色:

客户机       访问数据

sql节点     用户访问数据的接口

执行用户操作的sql语句

(ndbd)数据节点   存储表里的记录

管理节点 mgm    管理集群中的所有主机

mgm_1             --管理层

sql_10     sql_20       --为用户提供访问服务

ndbd_30          ndbd_40

--数据的储存点

使用集群软件  mysql-cluster 提供数据存储服务

管理进程    运行在管理主机上

启动进程时加载配置文件,确定集群中各个主机的角色。

config.ini

mysql进程   运行在sql节点上

提供的是mysql服务

启动进程时加载配置文件/etc/my.cnf

ndbd进程    运行数据节点上

启动进程时加载配置文件,设置数据的存储位置

/etc/my.cnf

一、公共配置

1、在所有主机上安装提供集群功能的软件

service  mysql   stop

mv /etc/my.cnf  /etc/my.cnf.bak

rpm -e --nodeps MySQL-test MySQL-sharedMySQL-shared-compat MySQL-embedded MySQL-server MySQL-client   MySQL-devel

tar -xvfMySQL-Cluster-gpl-7.3.3-1.el6.x86_64.rpm-bundle.tar

rpm -Uvh MySQL-Cluster-*.rpm

二、配置管理主机  (192.168.1.1)   运行管理进程

vim /etc/config.ini              --配置文件为自创,名称自定义,但要以ini结尾

[ndbd  default]    定义数据节点的公共配置

[ndb_mgmd]         定义管理节点的配置参数

[ndbd]                   定义数据节点的配置参数

[mysqld]               定义sql节点的配置参数

[[email protected] ~]# cat    /etc/config.ini

[ndbd default]

NoOfReplicas=2

DataMemory=80M

IndexMemory=18M

[ndb_mgmd]

nodeid=1

hostname=192.168.1.1

datadir=/var/log/mysql-cluster                         --文件建为自己创建,下面也是。

[ndbd]

nodeid=30

hostname=192.168.1.30

datadir=/var/lib/mysql-cluster/data

[ndbd]

nodeid=40

hostname=192.168.1.40

datadir=/var/lib/mysql-cluster/data

[mysqld]

nodeid=10

hostname=192.168.1.10

[mysqld]

nodeid=20

hostname=192.168.1.20

[[email protected] ~]#

三、配置数据节点( 192.168.1.30   192.168.1.40 )

运行ndbd进程     /etc/my.cnf

mkdir -p  /var/lib/mysql-cluster/data

vim /etc/my.cnf

[mysqld]

datadir=/var/lib/mysql-cluster/data

ndb-connectstring=192.168.1.1              --指定管理主机

ndbcluster

[mysql_cluster]

ndb-connectstring=192.168.1.1

:wq

四、配置sql节点  (192.168.1.10  192.168.1.20)

运行mysql数据库服务   /etc/my.cnf

vim /etc/my.cnf

[mysqld]

ndbcluster

default-storage-engine=ndbcluster

[mysql_cluster]

ndb-connectstring=192.168.1.1

:wq

四、启动服务

1

[[email protected] ~]# iptables -F

--关闭防火墙

[[email protected] ~]# getenforce

--查看selinux状态

Disabled

[[email protected] ~]#

2  启动管理主机上的管理进程

ndb_mgmd  -f  /etc/config.ini

netstat -untlap  | grep :1186

ndb_mgm

ndb_mgm> show

3  启动ndbd节点上的数据进程   /etc/my.cnf

ndbd

pgrep  ndbd

pkill -9   ndbd

4 启动sql节点上的mysqld进程  /etc/my.cnf

/var/lib/mysql/     存放表结构目录

service mysql  restart

在 管理主机   192.168.1.1 查看所有主机的状态

ndb_mgm> show

Cluster Configuration

---------------------

[ndbd(NDB)]      2node(s)

id=30    @192.168.1.30  (mysql-5.6.14 ndb-7.3.3, Nodegroup: 0, *)

id=40    @192.168.1.40  (mysql-5.6.14 ndb-7.3.3, Nodegroup: 0)

[ndb_mgmd(MGM)]   1 node(s)

id=1      @192.168.1.1  (mysql-5.6.14 ndb-7.3.3)

[mysqld(API)]    2 node(s)

id=10    @192.168.1.10  (mysql-5.6.14 ndb-7.3.3)

id=20    @192.168.1.20  (mysql-5.6.14 ndb-7.3.3)

【初学菜鸟作-MySQL代理服务器设置与集群】

时间: 2024-12-06 04:27:29

【初学菜鸟作-MySQL代理服务器设置与集群】的相关文章

【初学菜鸟作-MySQL数据库表的基本操作与权限管理】

表基本操作练习 1 复制用户信息表user的所有记录到userdb表里. mysql> create table userdb select * fromuser; 2 查看userdb表的表结构 mysql> desc userdb; 3 删除userdb表的所有记录 mysql> delete from userdb 4 把name字段设置为index字段 mysql> create index name on userdb(name) 5 添加编号字段id  在所有字段上方,

【初学菜鸟作-mySQL数据库的基本使用】

Mysql数据库的基本应用 一.数据库的基本命令 登录数据库 [[email protected] ~]# mysql -h127.0.0.1 -uroot-p123456 mysql> show databases; --查看服务器已有的库 mysql> select database(); --显示当前所在的库 mysql> show tables; --显示当前库存在的表 mysql> select * from user\G --换行显示表里的所有记录(*代表字段,带\G表

【初学菜鸟作--FTP的搭建与相关设置】

创建ftp服务器,设置并验证其控制参数 安装vsftp ftp服务的安装 [[email protected] Server]# rpm -ivhvsftpd-2.0.5-28.el5.x86_64.rpm [[email protected] ~]# vim /etc/vsftpd/vsftpd.conf 主配置文件重要参数 anonymous_enable=YES匿名用户可否访问,为NO时匿名用户不可登陆 local_enable=YES                     是否启用本地

【初学菜鸟作-nginx网站服务器的安装以及基本使用】

nginx网站服务的安装与配置 1.编写脚本,以安装nginx 编写脚本前须知nginx的安装环境 此案例提供两个版本的nginx(nginx-0.8.55.tar.gz  nginx-1.0.5.tar.gz) 其为源码包,需要gcc环境(gcc gcc-c++ make)以及pcrepcre-devel  ssl openssl 在root家目录下新建脚本文件install.sh [[email protected] ~]# cat install.sh   #!/bin/bash   se

【初学菜鸟作--邮件服务的简单配置案例】

邮件服务器的配置以及使用 实验一:                    实验目的:简单搭建出邮件服务器并测试其可用性                    实验环境:DNS服务器一台,安装有Portfix的邮件服务器一台 实验步骤: 一.邮件的发送(SMTP) 1.在邮件服务器配置主机名,ip,并安装portfix并启动 [[email protected]~]# tail -2 /etc/sysconfig/network HOSTNAME=mail.tarena.com   [[email

【初学菜鸟作--KVM虚拟机配置及用法】

KVM虚拟机配置及用法 1.主要存放位置: 安装kvm虚拟机默认存放位置  --/var/lib/libvirt/images kvm虚拟机配置文件存放位置  --/etc/libvirt/qemu/ 2.常用管理命令: 管理命令 virsh list --查看已打开虚拟机列表 virsh list --all --查看所有虚拟机列表 virsh version --查看版本号 virsh start yeyue1     --启动虚拟机 virsh create /etc/libvirt/qe

【初学菜鸟作--DHCP的配置应用】

在服务器配置DHCP使客户机自动获取ip地址,网关,DNS 1.为服务器设置ip地址,网关,主机名,DNS服务器地址 为服务器设置ip地址 [[email protected] ~]# vim/etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 BOOTPROTO=static HWADDR=00:0C:29:19:BB:76 ONBOOT=yes IPADDR=192.168.1.1 NETWORK=255.255.255.0   为服务器

【初学菜鸟作--NFS共享服务在配置】

配置NFS共享服务,以客户机1可以访问服务器的共享 1. 将/root共享给192.168.1.250,可写.同步,允许客户机以root权限访问     查看服务器有没有安装portmap和nfs-utils-1.0.9-66.el5 [[email protected] ~]# rpm -q nfs-utils-portmap   配置nfs配置文件 [[email protected] ~]# vim /etc/exports /root          192.168.10.20(rw,

【初学菜鸟作--HTTP服务的安装及相关配置】

HTTP服务的安装及相关配置 实验目的:对HTTP服务进行安装配置,以达到访问目的及访问权限控制 实验准备:安装有apache软件的服务端(192.168.1.1)                  客户机1(192.168.1.2)客户机2(192.168.1.3) 保证客户机与服务端的连通 实验一:服务端的基本配置与HTTP服务的安装,初始浏览 1.     服务端的基本配置 Ip配置: [[email protected]~]# ifconfig eth0 | head -2 |tail