mysql主从同步数据初始化_mysql主从同步配置
Mysql的主从复制至少是需要两个Mysql的服务,当然Mysql的服务是可以分布在不同的服务器上,也可以在一台服务器上启动多个服务。
首先确保主从服务器上的Mysql版本相同。
一、安装部署mysql
1、 安装服务器端:yum install mysql-server
yum install mysql-devel
安装客户端: yum install mysql
2、启动服务
service mysqld start
3、安装完后执行下面命令进行初始化配置,会要求设置密码:
/usr/bin/mysql_secure_installation
4、设置允许远程连接到该mysql服务器
登陆到mysql: mysql -uroot -ptest123
[root@zhoujietest ~]# mysql -uroot -ptest123#账号root,密码test123
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 18
Server version: 5.5.35-log MySQL Community Server (GPL) by Remi
Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
这时比如通过navicat连接是是失败的。需要设置下mysql库下面的user表:
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| cmdb |
| mysql |
| performance_schema |
| test |
+--------------------+
5 rows in set (0.00 sec)
mysql> use mysql;
Database changed
mysql> update user set host='%' where user='root';
ERROR 1062 (23000): Duplicate entry '%-root' for key 'PRIMARY'
mysql>
虽然提示更新失败,但实际上是更新成功的。设置允许任意主机连接。
若是进入mysql报这个错:Access denied for user (using password: YES)
则如下解决:
1)、关闭mysql
service mysqld stop
2)、屏蔽权限
mysqld_safe --skip-grant-table
3)、另起一个终端执行如下:
[root@zhoujietest ~]#mysql -u root
mysql>delete from user where user='';
mysql>flush privileges; #这个一定要执行,否则关闭之前的终端错误会重现
mysql>\q
二、配置mysql主从同步
准备两台测试的虚拟机,如上安装mysql环境,并开启mysql服务
主master : 192.168.8.10
从slave : 192.168.8.11
1、配置主库:
1)、授权给从数据库服务器
mysql>GRANT REPLICATION SLAVE ON *.* to 'rep1'@'192.168.8.11' identified by 'test123456';
mysql>FLUSH PRIVILEGES;
2)、修改主库配置文件,开启binlog,并设置server-id,每次修改配置文件后都要重启mysql服务才会生效
vim /etc/my.cnf
在该配置文件[mysqld]下面添加下面内容:
[mysqld]
log-bin=/var/lib/mysql/binlog
server-id=1
binlog-do-db =cmdb
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
......
server-id:master端的ID号;
log-bin:同步的日志路径及文件名,一定注意这个目录要是mysql有权限写入的(我这里是偷懒了,直接放在了下面那个datadir下面);
binlog-do-db:要同步的数据库名
还可以显示 设置不同步的数据库:
binlog-ignore-db = mysql 不同步mysql库和test库
binlog-ignore-db = test
修改配置文件后,重启服务:service mysqld restart
如果启动失败,通过cat /var/log/mysqld.log | tail -30 查看mysql启动失败的日志,从日志内容寻找解决方案。
3)、查看主服务器当前二进制日志名和偏移量,这个操作的目的是为了在从数据库启动后,从这个点开始进行数据的恢复
mysql>show master status;+---------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+---------------+----------+--------------+------------------+
| binlog.000001 | 1304 | cmdb | |
+---------------+----------+--------------+------------------+
1 row in set (0.00 sec)
主服务器已配置好。
2、配置从库
1)、理所当然也是从配置文件着手,在/etc/my.cnf 添加下面配置:
[mysqld]
server-id=2
master-host=192.168.8.10
master-user=rep1
master-password=test123456
master-port=3306
replicate-do-db=cmdb
......
重启时报错:mysqld: unknown variable ‘master-host=
说明mysql不认识这些变量,网上搜罗了一番,原因是mysql5.5+版本主从复制不支持这些变量,需要在从库上用命令来设置:
mysql> CHANGE MASTER TO MASTER_HOST='192.168.8.10',
MASTER_PORT=3306,
MASTER_USER='rep1',
MASTER_PASSWORD='test123456',
MASTER_LOG_FILE='binlog.000001',
MASTER_LOG_POS=1304; #后面两个参数的值与主库保持一致
2)、启动slave进程
mysql>slave start;
Query OK, 0 rows affected (0.04 sec)
3)、查看slave的状态,如果下面两项值为YES,则表示配置正确:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
从库正在等待主库更新数据。。。Waitin for master to send event...
三、同步主库已有数据到从库
主库操作:
1、停止主库的数据更新操作
mysql>flush tables with read lock;
2、新开终端,生成主数据库的备份(导出数据库)
[root@zhoujietest ~]# mysqldump -uroot -ptest123 cmdb > cmdb.sql
3、将备份文件传到从库
[root@zhoujietest ~]# scp cmdb.sql root@192.168.8.11:/root/
4、主库解锁
mysql>unlock tables;
从库操作:
1、停止从库slave
mysql>slave stop;
2、新建数据库cmdb
mysql> create database cmdb default charset utf8;
3、导入数据
[root@ops-dev ~]# mysql -uroot -ptest123 cmdb
4、查看从库已有该数据库和数据
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| cmdb |
| mysql |
| performance_schema |
| test |
+--------------------+
此时主从库的数据完全一致,如果对主库进行增删改操作,从库会自动同步进行操作。
mysql主从同步数据初始化_mysql主从同步配置相关推荐
- PLSQL导出、导入数据 和 同步数据 以及 navicat 里同步数据 以及解决plsql导出数据乱码问题
PLSQL导出.导入数据 和 同步数据 以及 navicat 里同步数据 以及解决plsql导出数据乱码问题 1. 导出数据 1.1 导出.pde文件 1.2 导出sql文件 1.2.1 导出sql压 ...
- mysql主从不同步怎么恢复_mysql主从不同步时,怎么恢复
mysql主从不同步时,怎么恢复 Mysql的主从数据库没有同步 先上Master库: mysql>show processlist; 查看下进程是否Sleep太多.发现很正常. show ...
- mysql主从同步 忽略表_mysql 主从同步时忽略指定的表
生产环境中mysql主从库同步停止了,不能停服务,在重新开启同步的时候报了错误 Could not execute Update_rows event on table [db_name].[tabl ...
- 阿里云mysql主从有延迟怎么办_MySQL主从数据库同步延迟问题解决-阿里云开发者社区...
MySQL的主从同步是一个很成熟的架构,优点为:①在从服务器可以执行查询工作(即我们常说的读功能),降低主服务器压力;②在从主服务器进行备份,避免备份期间影响主服务器服务;③当主服务器出现问题时,可以 ...
- 阿里云mysql主从有延迟怎么办_MySQL主从数据库同步延迟问题解决
MySQL主从数据库同步延迟问题 摘要:MySQL的主从同步是一个很成熟的架构,优点为:①在从服务器可以执行查询工作(即我们常说的读功能),降低主服务器压力;②在从主服务器进行备份,避免备份期间影响主 ...
- mysql同步详解_MYSQL 主从同步详解
MYSQL 主从同步详解 作者: 稀土掘金 更新时间:2021-01-22 15:08:29 原文链接 关于MYSQL主从同步 什么是MYSQL的主从复制 主从复制是指将一个服务器作为主服务器,所有的 ...
- mysql主从是同步还是异步_mysql主从同步异步场景的分析
之所以进行这块内容的研究,主要针对之前遇到的两个未解的疑惑: a. 线上有个系统,半同步状态经常从半同步变成异步,然后又马上恢复为半同步,具体原因未明,虽然之前也猜得八九不离十,但还是未完全确定. b ...
- mysql主从延迟时间是多少_MySQL主从同步个般是多久的延迟?
原标题:MySQL主从同步个般是多久的延迟? 这次单独调查一下主从延迟的时间.这里说的主从延迟,并不是指"从库更新性能跟不上主库", 而是"一个命令从主库更新完成到从库更 ...
- mysql 修改表属主_mysql主从配置实现一主一从读写分离
主从介绍 Mysql主从又叫Replication.AB复制.简单讲就是A与B两台机器做主从后,在A上写数据,另外一台B也会跟着写数据,实现数据实时同步 mysql主从是基于binlog,主上需开启b ...
最新文章
- 媒体智能应用落地靠5G,视频社交需要想象力
- 不会做特征工程的 AI 研究员不是好数据科学家!上篇 - 连续数据的处理方法 本文作者:s5248 编辑:杨晓凡 2018-01-19 11:32 导语:即便现代机器学习模型已经很先进了,也别
- docker run -it 如何退出_Docker学习笔记(4)容器的基本命令 1 - 你个小秃头
- [数据结构-严蔚敏版]P64循环队列-队列的顺序存储结构
- python requests 代理超时_python requests 超时与重试
- url decode problem
- Spring 经典高频面试题
- 错误处理和调试2 - C++快速入门31
- 视频教程-程序员面试宝典——助你拿到好offer-招聘/面试
- 经典路径规划算法分类概述(更新中)
- IBM制造业专家赵亮:汽车及制造业质量体系管理
- win10计算机控制面板在哪里,Win10控制面板在哪里?Win10怎么打开控制面板?
- 为什么对方的QQ邮箱收不到我QQ邮箱发的邮件?
- 浅谈如何做好项目管理
- xp如何添加桌面计算机回收站,WinXP如何找到回收站图标?
- k8s——kubeadm工具使用
- HTML中<meta>标签的name属性都有哪些——标准元数据名称
- 计算机加密怎么设置方法,如何设置电脑密码?手把手教你如何设置电脑Windows密码...
- Redis和lua,锦上添花
- Wallabag——开源稍后读知识管理服务工具