千家信息网

mysql中怎么配置主从复制

发表于:2024-11-30 作者:千家信息网编辑
千家信息网最后更新 2024年11月30日,mysql中怎么配置主从复制,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1.下载mysql安装包(我用的是解压版的my
千家信息网最后更新 2024年11月30日mysql中怎么配置主从复制

mysql中怎么配置主从复制,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

1.下载mysql安装包(我用的是解压版的mysql-5.7),解压成两份分别命名为MySQLmaster和MySQLslave

2.修改master的my.ini文件

[mysqld]#端口port = 3306basedir=D:/hlb/ruanjian/mysql5.7_master/mysql-5.7.25-winx64datadir=D:/hlb/ruanjian/mysql5.7_master/mysql-5.7.25-winx64/data max_connections=200character-set-server=utf8default-storage-engine=INNODBsql_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#服务idserver-id=1[mysql]default-character-set=utf8

3.修改slave的my.ini文件

[mysqld]port = 3307basedir=D:/hlb/ruanjian/mysql5.7_slave/mysql-5.7.25-winx64datadir=D:/hlb/ruanjian/mysql5.7_slave/mysql-5.7.25-winx64/data max_connections=200character-set-server=utf8default-storage-engine=INNODBsql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES#服务器idserver_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测试即可

截图效果如下:

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。

0