主从数据库作用:
1.对数据库进行读写分离,提高系统性能。主服务器专注于写操作,从数据库专注于读操作。
2.从(slave)数据库在不破坏主数据库数据的情况下,执行数据备份。
3.用主数据库产生实时数据,从(slave)数据库进行数据的分析。
4.远程数据分布:创建远程站点的本地数据副本,不需要永久的访问主服务器。
步骤: 1.修改主服务器数据库的配置文件(my.ini或my.cnf),配置如下内容。
[mysqld]
log-bin=mysql-bin
server-id=156 //这里一般去服务器ip位数
2.为执行复制的从数据创建用户、密码,并分配权限。
mysql> CREATE USER 'root'@'%' IDENTIFIED BY 'password'; //'%'代表允许 该用户远程访问数据库
mysql> GRANT REPLICATION SLAVE ON *.* TO 'user'@'%';
注意:如果在本地测试,要配置本地数据库允许远程连接。
3.获取二进制日志文件信息,若显示为空,请重启数据库即可查看到。
mysql > SHOW MASTER STATUS;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000003 | 73 | test | manual,mysql |
+------------------+----------+--------------+------------------+
(File:日志文件名 Position: 文件坐标) 4.在主数据库中释放表锁,在从数据库中进行相关配置。
a. 主数据库释放锁:
mysql> UNLOCK TABLES;
b.修改从数据库配置文件,配置server-id:
[mysqld]
server-id=232
c.在从数据库中进行连接主数据库的配置:
mysql> CHANGE MASTER TO
-> MASTER_HOST='master_host_name',
-> MASTER_USER='replication_user_name',
-> MASTER_PASSWORD='replication_password',
-> MASTER_LOG_FILE='recorded_log_file_name',
-> MASTER_LOG_POS=recorded_log_position;
5.启动从服务器并查看状态:
mysql> start slave; //停止用 stop
mysql>show slave staus\G;
image.png
Slave_IO_Running状态不为YES,说明从数据库未能成功连接到主数据库。 配置成功后,你对主数据库的更新操作都会更新到从数据库(异步处理)。
以上纯属个人理解,更多详情请查看文档:https://dev.mysql.com/doc/refman/5.7/en/replication.html
网友评论