前提条件

准备了两台虚拟机 mysql-master 192.168.30.199, mysql-slave 192.168.30.198

1:官网下载并安装Mysql8

  

1:安装mysql

    1.1:官网下载mysql的安装包,并解压到/usr/local/mysql目录下。
1.1.1:解压xz包,xz -d mysql-8.0.27-linux-glibc2.12-x86_64.tar.xz(解压成tar包)
1.1.2:解压tar包,tar -xvf mysql-8.0.27-linux-glibc2.12-x86_64.tar -C /usr/local
1.1.3:将数据移到mysql目录 mv ./mysql-8.0.27-linux-glibc2.12-x86_64/* ./mysql
1.1.4: 在mysql目录下创建data目录,mkdir data
1.2:创建mysql用户,并修改/usr/local/mysql目录的权限
1.2.1:创建mysql用户,useradd mysql
1.2.2:修改mysql用户的密码,passwd mysql
1.2.3:修改/usr/local/mysql目录的所属用户 chown -R mysql:mysql mysql
1.3:编辑配置文件/etc/my.cnf
[root@localhost local]# cat /etc/my.cnf
[mysqld]
port=3306 #3306端口
basedir=/usr/local/mysql # mysql的安装目录
datadir=/usr/local/mysql/data # mysql数据库的数据的存放目录
max_connections=10000 # 允许最大连接数
max_connect_errors=10 # 允许连接失败的次数,防止有人从该主机试图攻击数据库系统
character-set-server=utf8 # 服务端使用的字符集
default-storage-engine=INNODB # 默认存储引擎

[mysql]
default-character-set=utf8 # 设置mysql客户端默认字符集
1.4:切换到MySQL用户,进入/usr/local/mysql/bin目录启动服务
./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --lower_case_table_names=1
1.4.1: ./mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --initialize
1.4.2: 保存初始密码
登录mysql,修改root用户密码:
./bin/mysql -uroot -p
alter user 'root'@'localhost' identified by 'huang1314';
CREATE USER 'root'@'%' IDENTIFIED with mysql_native_password BY 'huang1314';
grant all privileges on *.* to 'root'@'%' with grant option;
flush privileges;
1.5:将mysql添加到服务 开机自启,进入/usr/local/mysql/support-files进行设置
1.5.1:cp -a mysql.server /etc/init.d/mysqld
1.5.2:chmod +x /etc/init.d/mysqld
1.5.3:chkconfig --add mysqld
1.6:配置环境变量
1.6.1:echo "export PATH=$PATH:/usr/local/mysql/bin" >>/etc/profile
1.6.2:source /etc/profile
1.7:启动mysql
1.7.1:启动命令 servie mysqld start|status|stop|restart
1.7.2:修改root密码。ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Hyx@20220527';
1.7.4:show databases;
1.7.5:use mysql;
1.7.3:update user set host='%' where user = 'root'; ---设置root用户可在任意主机登录,即可远程登录

2:根据上述步骤,分别先安装好mysql。现在开始配置master配置。
  2.1:主库安装在192.168.30.199机器,这时需要修改主库的/etc/my.cnf配置文件。具体配置如下,指定service-id,启动bin-log日志

[mysql]
# 默认字符集
default-character-set=utf8mb4 [client]
port=3306
socket=/tmp/mysql.sock [mysqld]
skip-name-resolve
port=3306
basedir=/usr/local/mysql # mysql的安装目录
datadir=/usr/local/mysql/data # mysql数据库的数据的存放目录
max_connections=10000 # 允许最大连接数
max_connect_errors=10 # 允许连接失败的次数,防止有人从该主机试图攻击数据库系统
default-storage-engine=INNODB # 默认存储引擎
lower_case_table_names=1 #开启日志文件
# 设置server_id,注意要唯一
server-id=101
binlog-format=ROW # 选择 ROW 模式
log-bin=mysql-mater-bin
# relay_log配置中继日志
relay_log=edu-mysql-relay-bin
# 永久设置时区时间
default-time_zone = '+8:00'
#指定要同步的数据库,多个用逗号隔开(可以不用配置)
binlog_do_db=study_db sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES #socket=/var/lib/mysql/mysql.sock
socket=/tmp/mysql.sock
collation_server=utf8mb4_general_ci
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd [mysqld_safe]
character-set-server=utf8mb4 # 服务端使用的字符集
skip-name-resolve
log-error=/usr/local/mysql/data/error.log
pid-file=/usr/local/mysql/data/mysql.pid
default-character-set=utf8 # 设置mysql客户端默认字符集
#
# include all files from the config directory
#
!includedir /etc/my.cnf.d

  2.2:重启数据库 service mysqld restart,查询并验证service_id是否存在。

-- 查询server_id是否存在
show variables like '%server_id%';
-- 查询同步的文件和行数,如下查询的数据在从服务器上执行命令会用到。
show master status;

2.3:   连接数据库,创建用来同步数据的用户syncadm,并授权。

-- 创建用户
create user 'syncadm'@'%' IDENTIFIED by 'syncadm';
-- 授权
grant REPLICATION CLIENT ON *.* TO syncadm;
grant REPLICATION SLAVE ON *.* TO syncadm;
grant SUPER ON *.* TO syncadm;
grant reload on *.* to syncadm;
-- 刷新权限
FLUSH PRIVILEGES;

 2.4:执行show master status;查看当前二进制日志名称和偏移量。记录file和position的值。

3:修改从库slave的/etc/my.cnf文件,

  3.1:   

  # 设置server_id,注意要唯一
  server-id=102

# 如果有可能作为主库,这里也可以开启binlog
  log-bin=mysql-slave-bin
  # relay_log配置中继日志(同步日志)
  relay_log=edu-mysql-relay-bin

  3.2:使用命令配置从机

-- 停止同步
STOP SLAVE;
-- 重置同步
reset slave;
-- 配置从机
CHANGE MASTER TO master_host = '192.168.30.199',
master_user = 'syncadm',
master_password = 'syncadm',
master_port = 3306,
master_log_file = 'mysql-mater-bin.000009',
master_log_pos = 30778,
master_connect_retry = 30,
get_master_public_key = 1;
-- 开启同步
start slave;
-- 查看同步状态
show slave status;

4: 验证,在主库建立表,增删改查数据,看是否同步成功。

 



Centos7 安装Mysql8 主从数据库的更多相关文章

  1. Centos7安装MySQL8.0

    请到这个地址看:https://www.cnblogs.com/kevingrace/p/10482469.html Centos7安装MySQL8.0 - 操作手册 一.yum安装方式: 卸载之前版 ...

  2. CentOS7 安装 mysql8

    本文主要从以下几个方面对自己在centos7 下安装mysql8过程做如下总结: CentOS7 安装mysql8 步骤: window下的Navicat 连接MySql8: 涉及到的Linux命令 ...

  3. Linux Centos7配置mysql8.0数据库

    本文转至:672530440 在此感谢博主,撒花!!! 本文主要从以下几个方面对自己在centos7 下安装mysql8过程做如下总结: CentOS7 安装mysql8 步骤: window下的Na ...

  4. Centos7 安装 MySQL8以及远程访问的配置

    Centos7 安装MySQL8 1. 添加MySQL8的本地源 执行以下命令获取安装MySQL源 [root@virde ~]# wget https://repo.mysql.com//mysql ...

  5. 阿里云centos7安装mysql8数据库

    一.安装mysql 1. mysql官网查找仓库源镜像,选择downloads https://www.mysql.com/downloads/ 2. 找到社区版 3. 选择yum仓库 4. 选择对应 ...

  6. Centos7安装MySQL8.0 - 操作手册

    MySQL 8 正式版 8.0.11 已发布,官方表示 MySQL 8 要比 MySQL 5.7 快 2 倍,还带来了大量的改进和更快的性能! 一.  Mysql8.0版本相比之前版本的一些特性 1) ...

  7. CentOS7安装MySQL8.0小计

    之前讲配置文件和权限的时候有很多MySQL8的知识,有同志说安装不太一样,希望发个文,我这边简单演示一下 1.环境安装 下载MySQL提供的CentOS7的yum源 官方文档:<https:// ...

  8. Centos 7 安装Mysql8 主从同步复制

    环境:Centos 7 软件:Mysql8 安装方式:Yum 1.从官网下载最新yum 源对应Cenots 7 版本安装: [root@DataNode-03 ~]# yum -y localinst ...

  9. centos7安装MySql8.0.29教程

    个人名片: 对人间的热爱与歌颂,可抵岁月冗长 Github‍:念舒_C.ying CSDN主页️:念舒_C.ying 个人博客 :念舒_C.ying @ 目录 1 安装之前检测系统是否有自带的MySQ ...

  10. <亲测>CentOS7 安装mysql8.0(YUM方式)

    CentOS7 安装mysql(YUM方式)   1.下载mysql源安装包 shell> wget http://dev.mysql.com/get/mysql80-community-rel ...

随机推荐

  1. 【Java-01-2】java基础-基本语法(2)(关系运算,if,循环)

    1.关系/逻辑/条件 运算符,if语句 /* * 关系运算,if,循环 * 条件:condition * 注意逻辑运算符的短路特性 */ import java.io.*; public class ...

  2. winform应用程序

    1.winform桌面应用程序是一种智能的客户端技术,我们可以使用winform应用程序帮助我们获得信息或者传输信息等 2.属性 Names:在后台要获得前台的控件对象,需要使用Name属性 Visi ...

  3. VS2022 17.1.6在windows10下打开winform设计器报timed out while connecting to named pipe错误

    .net 6.0的项目,vs2022 17.1.6在windows10下打开winform设计器报timed out while connecting to named pipe错误,同样的项目在wi ...

  4. 在windows服务中托管asp.net.core

    参考:https://docs.microsoft.com/zh-cn/aspnet/core/host-and-deploy/windows-service?view=aspnetcore-3.1& ...

  5. 使用open打开子页面时,父页面关闭子页面操作

    <button onclick="open1()">kaiqi</button> <button onclick="close1()&quo ...

  6. sql server某列根据逗号转多行,其它字段不变

    效果: 语句代码: declare @moulds varchar(4000); set @moulds='55-480730-03,55-487780-01,,55-487780-02 '; dec ...

  7. Monstache的安装和使用

    一.什么是Monstache Monstache 是Golang语言实现的基于MongoDB的oplog实现实时数据同步及订阅的插件,支持MongoDB与ES之间的数据同步.其中MongoDB需要搭建 ...

  8. Python 自动化中三种等待时间的详解

    1.强制等待 强制等待是最简单的一种等待方式,强制让浏览器等待X秒,不管当前操作是否完成,是否可以进行下一步操作,都必须等X秒的时间. 使用方法:time.sleep(X) .在python中是基于t ...

  9. web安全学习笔记(2022/8/26)

    网络安全Web学习笔记 @author: lamaper @email: lamaper@qq.com @blog: lamaper - 博客园 (cnblogs.com) @date: Aug.26 ...

  10. git+jenkins+ansible+gitlab部署网站