mysql中怎么配置主从复制,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
1.下载mysql安装包(我用的是解压版的mysql-5.7),解压成两份分别命名为MySQLmaster和MySQLslave
2.修改master的my.ini文件
[mysqld]
#端口
port = 3306
basedir=D:/hlb/ruanjian/mysql5.7_master/mysql-5.7.25-winx64
datadir=D:/hlb/ruanjian/mysql5.7_master/mysql-5.7.25-winx64/data
max_connections=200
character-set-server=utf8
default-storage-engine=INNODB
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
#需要备份的数据库
binlog-do-db=test
#不需要备份的数据库
#binlog-ignore-db=mysql
#注:bin-do-db,bin-ignore-db 为互斥关系,只需设置其中一项即可
#开启二进制日志
log-bin=mysql-bin
#服务id
server-id=1
[mysql]
default-character-set=utf8
3.修改slave的my.ini文件
[mysqld]
port = 3307
basedir=D:/hlb/ruanjian/mysql5.7_slave/mysql-5.7.25-winx64
datadir=D:/hlb/ruanjian/mysql5.7_slave/mysql-5.7.25-winx64/data
max_connections=200
character-set-server=utf8
default-storage-engine=INNODB
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
#服务器id
server_id = 2
#开启二进制日志(从服务器不是必须要开启二进制日志)
log-bin=mysql-bin
[mysql]
default-character-set=utf8
4.mysql解压版安装
)1.以管理员身份打开cmd.exe
)2.cd D:\hlb\ruanjian\mysql5.7_slave\mysql-5.7.25-winx64\bin
)3.mysqld -install mysqlmaster(或者是mysqlslave)
)4.mysqld --initialize-insecure --user=mysql(此语句用于初始化MySQL并生成data目录)
net start mysql 启动MySQL命令
net stop mysql 停止MySQL命令
mysql -uroot -P3306(或者-P3307)进入mySQL命令行
5.配置master Mysql。
binlog-do-db(前面修改master 的my.ini文件有此参数)用于指定需要同步的数据库,binlog-ignore-db指定不需要同步的数据库,如果这两个参数都不设置,则从服务器会复制主服务器的所有数据库。
一般不用root账号作同步账号,为此,我们需要在主服务器上创建一个新的用户(如 user01,密码为123456)。
这里我们用命令行的方式创建,方法如下:
)1.创建新用户:
create user 'user01'@'127.0.0.1' identified by '123456';(@后面的ip地址为允许连接的客户端的ip地址。)
)2.给新用户配置主从复制的权限:
grant replication slave on *.* to 'user01'@'127.0.0.1' identified by '123456';
(@后面的ip地址为允许连接的客户端的ip地址,如果改为 '%',就表示客户端没有ip地址的限制)
)3.查看主服务器的 master 状态:mysql> show master status;(从配置会用到里面的信息)
6.配置slave Mysql
连接MySQL从服务器:
mysql -uroot -p -P3307
配置复制的参数:
change master to master_host='127.0.0.1',master_user='user01',master_password='123456',master_port=3306,master_log_file='mysql-bin.000008',master_log_pos=498;
启动从服务器的slave复制功能:
start slave;
查看从服务器的slave状态:
mysql> show slave status \G
如果 Slave_IO_Running 和 Slave_SQL_Running 的值都为 Yes,则说明主从复制的所有配置已成功,即从服务器已经可以自动与主服务器的数据库数据实现同步了。
此后,只要主服务器的数据有更新(比如:在 test数据库中新建了一张表或者表中的数据发生了变化),从服务器都会自动与主服务器保持一致。
但如果有人刻意改变了从服务器的数据,主服务器中的数据并不会同步更新,除非我们把这两个MySQL服务器设置为互为主从。
insert into user values(1,'aa') 主MySQL测试即可
截图效果如下:
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。
亿速云「云数据库 MySQL」免部署即开即用,比自行安装部署数据库高出1倍以上的性能,双节点冗余防止单节点故障,数据自动定期备份随时恢复。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
原文链接:https://my.oschina.net/xhbl/blog/3097012