1.后期筹备
1、两份mysql源码(不要用下载器装置,防止下载器读取已装置msyql服务而不新增装置选项)
2、新增主从的配置文件my.ini
主数据库配置内容(留神basedir前面的双斜线
,是为了避免装置的时候冒号+斜线将server的第一个字母s给疏忽调):
[mysqld]port=3306basedir=D:\\server\mysqldatadir=D:\\server\mysql\datamax_connections=200max_connect_errors=10character-set-server=utf8mb4default-storage-engine=INNODB# 主库设置server_id=1log_bin=master-binlog_bin-index=master-bin.index[mysql]# 设置mysql客户端默认字符集default-character-set=utf8mb4[client]# 设置mysql客户端连贯服务端时默认应用的端口port=3306default-character-set=utf8mb4
从库配置:
[mysqld]port=3307basedir=D:\\server\mysql_followdatadir=D:\\server\mysql_follow\datamax_connections=200max_connect_errors=10character-set-server=utf8mb4default-storage-engine=INNODB#从库配置server_id=2relay-log-index=slave-relay-bin.indexrelay-log=slave-relay-bin# 须要同步的数据库名replicate-do-db=test# 如果只同步某表# replicate-wild-do-table=test.user[mysql]# 设置mysql客户端默认字符集default-character-set=utf8mb4[client]# 设置mysql客户端连贯服务端时默认应用的端口port=3307default-character-set=utf8mb4
2.正式装置
1 装置
1、主库
cmd进入装置目录的bin目录,运行命令初始化装置 mysqld --initialize -- console
能够看到主动生成了明码
装置为服务mysqld --install mysql
启动服务net start mysql
登入mysql -uroot -p
回车输出刚刚生成的明码
批改明码alter user 'root'@'localhost' identified with mysql_native_password by 'root'
2、从库装置,与主库基本一致,不过注册服务需更换名字
cmd进入装置目录的bin目录,运行命令初始化装置 mysqld --initialize -- console
装置为服务mysqld --install mysql_follow
启动服务net start mysql_follow
登入mysql -uroot -p
回车输出刚刚生成的明码
批改明码alter user 'root'@'localhost' identified with mysql_native_password by 'root_follow'
2 配置调试
1、主库
新增用于同步的mysql用户
新增用户``
更改明码``
查看主库状态show master status
2、从库
配置主库信息(file和pos依照主库的信息配置)
mysql> change master to master_host='127.0.0.1', -> master_port=3306, -> master_user='follow', -> master_password='master_follow', -> master_log_file='master-bin.000004', -> master_log_pos=545;
开启从库热备start slave
查看从库状态show slave status \G
(G的作用是不便浏览)
3、至此再次关上数据库,就能看到数据是否曾经同步了。也能够在主库批改一个字段,再到从库去看看用了多长时间(测试屡次,最长的一次大略有2秒的提早)
错误处理
1、配置主库时报错:ERROR 3021 (HY000): This operation cannot be performed with a running slave io thread; run STOP SLAVE IO_THREAD FOR CHANNEL '' first.
解决办法:STOP SLAVE IO_THREAD FOR CHANNEL ''
2、从库状态:Slave_SQL_Running: No
解决办法:
stop slave;set global SQL_SLAVE_SKIP_COUNTER=1;start slave;
追究了一番文档,SQL_SLAVE_SKIP_COUNTER
的作用是跳过event
尾语
最初的最初,来一波硬件鄙视(应用mac者与家庭宅客请绕道,谢谢合作)first blood
double kill
不服气的各位老爷,评论区请贴图~