windows mysql5.7 安装+主从复制

环境:

windows 64位

下载mysql:

http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.17-winx64.zip

建议用迅雷下载,这样比较快点

1、把下载下来的zip文件解压到D:\mysql目录下

新建文件夹data

my-default.ini重命名为my.ini

2、进入D:\mysql\bin目录下

地址栏输入cmd打开命令窗口

输入命令:

mysqld --initialize

这时候D:\mysql\data目录下就有数据库啦

输入命令:

mysqld --install

这时候mysql服务就加到windows服务中啦

3、修改mysql登录名、密码:

1)进入D:\mysql目录下,修改my.ini 文件

[mysqld]下添加一行

[mysqld]
skip-grant-tables

2)启动mysql

进入bin目录下,打开cmd命令窗口,

net start mysql

3)进入mysql

mysql

UPDATE mysql.user SET authentication_string = password('root') WHERE `User` = 'root';

flush privileges;

exit;

4) 关闭mysql

net stop mysql

5)修改my.ini文件把之前添加的skip-grant-tables删掉

6)启动mysql

7)进入mysql:

mysql -uroot -proot

set PASSWORD=password('root');

update user set host = '%' where user = 'root' limit 1; 

flush privileges;

exit;

以上安装好了mysql,要准备两台机器,安装都这么安就好

主从复制:

环境:两台windows,都安装有mysql5.7.17

主服务器IP:192.168.1.110

从服务器IP:192.168.1.111

备注:

    1)两台机器必须互相能访问,ping一下互通就好

    2)两个mysql服务器必须都能正常访问

    3)两个mysql版本必须一致,如果不一致可能会导致复制不成功

开始配置:

主服务器my.ini:

[mysqld]

# 要与从服务器不一致

server-id=222

# 开启log-bin日志

log-bin=mysql-bin

# 只复制abc数据库

binlog-do-db=abc

完成之后保存,然后重启服务器

进入mysql数据库,输入命令:

show master status;

记一下file,position两个字段(一般file会是mysql-bin.000006)

开启一个支持主从复制的用户,输入命令:

GRANT REPLICATION SLAVE ON *.* to 'test'@'192.168.1.111' identified by 'test';

配置从服务器:

修改my.ini,在[mysqld]下添加

[mysqld]
server-id=203
#只同步abc库
replicate-do-db=abc
relay-log-index=slave-relay-bin.index
relay-log=slave-relay-bin

保存之后重启数据库

进入mysql,

change master to master_host='192.168.1.110',master_user='test',master_password='test',master_log_file='mysql-bin.000006',master_log_pos=1606;
start slave;
show slave status;

数据恢复

mysqlbinlog --base64-output=decode-rows -vv --database=mytest --start-datetime="2022-09-26 12:10:00" --stop-datetime="2022-09-26 12:15:00" mysql-bin.000005 > mybinlog.txt

 把delete语句修改成insert语句

cat mybinlog.txt | sed -n '/### /p' | sed 's/### //g;s/\/\*.*/,/g;s/DELETE FROM/INSERT INTO/g;s/WHERE/SELECT/g;' | sed -r 's/(@5.*),/\1;/g' | sed 's/@[1-9]=//g' > result.txt

完成!

备注:

从数据库不要进行写数据操作,影响复制。

出了错的话要看错误日志,在data目录下的一个.err文件,查看【error】级别日志,然后解决就好啦。

如果slave_IO_running 为connecting 检查IP是否正确,用户名密码是否正确

如果slave_IO_running 为no,检查数据库版本号,看错误日志

如果slave_SQL_Running 为no,检查时候进行了写操作,看错误日志

SET GLOBAL log_bin_trust_function_creators = 1;-- 允许写函数、方法,1418错误

祝成功!

你可能感兴趣的:(mysql,windows,主从复制)