系统环境:Centos7

主:192.168.8.162

从:192.168.8.127

前提条件

a.关闭防火墙 

  • systemctl stop firewalld

关闭防火墙开机自启

  • systemctl disable firewalld

b.关闭selinux

  • vi /etc/selinux/config

将SELINUX=enforcing改为SELINUX=disabled

设置后需要重启才能生效

本文参考:CSDN“我的小熊不见了”博主,原文链接:https://blog.csdn.net/qq1311256696/article/details/90747435

首先两台数据库安装mysql8.0

1.查看本机是否安装mariadb

  • rpm -qa|grep mariadb 
  • rpm -e --nodeps 文件名 
2.查看是否已经安装了mysql
  • rpm -qa | grep -i mysql
如果存在则通过 rpm -ev 包名 --nodeps 卸载
再执行 rpm -qa | grep -i mysql 看是否卸载完成
查找mysql文件,使用rm -rf mysql文件路径删除
  • find / -name mysql
 
删除配置文档
  • rm -rf /etc/my.cnf

3.安装mysql8.0的yum源

  • yum -y install https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm

执行 yum search mysql  如果出现 mysql-community-server.x86_64 则安装源成功

4.安装mysql8.0

  • yum -y install mysql-community-server.x86_64

5.启动mysql

  • systemctl start mysqld

开机自启:systemctl enable mysqld

6.查看mysql版本

  • mysql -V

7.设置mysql密码

  • cat /var/log/mysqld.log

!/dChNphO81E  mysql随机生成的密码

修改密码

  • mysqladmin -u root -p password

9.主库配置

创建一个复制用户,授予用户 slave REPLICATION SLAVE权限和REPLICATION CLIENT权限,用于在主从库之间同步数据。

  • mysql -uroot -p
  • USE mysql;
  • CREATE USER slave IDENTIFIED BY 'Slave@123';
  • GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave'@'%';

  • FLUSH PRIVILEGES;

vi /etc/my.cnf

添加

server-id=162
log-bin=/var/lib/mysql/mysql-bin

重启数据库

  • systemctl restart mysqld

连接数据库

  • mysql -uroot -p

查看日志情况

  • SHOW MASTER STATUS;

记录下File和Position的值

10.从库配置

  • vi /etc/my.cnf

添加 server-id=127

重启数据库

  • systemctl restart mysqld

连接数据库

  • mysql -uroot -p

停止主从

  • stop slave

从数据连接主数据库:

  • change master to master_host='192.168.8.162', master_user='slave', master_password='Slave@123', master_port=3306, master_log_file='mysql-bin.000002', master_log_pos= 1013, master_connect_retry=30;
  • host、user、password、port为主库的ip、用户名和密码、端口
  • master_log_file为从主库哪个日志读数据即上文中的File

  • master_log_pos为从哪里开始读即上文中的Position

  • master_connect_retry为超时重试时间

开始主从

  • start slave

查看同步状态

  • show slave status \G;

SlaveIORunning 和 SlaveSQLRunning 都是Yes说明主从复制已经开启。

若 Slave_IO_Running为Connecting可能是mysql8的密码规则问题

主数据库修改slave的密码规则即可:

  • ALTER USER 'slave'@'%' IDENTIFIED WITH mysql_native_password BY 'Slave@123';
mysql> stop slave;
Query OK, rows affected (0.00 sec) mysql> change master to master_host='192.168.8.162', master_user='slave', master_password='Slave@123', master_port=, master_log_file='mysql-bin.000002', master_log_pos= , master_connect_retry=;
Query OK, rows affected, warnings (0.01 sec) mysql> show slave statu \G;
ERROR (): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'statu' at line
ERROR:
No query specified mysql> show slave status \G;
*************************** . row ***************************
Slave_IO_State:
Master_Host: 192.168.8.162
Master_User: slave
Master_Port:
Connect_Retry:
Master_Log_File: mysql-bin.
Read_Master_Log_Pos:
Relay_Log_File: localhost-relay-bin.
Relay_Log_Pos:
Relay_Master_Log_File: mysql-bin.
Slave_IO_Running: No
Slave_SQL_Running: No
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno:
Last_Error:
Skip_Counter:
Exec_Master_Log_Pos:
Relay_Log_Space:
Until_Condition: None
Until_Log_File:
Until_Log_Pos:
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: NULL
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno:
Last_IO_Error: error connecting to master 'slave@192.168.8.162:3306' - retry-time: retries: message: Authentication plugin 'caching_sha2_password' reported error: Authentication requires secure connection.
Last_SQL_Errno:
Last_SQL_Error:
Replicate_Ignore_Server_Ids:
Master_Server_Id:
Master_UUID:
Master_Info_File: mysql.slave_master_info
SQL_Delay:
SQL_Remaining_Delay: NULL
Slave_SQL_Running_State:
Master_Retry_Count:
Master_Bind:
Last_IO_Error_Timestamp: ::
Last_SQL_Error_Timestamp:
Master_SSL_Crl:
Master_SSL_Crlpath:
Retrieved_Gtid_Set:
Executed_Gtid_Set:
Auto_Position:
Replicate_Rewrite_DB:
Channel_Name:
Master_TLS_Version:
Master_public_key_path:
Get_master_public_key:
Network_Namespace:
row in set (0.00 sec) ERROR:
No query specified mysql> start slave;
Query OK, rows affected (0.01 sec) mysql> show slave status \G;
*************************** . row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.8.162
Master_User: slave
Master_Port:
Connect_Retry:
Master_Log_File: mysql-bin.
Read_Master_Log_Pos:
Relay_Log_File: localhost-relay-bin.
Relay_Log_Pos:
Relay_Master_Log_File: mysql-bin.
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno:
Last_Error:
Skip_Counter:
Exec_Master_Log_Pos:
Relay_Log_Space:
Until_Condition: None
Until_Log_File:
Until_Log_Pos:
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master:
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno:
Last_IO_Error:
Last_SQL_Errno:
Last_SQL_Error:
Replicate_Ignore_Server_Ids:
Master_Server_Id:
Master_UUID: 0d26dbd8-d501-11e9-9f3d-000c29e24dcf
Master_Info_File: mysql.slave_master_info
SQL_Delay:
SQL_Remaining_Delay: NULL
Slave_SQL_Running_State: Slave has read all relay log; waiting for more updates
Master_Retry_Count:
Master_Bind:
Last_IO_Error_Timestamp:
Last_SQL_Error_Timestamp:
Master_SSL_Crl:
Master_SSL_Crlpath:
Retrieved_Gtid_Set:
Executed_Gtid_Set:
Auto_Position:
Replicate_Rewrite_DB:
Channel_Name:
Master_TLS_Version:
Master_public_key_path:
Get_master_public_key:
Network_Namespace:
row in set (0.00 sec) ERROR:
No query specified

11.测试主从数据库

主库创建test数据库

  • create database test;

测试完成!

如果想只同步某一个数据库

可以在主库的my.cnf

添加

binlog-do-db:binlog日志记录哪个db

或者在从库的my.cnf添加

replicate-do-db:需要复制的数据库名

replicate-ignore-db:不需要复制的数据库名

【linux】【mysql】mysql主从数据库的更多相关文章

  1. Mysql的主从数据库没有同步的解决办法

    Mysql的主从数据库没有同步的解决办法 今天发现Mysql的主从数据库没有同步 先上Master库: mysql>show processlist; 查看下进程是否Sleep太多.发现很正常. ...

  2. 解决Mysql的主从数据库没有同步的两种方法

    今天发现Mysql的主从数据库没有同步 先上Master库: mysql>show processlist;   查看下进程是否Sleep太多.发现很正常.show master status; ...

  3. mysql配置主从数据库

    1.目的 1.1 实现数据备份 1.2 项目访问时可以实现读写分离,提高访问和操作数据的速度<读写分离好处> 2.背景 这次的主从配置主要实现主库数据的改变可以实现同步到从库中: 此次试验 ...

  4. wamp mysql 创建主从数据库

    这跟你是不是wmap没有关系的, wamp是一个集成环境,只是一次性帮你创建一个web服务器而已 下面给你些配置 一.登录Master服务器,修改my.ini ,添加如下内容: [wampmysqld ...

  5. mysql服务器主从数据库同步配置(转)

    <a href=""></a> <p>首先需要在同一个局域网内的两台机器(当然也可以用一台机器虚拟两台机器出来),都安装上mysql服务.< ...

  6. MySQL搭建主从数据库 实现读写分离

    首先声明,实际生产中,网站为了提高用户体验,性能等,将数据库实现读写分离是有必要的,我们让主数据库去写入数据,然后当用户查询的时候,然后在从数据库读取数据,故能减轻数据库的压力,实现良好的用户体验! ...

  7. mysql服务器主从数据库同步配置

    首先需要在同一个局域网内的两台机器(当然也可以用一台机器虚拟两台机器出来),都安装上mysql服务. 主机A: 192.168.1.100 从机B: 192.168.1.101 可以有多台从机. 1. ...

  8. mysql主从数据库不同步的2种解决方法(转)

    今天发现Mysql的主从数据库没有同步 先上Master库: mysql>show processlist; 查看下进程是否Sleep太多.发现很正常. show master status; ...

  9. mysql主从数据库不同步的2种解决方法 (转载)

    今天发现Mysql的主从数据库没有同步 先上Master库: mysql>show processlist; 查看下进程是否Sleep太多.发现很正常. show master status; ...

  10. Linux下MySQL数据库主从同步配置

    说明: 操作系统:CentOS 5.x 64位 MySQL数据库版本:mysql-5.5.35 MySQL主服务器:192.168.21.128 MySQL从服务器:192.168.21.129 准备 ...

随机推荐

  1. 《NVM-Express-1_4-2019.06.10-Ratified》学习笔记(8)

    8 Feature(特性) 8.1 固件升级过程 固件升级通过重启激活的过程是: 1. 主机发一个Firmware Image Download命令,下载固件映像版本到controller.可能有多个 ...

  2. 01 - zabbix | LLD自动发现

    01 - zabbix | LLD自动发现 1. 原理 zabbix支持设置变量,用{#VAR_NAME}来表示.然后有一些系统保留的变量 2. 设置 2.1 交换机电源自动发现   名字写好后进进入 ...

  3. python 15 带参装饰器

    目录 2. 带参数的装饰器 3. 多个装饰器装饰一个函数 2. 带参数的装饰器 #在装饰器的基础上再套一层 def auth(argv): def wrapper(func): def inner(* ...

  4. 带你入门SpringCloud服务发现 | Eurka搭建和使用

    前言 服务注册与发现是微服务中最为基础的环节,而 Eureka 就是一个可以帮助你实现服务注册与发现的选择之一.如果你对 Eureka 和服务发现了解甚少,那么该篇博客将会帮助到你.文中通过具体操作带 ...

  5. 剑指Offer(二十八):数组中出现次数超过一半的数字

    剑指Offer(二十八):数组中出现次数超过一半的数字 搜索微信公众号:'AI-ming3526'或者'计算机视觉这件小事' 获取更多算法.机器学习干货 csdn:https://blog.csdn. ...

  6. 检查python标识符是否有效

  7. 牛客暑假多校第一场 J Different Integers

    题意:给你一个数组, q次询问, 每次询问都会有1个[l, r] 求 区间[1,l] 和 [r, n] 中 数字的种类是多少. 解法1, 莫队暴力: 代码: #include<bits/stdc ...

  8. django中使用事务以及接入支付宝支付功能

    之前一直想记录一下在项目中使用到的事务以及支付宝支付功能,自己一直犯懒没有完,趁今天有点兴致,在这记录一下. 商城项目必备的就是支付订单的功能,所以就会涉及到订单的保存以及支付接口的引入.先来看看订单 ...

  9. 大白话通俗易懂的讲解javascript原型与原型链(__proto__、prototype、constructor的区别)

    javascript原型和原型链是js中的重点也是难点,理论上来说应该是属于面向对象编程的基础知识,那么我们今天为什么要来讲这个呢?(因为我也忘了,最近看资料才揭开面纱……  哈哈哈) 好了,直接进入 ...

  10. 关于C语言\b \t \n及转义序列的理解

    转义序列 说明 \b 后退一格(Backspace) \t 水平制表(Tab=4个空格) \v 垂直制表 \r 回车(Enter) \f 换页 \a 发出鸣响 \n 换行 \" 输出/输入双 ...