MySQL基础之二:主从复制
2019-07-24 08:59:08来源:博客园 阅读 ()
# mysql主从复制逻辑: 1.从库执行start slave 开启主从复制。 2.从库请求连接到主库,并且指定binlog文件以及位置后发出请求。 3.主库收到从库请求后,将信息返回给从库,除了信息日志外,还包含新的文件名称以及下一个更新节点。 4.从库接收到主库发送的信息后,会将信息更新至自身的relay log中,并且将新的文件名记录到master-info中。 5.从库SQL线程会检测本地relay-log,如有变化,会将信息解析为SQL可执行语句并且执行该语句,同时在relay-log.info中记录当前文件名以及位置点。 mysql 主从复制操作方法: # 主库: 1.保证bin-log的开启(可在mysql中利用 show variables where variable_name like 'bin%' 中查看,其中栏位值为ON则为开启,OFF则为关闭 bin-log具体逻辑取决于my.cnf设定值中的bin-log) 2.新建用户并且设定其为replication slave账户(grant replication slave on db_name.tb_name to 'user_name'@'host_name' identified by 'password';) 3.对主库锁表只读(flush table with read lock;) 4.收集master的信息,包括(replication slave username and password , master status filename and master status position(get master status: show master status ) ) 5.导出主库数据,解锁(unlock tables;) # 从库: 1.将主库数据导入从库 2.将从库连接主库(change master to master_host='host_name',master_port='master_port',master_user='master_user',paster_password='master_password',master_log_file='master_status_log_file',master_log_pos='master_status_log_position'); 3.开启主从复制,start slave; 查看从库状态是否OK(show slave status\G;)如果确定状态为NO时,则需要重新启动master和slave,再次检查状态是否OK
# 主库配置 vim /etc/my.cnf ############################################## [mysqld] datadir = /data/mysql socket = /tmp/mysql.sock basedir = /usr/local/mysql user = mysql port = 3306 server-id = 97 log-bin = mysql-bin slow_query_log_file = /var/log/mysql/slow.log slow_query_log = 1 symbolic-links = 0 log-error=/var/log/mysql/mysql_error.log ############################################## # 从库配置 vim /etc/my.cnf ############################################## [mysqld] datadir = /data/mysql socket = /tmp/mysql.sock basedir = /usr/local/mysql user = mysql port = 3306 server-id = 98 log-bin = mysql-bin # slave开启只读权限 read_only = 1 # 打开中继日志 relay_log = /var/log/mysql-relay-bin slow_query_log_file = /var/log/mysql/slow.log slow_query_log = 1 symbolic-links = 0 log-error=/var/log/mysql/mysql_error.log ############################################## #在master授权远程登录方式 mysql > GRANT REPLICATION SLAVE ON *.* to 'root'@'%' identified by ' Password1!'; mysql > FLUSH PRIVILEGES; # 在slave上连接master mysql > change master to master_host='172.50.1.97',master_user='root',master_password='Password1!',master_log_file='mysql-bin.000001',master_log_pos=687; # 在slave上开启slave功能 mysql > start slave; # 在slave上查询状态 mysql > show slave status;
原文链接:https://www.cnblogs.com/herui1991/p/11084181.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:04、MySQL—数据基础操作
- MySQL replace函数怎么替换字符串语句 2020-03-09
- PHP访问MySQL查询超时怎么办 2020-03-09
- mysql登录时闪退 2020-02-27
- MySQL出现1067错误号 2020-02-27
- mysql7.x如何单独安装mysql 2020-02-27
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash