前提条件

准备了两台虚拟机 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. dotnet core 托管

    1.托管形式 dotnet core的托管形式分为 进程内托管(InProcess).进程外托管 (OutOfProcess) 新建的Web程序csproj带有 <AspNetCoreHosti ...

  2. 线程join detach 僵尸线程

    进程死亡后,由父进程负责回收PCB资源,不回收则会出现僵尸进程 对于线程来说,任何一个线程都可以回收另一个线程的资源 在子线程终止后,通常在主线程中通过pthread_join来回收子线程的资源,获取 ...

  3. C# 图片压缩(指定大小压缩和指定尺寸压缩)

    一按大小压缩测试代码: 一测试效果: 一主要代码: /// <summary> /// 压缩图片至200 Kb以下 /// </summary> /// <param n ...

  4. 码云或github的"免费服务器"

    目录 一. 码云及工具介绍 二. 操作步骤 (1) 创建vue-cli项目 (2) 码云创建仓库 (3) 修改并提交项目到码云仓库 (4) 运行项目 (5) 注意点 三. 尾声 对于学生党来说,买个服 ...

  5. windows下搭建h5游戏小小火影教程【附安装包】

    小小三国是一款很好玩的H5游戏.只需要用一台64位的windows电脑或服务器,你就可以和朋友们一起联机玩这个游戏了.本文将会教你如何搭建这个游戏,步骤如下. 1.下载好后你会看到该压缩包 2.解压到 ...

  6. Android图表控件MPAndroidChart——BarChart实现多列柱状图和LineChart多曲线 (完结)

    首先才接触Android,目前自学一个月,花了一星期,做出了柱状图和曲线图,踩过坑也不少,上代码(主要提供思路,大部分代码可直接用). 参考代码地址:①曲线:https://blog.csdn.net ...

  7. pycharm的基本操作数据类型

    prcharm的基础操作 1.切换版本翻译器 file-settings-project-interpeter 注释 1.单行注释 添加注释:#加上需要添加的注释 快捷键:ctrl+? 自动进行格式化 ...

  8. uni消息推送

    //APP.vuegetUser(){//获取客户端标识 消息推送 // #ifdef APP-PLUS var pinf = plus.push.getClientInfo(); var cid = ...

  9. C# 教你如何终止Task线程

    我们在多线程中通常使用一个bool IsExit类似的代码来控制是否线程的运行与终止,其实使用CancellationTokenSource来进行控制更为好用,下面我们将介绍CancellationT ...

  10. React函数式组件值之useRef()和useImperativeHandle()

    一.useRef useRef共有两种用法,获取子组件的实例(只有类组件可用),在函数组件中的一个全局变量,不会因为重复 render 重复申明, 类似于类组件的 this.xxx. 1. useRe ...