MySQL中怎么配置主从复制,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
创新互联公司企业建站,10多年网站建设经验,专注于网站建设技术,精于网页设计,有多年建站和网站代运营经验,设计师为客户打造网络企业风格,提供周到的建站售前咨询和贴心的售后服务。对于成都网站设计、成都网站建设、外贸网站建设中不同领域进行深入了解和探索,创新互联在网站建设中充分了解客户行业的需求,以灵动的思维在网页中充分展现,通过对客户行业精准市场调研,为客户提供的解决方案。
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测试即可
截图效果如下:
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注创新互联行业资讯频道,感谢您对创新互联的支持。