测试服务器mysql安装位置: C:\Program Files\MySQL\MySQL Server 5.7 参考: https://blog.csdn.net/qq_15092079/article/details/81672920 Mysql读写分离部署步骤: 1、在VM虚拟机中分别安装三台CentOS 7虚拟机,一台主(Windows)、一台从(虚拟机Centos_64_1)、一台代理(虚拟机Centos_64_2)。 2、分别在主、从两台机器安装MySQL5.7.2版本, 安装路径为:/usr/local/mysql 注:以下操作操作前提在三台虚拟机安装好,两台mysql数据库安装好 3、主服务器Mysql配置: 1>配置文件my.cnf如下: #服务器唯一id. server-id=1 #日志文件 log_bin=mysql-bin log_bin_index=master-bin.index #数据库名称,注:根据当前项目数据库名来 binlog_do_db=patroldb #二进制日志自动删除的天数 expire_logs_days=2 2>创建从服务器用户权限 #进入数据库 mysql -uroot -p 输入密码 #创建从数据库masterbackup用户权限,注:需修改成从服务器ip,%表示匹配0-255所有ip grant replication slave on*.* to masterbackup@'192.168.159.%' identified by '123456'; #推出mysql exit 3>重启mysql服务 ./support-files/mysql.server restart 4>查看主服务器状态 登陆mysql #查看主服务器状态 show master status; 4、从服务器Mysql配置: 1>配置文件my.cnf如下: [mysql] default-character-set=utf8 [mysqld] #datadir=/var/lib/mysql #socket=/var/lib/mysql/mysql.sock # Disabling symbolic-links is recommended to prevent assorted security risks #symbolic-links=0 port = 3306 basedir=/usr/local/mysql datadir=/usr/local/mysql/data max_connections=200 character-set-server=utf8 default-storage-engine=INNODB lower_case_table_names=1 max_allowed_packet=16M #服务器唯一id. server-id=2 relay-log=slave-relay-bin relay-log-index=slave-relay-bin.index [mysqld_safe] log-error=/var/log/mariadb/mariadb.log pid-file=/var/run/mariadb/mariadb.pid # # include all files from the config directory # # !includedir /etc/my.cnf.d 2>重启mysql ./support-files/mysql.server restart 3>连接主服务器 #进入mysql ... #连接主服务器,ip为主服务器ip,master_log_file为主服务器日志名 change master to master_host ='10.10.180.209',master_port =3306,master_user ='root',master_password ='123456',master_log_file ='mysql-bin.000011',master_log_pos =154 ##Setting set global sql_slave_skip_counter=1; 4>启动slave数据同步 start slave #查看slave信息 show slave status\G; 或 show slave status; #Slave_IO_Running和Slave_SQL_Running都为yes,表示同步成功 5、测试 =====测试sql====== #主数据库插入数据时,从数据库也会插入相同数据 SELECT * from tb_user; create table tb_user_2(id varchar(10) primary key comment 'id',name varchar(50) not null comment '信息'); insert into tb_user_2(id,name) values('1','test mysql slave'); SELECT * from tb_user_2; commit; 6、安装好主从数据库后,接下来安装mysql-proxy,它主要是做路由代理,识别是读还是写操作 1>下载mysql-proxy安装包,版本为:0.8.5 把安装包拷贝到/tools目录下,如没有则创建。 2>安装mysql-proxy tar zxvf mysql-proxy-0.8.5-linux-glibc2.3-x86-32bit.tar.gz mv mysql-proxy-0.8.5-linux-glibc2.3-x86-32bit /usr/local/mysql-proxy 3>配置mysql-proxy,创建主配置文件 cd /usr/local/mysql-proxy mkdir lua #创建脚本存放目录 mkdir logs #创建日志目录 cp share/doc/mysql-proxy/rw-splitting.lua ./lua #复制读写分离配置文件 cp share/doc/mysql-proxy/admin-sql.lua ./lua #复制管理脚本 vi /etc/mysql-proxy.cnf #创建配置文件 [mysql-proxy] user=root #运行mysql-proxy用户 admin-username=root #主从mysql共有的用户 admin-password=123456 #用户的密码 proxy-address=192.168.159.128:4040 #mysql-proxy运行ip和端口,不加端口,默认4040 proxy-read-only-backend-addresses=192.168.159.129 #指定后端从slave读取数据 proxy-backend-addresses=10.10.180.209 #指定后端主master写入数据 proxy-lua-script=/usr/local/mysql-proxy/lua/rw-splitting.lua #指定读写分离配置文件位置 admin-lua-script=/usr/local/mysql-proxy/lua/admin-sql.lua #指定管理脚本 log-file=/usr/local/mysql-proxy/logs/mysql-proxy.log #日志位置 log-level=info #定义log日志级别,由高到低分别有(error|warning|info|message|debug) daemon=true #以守护进程方式运行 keepalive=true #mysql-proxy崩溃时,尝试重启 #保存退出! chmod 660 /etc/mysql-porxy.cnf 4>修改读写分离配置文件 vim /usr/local/mysql-proxy/lua/rw-splitting.lua if not proxy.global.config.rwsplit then proxy.global.config.rwsplit = { min_idle_connections = 1, #默认超过4个连接数时,才开始读写分离,改为1 max_idle_connections = 2, #默认8,改为2 is_debug = false } end 5>启动mysql-proxy: /usr/local/mysql-proxy/bin/mysql-proxy --defaults-file=/etc/mysql-proxy.cnf 查看运行的mysql-proxy线程:ps -e|grep mysql-proxy 关闭mysql-proxy:kill -9 xxxx 6>测试读写分离 (1).在主服务器创建proxy用户用于mysql-proxy使用,从服务器也会同步这个操作 grant all on *.* to 'root'@'192.168.159.128' identified by '123456'; #代理数据库字符串 proxy_mysql 192.168.159.128 4040 root/123456 ===================================================================== MySQL启动关闭 创建快捷指令:ln -s /usr/local/mysql /usr/bin/mysql 进入/usr/local/mysql目录下开启:./support-files/mysql.server start 从机上设置: change master to master_host ='10.10.180.201',master_port =3306,master_user ='root',master_password ='123456',master_log_file ='mysql-bin.000011',master_log_pos =154
相关推荐
----杜绝转载和抄袭,坚持亲自搭建。 基于mycat中间件的mysql5.7
mysql5.7 双主互备、高可用、读写分离 + keepalived 实战演练
mysql数据库主从复制读写分离步骤,有需要的朋友可以下载一下,资料哪里不好的地方也可以在下面评论,我尽力去改正
mysql5.7 双主互备、高可用、读写分离 + keepalived 实战演练。
mysql_双主+keepalived读写分离 生产实战,保证能搭建成功,已经测试多次没有问题,这个是mysql 5.7 版本的 测试
一、Mysql5.7的版本优势; 二、数据库集群的概述; 三、Mysql数据库的主从复制; 四、Mysql数据库的读写分离; 五、案例:搭建Mysql数据库集群(主从复制--二进制日志文件方式); 六、案例:搭建Mysql数据库集群...
NULL 博文链接:https://soartju.iteye.com/blog/870592
│ │ 4_Atlas配置和读写分离实现.mp4 │ │ 5_Atlas分库分表实现.mp4 │ │ 6_MHA搭建和故障切换原理剖析.mp4 │ │ │ └─MySQL DBA_课堂命令-Mycat和Atlas和MHA │ mysql-master.log │ mysql-mycat.log │ ...
1.安全性:MySQL数据库初始化完成以后,会产生一个 root@localhost 用户,从MySQL 5.7开始,root用户的密码不再是空,而是随机产生一
从 Mysql 5.7 开始支持同一数据库下并行主从复制。不过默认情况下,还是单数据库单个线程,如果需要使用多线程,需要在从节点进行配置。 Mysql 5.7 对主从复制增加了一种类型,共有两种类型,如下: DATABASE 基于...
sys(自MySQL 5.7版本):提供更易用的视图来访问performance_schema中的信息,简化性能分析工作。 日志文件 MySQL通过日志记录来保证数据一致性、支持故障恢复和审计需求,主要包括: 错误日志(Error Log):...
MySQL5.7主从配置实现方法,具体内容如下 安装环境: Master:10.211.55.11,Redhat6.5,MySQL5.7.12 Slave: 10.211.55.12,Redhat6.5,MySQL5.7.12 Master的my.cnf配置: Slave的my.cnf配置: 可指定那些...
使用mysql5.7+sharding-proxy实现分表,策略为每半年时间分一次表
MySQL Proxy最强大的一项功能是实现“读写分离(Read/Write Splitting)”。
由于GTID的优势,我们需要将传统基于file-pos的复制更改为基于GTID的复制,如何在线变更成为我们关心的一个点,如下为具体的方法: 目前我们有一个传统复制下的M-S结构: port 3301 master port 3302 slave ...
数据库中间件06-mycat的读写分离03-读写分离补充 00:03:37分钟 | 第38节 数据库中间件07-mycat的高可用-01 00:10:01分钟 | 第39节 数据库中间件08-mycat的高可用-02 00:06:13分钟 | 第40节 数据库中间件09-mycat...
为了减轻主库的压力,应该在系统应用层面做读写分离,写操作走主库,读操作走从库,下图为MySQL官网给出的主从复制的原理图,从图中可以简单的了解读写分离及主从同步的过程,分散了数据库的访问压
CentOS6.7安装mysql5.7.18 1、 解压到/usr/local目录 # tar -zxvf mysql-5.7.18-linux-glibc2.5-i686.tar.gz -C /usr/local 2、 mysql-5.7.18-linux-glibc2.5-i686文件夹重命名为mysql # cd /usr/local...
码头工人 centos7下基于docker-compose构建的lnmp环境,本环境构建过程使用的是yii2进行相关测试,所以可以支持yii2的运行 ...支持MySQL + Atlas读写分离 一。目录结构 ├── data 数据库数据目录 │ ├── mongo Mo