安装Mysql 5.7
首先MySQL官方网站从http://dev.mysql.com/downloads/下载MySQL服务器安装软件包,我下载为版本“
mysql-installer-community-5.7.15.0 ”不多说,双击进入安装。
选择全产品
点击“Execute”按钮后,可能会下载一些程序,到时你自己点击安装就行了,直到所有安装完成就OK了,如下图:
程序安装完之后:
点击“Next”进入安装,如下图:
当安装完了,如下图:
进入服务器配置,如下图:
设置root密码:
下一步
下一步
注:我简单配置错误日志存放路径,如果不想进入日志配置,那就在“服务器配置”那里不选高级配置,如图下图:
应用服务配置:
应用完成
点击“check”,测试连接服务器
安装完成:
MySQL安装完成,验证一下,是否可以正常使用,如下图:
或者使用MySQL Workbench,如下图:
输入密码后,查询一下,如下图:
Windows下搭建MySQL Master Slave:
1.逻辑架构图
注:需要在master和slave节点上各安装一个mysql5.7,底层操作系统都为同一版本windows
2.搭建过程
环境:Windows Server 2012 + mysql-5.7.15.0-win64
主服务器(Master):10.1.1.189
从服务器(Slave):10.1.1.231
使用Master/Slave架构,Slave为只读模式;
配置主服务器Master
编辑数据库配置文件my-default.ini,在[mysqld]标签下面加入下面代码:
log-bin=mysql-bin
server-id=1
innodb_flush_log_at_trx_commit=1
sync_binlog=1
#binlog_do_db=barfoo_weibo_hottop (指定要同步的数据库)
binlog_ignore_db=mysql
binlog_cache_size=2M
max_binlog_size=128M
重启MySQL服务
点击“开始”->“运行”(快捷键Win+R)
停止:输入 net stop mysql57
启动:输入 net start mysql57
在Master服务器新建一个用户赋予“REPLICATION SLAVE”的权限,你不需要再赋予其它的权限,这里指定的IP为Slave的IP;(@后面为允许制定的IP 访问主库的某个权限)
mysql>CREATE USER viajar@'10.1.1.231' IDENTIFIED BY 'abc2017';
mysql>GRANT REPLICATION SLAVE ON *.* TO viajar @'10.1.1.231' IDENTIFIED BY 'abc2017';
注:删除用户drop user viajar@‘10.1.1.231’;
4. 在Master服务器执行下面的脚本,让数据库只能读;
mysql>FLUSH TABLES WITH READ LOCK;
5. 拷贝数据库文件夹和ibdata1文件到本地临时文件夹中,马上执行下面的步骤;
6. 查看Master服务器的状态,记下File及Position的值,后面设置Slave服务器的时候需要用到;
mysql>SHOW MASTER logs;
mysql>SHOW MASTER STATUS;
注:执行完后贴到从库的change脚本里
7. 对表进行解锁,恢复数据库读写;
mysql>UNLOCK TABLES;
8. 使用FTP等工具把第5步骤的临时文件传到Slave服务器;并覆盖slave的数据文件
注:假如是你完全新安装mysql主从服务器,这个一步就不需要。因为新安装的master和slave有相同的数据。关停Master服务器,将Master中的数据拷贝到B服务器中,使得Master和slave中的数据同步,并且确保在全部设置操作结束前,禁止在Master和slave服务器中进行写操作,使得两数据库中的数据一定要相同!
配置从服务器(Slave)
- 编辑数据库配置文件my.ini,在[mysqld]的下面加入下面代码,可以自己定义数值,只要保证唯一的就行,与Master的能区分开就行;
server-id=2
read-only=1
#log-bin=mysql-bin (从库不写log-bin)
#relay_log=mysql-relay-bin(从服务器I/O线程将主服务器的二进制日志读取过来记录到从服务器本地文件,然后SQL线程会读取relay-log日志的内容并应用到从服务器)
#log_slave_updates=1 (ABC,B即是A的从也是C的主,需要在B配置这个参数)
- 重启MySQL
- 登录MySQL服务器,执行下面的脚本命令:
mysql>CHANGE MASTER TO
MASTER_HOST='172.17.2.42',
MASTER_USER='rep',
MASTER_PASSWORD='glprep1!',
MASTER_PORT=3306,
MASTER_CONNECT_RETRY=30,
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=38133;
注:用SHOW SLAVE STATUS\G查看配置是否正确
- 启动Slave进程,执行下面的脚本命令;
mysql>START SLAVE;
- 检查主从同步状态,执行下面的脚本命令,其中Slave_IO_Running 与 Slave_SQL_Running 的值都必须为YES,才表明状态正常。
mysql>SHOW SLAVE STATUS/G;
3.测试主从服务器数据同步
主库创建表:
use world
create table t_master01(id int(10),name varchar(20));
insert into t_master01 values(001,'Lee');
select * from t_master01
从库查询表此表是否被创建,且数据已插入:
use world
select * from t_master01;
注:主从同步成功,搭建完成。
注:relay-bin在从库已经有了,所以从库的my.ini不需要配置此参数