MySQL数据库主从复制

时间:2023-01-31 19:48:17

主从复制数据库注意时间要同步:

ntpdate 172.18.0.1 #以本局域网的某一主机作为时钟服务器

主服务器:

vim /etc/my.cnf.d/server.cnf [server]  skip_name_resolve=ON      //忽略名称解析  innodb_file_per_table=ON  //每个存储表占用一个单独文件  server_id = 1             //服务id,必须存在  log_bin = msater-bin      //二进制日志,本处是相对路径,相对于/var/lib/mysql

启动mariadb.service服务

GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO 'repluser'@'192.168.1.%' IDENTIFIED BY 'centos'; //授权从服务的复制用户//REPLICATION SLAVE 常用于建立复制时所需要用到的用户权限//REPLICATION CLIENT 不可用于建立复制,有该权限时,只是多了可以使用如"SHOW SLAVE STATUS"、"SHOW MASTER STATUS"等命令。FLUSH PRIVILEGES;//写入磁盘SHOW MASTER STATUS;//查看二进制日志状态


从服务器:

vim /etc/my.cnf.d/server.cnf [server]   skip_name_resolve = ON   innodb_file_per_table = ON    server_id = 2     relay_log = relay-log  //中继日志用于存放从主服务器上读取的二进制内容  read_only=ON          //从服务器只读不能写入

启动mariadb.service服务

CHANGE MASTER TO MASTER_HOST='192.168.1.101',MASTER_USER='repluser',MASTER_PASSWORD='centos',MASTER_LOG_FILE='master-log.000003',MASTER_LOG_POS=495;//连接到主服务器的授权账户,并从指定二进制日志位置开始复制START SLAVE IO_THREAD,SQL_THREAD;//开启从节点的IO和SQL进程,前者是从主服务器复制时的IO操作,后者是从服务器本身进行的SQL操作SHOW SLAVE STATUS\G;//最后查看从服务的状态,各个参数都能从字面意思得到解释,不再赘述


测试:

此时在主服务器上创建一个数据库或者表,然后在从服务器上查看,是能够看到新创建的库或者表,虽然从本身并未创建任何东西;

至此主从复制完成

本文出自 “a_pan” 博客,谢绝转载!