mysql主从复制(replication)

设置步骤如下:

第一步:设置复制master/slave配置文件

停掉mysql服务 :

shell>mysqladmin shutdown -uroot -p

在master对应的my.cnf文件中添加如下内容:
[mysqld]
log-bin=mysql-bin #启动log-bin,默认是不启动的
server-id=1#设置唯一的ID,不能与slave机器的id相同</span>
启动master里面的mysql服务:

shell>mysql --defaults-file=/path/to/my.cnf &

在slave对应的my.cnf文件中添加如下内容:
[mysqld]
log-bin=mysql-bin #启动log-bin,默认是不启动的
server-id=2#设置唯一的ID,不能与master机器的id相同</span>
启动slave里面的mysql服务。

第二步:在master中创建用于主从备份的用户

GRANT REPLICATION SLAVE,RELOAD,SUPER ON *.* 
TO backup@’slave ip’ 
IDENTIFIED BY ‘1234’;

其中backup为用于replication的用户,slave ip为从机器对应的ip地址,identified by后面的是backup用户的密码。

第三步:准备数据

1.采用mysqldump:
shell> mysqldump --all-databases --master-data > dbdump.db

2.直接copy文件:(以下方式三选一)
shell> tar cf /tmp/db.tar ./data
shell> zip -r /tmp/db.zip ./data
shell> rsync --recursive ./data /tmp/dbdata

3.采用mysqlbackup:

shell>mysqlbackup -uroot -p --backup-dir=/path/to/backups backup


将数据导入到slave中:

1.采用mysqldump:

mysql < dbdump.db


2.采用copy file:
直接将文件解压到slave的data目录

3.采用mysqlbackup:

shell>mysqlbackup --defaults-file=/path/to/backups/backup-my.cnf  --backup-dir=/path/to/backups/ --datadir=/path/to/mysql/data/ -uroot -p copy-back-and-apply-log


第四步:创建slave

查看master的bin-log文件以及position:


使用change master命令来初始化从库:


记得要start slave哦!

最后,检验

在slave机器上执行show slave status\G


在master机器上也可以查看到其slave的信息


上图可以看到,master机器上mysql的端口号为13306,slave的mysql端口为12222。


主从复制配置好之后,当master上出现数据更新,slave会根据相应信息自动更新。(这是我得到的结论,如果存在问题欢迎大家指出)


上图显示的是操作master,slave跟着改变。(左边为master,右边为slave)





MySQL Shell 是一个交互式的命令行工具,它提供了许多基本功能,用于连接、管理和操作 MySQL 数据库。下面是 MySQL Shell 的基本功能: 1. 数据库连接:MySQL Shell 允许您通过指定连接参数,连接到远程或本地的 MySQL 数据库服务器。您可以指定服务器地址、端口号、用户名和密码等信息来建立连接。 2. SQL 命令执行:MySQL Shell 支持执行 SQL 命令,如 SELECT、INSERT、UPDATE、DELETE 等。您可以直接在命令行中输入 SQL 语句,并且获取结果集或影响行数。 3. JavaScript 和 Python 支持:MySQL Shell 提供了 JavaScript 和 Python 编程语言的支持。您可以在 MySQL Shell 中编写和执行 JavaScript 或 Python 脚本,以进行更复杂的数据操作和处理。 4. 数据导入和导出:MySQL Shell 提供了方便的数据导入和导出功能。您可以使用命令行或脚本将数据从文件导入到数据库中,或将数据库中的数据导出到文件中。 5. 数据库管理:MySQL Shell 允许您执行数据库管理操作,如创建数据库、创建表、修改表结构等。您可以使用 SQL 命令或脚本来管理数据库对象。 6. 集群管理:如果您使用 MySQL InnoDB Cluster 或 Group Replication 进行集群部署,MySQL Shell 提供了一些集群管理工具和命令。您可以管理集群节点、执行故障转移操作等。 7. 数据库监控和诊断:MySQL Shell 提供了一些监控和诊断工具,用于分析数据库的性能和瓶颈。您可以查看数据库的运行状态、执行性能分析、查找慢查询等。 8. 扩展插件和 API:MySQL Shell 提供了一些扩展插件和 API,允许您自定义和扩展其功能。您可以编写自己的插件,添加新的命令或功能。 这些是 MySQL Shell 的基本功能,它还提供了其他高级功能,如事务管理、复制管理、安全性设置等。您可以参考官方文档以获取更详细的信息和用法示例。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值