mysql主从部署文档
mysql主从部署文档
master,slave安装mysql
参考:link.
一、在master操作
mysql> CREATE DATABASE yzhao66 CHARACTER SET utf8 COLLATE utf8_general_ci;
Query OK, 1 row affected (0.00 sec)
mysql> use yzhao66 ;
Database changed
mysql> create table if not exists haha (id int(10) PRIMARY KEY AUTO_INCREMENT,name varchar(50) NOT NULL);
Query OK, 0 rows affected (0.02 sec)
mysql> insert into yzhao66 .haha values(1,"yangzhuohao"),(2,"yangzhuohao");
Query OK, 2 rows affected (0.00 sec)
Records: 2 Duplicates: 0 Warnings: 0
mysql> select * from huanqiu.haha;
+----+-------------+
| id | name |
+----+-------------+
| 1 | yangzhuohao |
| 2 | yangzhuohao |
+----+-------------+
2 rows in set (0.00 sec)
[[email protected] ~]# mysqldump -uroot yzhao66 -proot123 >/opt/yzhao66.sql
[[email protected] ~]# rsync -e "ssh -p22" -avpgolr /opt/yzhao66.sql 10.0.20.165:/opt/
mysql> grant replication slave,replication client on *.* to [email protected]'10.0.20.165' identified by "[email protected]";
Query OK, 0 rows affected (0.02 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
[[email protected] ~]# vim /etc/my.conf
(1)、 在最下面加入
server-id=1 #数据库唯一ID,主从的标识号绝对不能重复。
log-bin=mysql-bin #开启bin-log,并指定文件目录和文件名前缀
binlog-do-db=yzhao66 #需要同步的数据库。如果是多个同步库,就以此格式另写几行即可。如果不指明对某个具体库同步,就去掉此行,表示同步所有库(除了ignore忽略的库)。
binlog-ignore-db=mysql #不同步mysql系统数据库。如果是多个不同步库,就以此格式另写几行;也可以在一行,中间逗号隔开。
sync_binlog = 1 #确保binlog日志写入后与硬盘同步
binlog_checksum = none #跳过现有的采用checksum的事件,mysql5.6.5以后的版本中binlog_checksum=crc32,而低版本都是binlog_checksum=none
binlog_format = mixed #bin-log日志文件格式,设置为MIXED可以防止主键重复。
(2)、重启mysql
[[email protected] ~]# systemctl restart mysqld
mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000002 | 150 | yzhao66 | mysql | |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)
二、在slave上操作
[[email protected]~]# vim /etc/my.conf
(1)、在最下面加入
server-id=2 #设置从服务器id,必须于主服务器不同
log-bin=mysql-bin #启动MySQ二进制日志系统
replicate-do-db=yzhao66 #需要同步的数据库名。如果不指明同步哪些库,就去掉这行,表示所有库的同步(除了ignore忽略的库)。
replicate-ignore-db=mysql #不同步mysql系统数据库
slave-skip-errors = all #跳过所有的错误错误,继续执行复制操作
(2)、重启mysql
[[email protected] ~]# systemctl restart mysqld
mysql> CREATE DATABASE yzhao66 CHARACTER SET utf8 COLLATE utf8_general_ci; #先创建一个yzhao66空库,否则下面导入数据时会报错说此库不存在。
mysql> use yzhao66;
mysql> source /opt/yzhao66.sql; #导入master中多余的数据。
mysql> select*from haha;
+----+-------------+
| id | name |
+----+-------------+
| 1 | yangzhuohao |
| 2 | yangzhuohao |
+----+-------------+
2 rows in set (0.00 sec)
mysql> stop slave;
mysql> change master to master_host='10.0.20.164',master_user='slave',master_password='[email protected]',master_log_file='mysql-bin.000002',master_log_pos=150;
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201013105855449.png#pic_center)
mysql> start slave;
mysql> show slave status \G;
如果Slave_IO_Running和Slave_SQL_Running都是yes话就成功了
三、测试
master(写数据):
slave(读数据):
四、出现的问题解决
1、“error connecting to master ‘[email protected]:3306’ - retry-time: 60 retries: 2”
解决:
关闭两边防火墙
firewall-cmd --state
systemctl stop firewalld.service
systemctl disable firewalld.service
2、“Got fatal error 1236 from master when reading data from binary log: ‘binlog truncated in the middle of event; consider out of disk space on master; the first event ‘mysql-bin.000003’ at 120, the last event read from ‘./mysql-bin.000003’ at 123, the last byte read from ‘./mysql-bin.000003’ at 139.’”
解决: 链接link.
mysql主从部署文档相关教程
mysql最大限度使用机器性能
mysql最大限度使用机器性能 linux的安全增强型机制 selinux :最大程度的限制服务进程的访问权限 I/O调度模式: 默认CFQ模式,建议使用Deadline模式 liunx的调度模式: CFQ(完全公平排队I/O调度程序)、NOOP(电梯式调度程序)、Deadline(截止时间调度程序)、A
Navicat连接Mysql caching_sha2_password cannot be loaded :
Navicat连接Mysql caching_sha2_password cannot be loaded : 先检查user host 匹配表 #登录mysql -u root -p#输入密码*******#更换数据库use mysql;#查找匹配表select user,host from user; root 对应localhost(有的是%) 如果输错,会报错:ERROR 1396 (HY0
Linux系统下基于Bind_DLZ和MySQL数据的搭建DNS(亲测可用)
Linux系统下基于Bind_DLZ和MySQL数据的搭建DNS(亲测可用) 参考: https://www.cnblogs.com/saneri/p/8178065.html 一、安装MySQL 以mysql-5.6.40-linux-glibc2.12-x86_64.tar.gz包为例 包下载地址:https://downloads.mysql.com/archives/community/ 安装之前
Ubuntu 18.04 Mysql每次访问需要加sudo的问题
Ubuntu 18.04 Mysql每次访问需要加sudo的问题 参考文章:Ubuntu 18.04版本中安装Mysql后,Mysql每次访问需要加sudo的问题 Ubuntu下安装mysql后root无法登陆也无法修改密码的问题解决 解决msyql需要sudo连接的问题 本文Mysql 版本5.7.26-0ubuntu0.18.04.1 查看
CentOS 7 集群部署 Hadoop 2.7.3
CentOS 7 集群部署 Hadoop 2.7.3 为什么80%的码农都做不了架构师? 一、 说明 ?? 学习过程中顺便记录下来,方便更多人使用,初学错误请指正。 二、 安装虚拟机(本文采用CentOS 7) ??1. 本文采用CetnOS7安装部署 ??2. jdk1.8 ??3. Hadoop 2.7.3 hostname ip
20个MySQL运维案例,请查收!
20个MySQL运维案例,请查收! 墨墨导读: 日常MySQL运维中,会遇到各种各样的问题,下面分享二十个MySQL运维案例,附有问题的分析和解决办法,希望你遇到同样的问题的时候,可以淡定地处理。 数据技术嘉年华,十周年盛大开启, 点我立即报名 !大会以“自研智
Linux Centos7上部署FastDFS文件服务器
Linux Centos7上部署FastDFS文件服务器 FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视
基于gevent和pymysql实现mysql读写的异步非堵塞方案
基于gevent和pymysql实现mysql读写的异步非堵塞方案 咱们经常使用的mysql库, MySQL-Python 库是用C写的,很遗憾它是阻塞的,要实现异步的MySQL驱动必须用 Python 版本的MySQL驱动! 现在社区里面有两个纯python实现的mysql驱动。一个是 myconnpy 另一个是Py