安装包下载地址:

https://downloads.mysql.com/archives/community/

1、 解压介质包:

# tar xf mysql-8.0.30-linux-glibc2.12-x86_64.tar.xz
# mv mysql-8.0.30-linux-glibc2.12-x86_64 mysql
# mkdir mysql/{data,logs}

2、 创建mysql用户,并对目录授权

# groupadd mysql
# useradd -M -s /sbin/nologin -g mysql mysql
# chown -R mysql.mysql mysql

3、编辑主从节点配置文件

以下为我的服务配置,可参考

master my.cnf

[mysql]
default-character-set=utf8mb4
prompt=[\\u@\\h][\\d]>\\_ [mysqld]
bind-address=0.0.0.0
port=3306
user=mysql
basedir=/data/mysql
datadir=/data/mysql/data
log-error=/data/mysql/data/mysql.err
socket=/tmp/mysql.sock
pid-file=/data/mysql/data/mysql.pid server-id=1 slow_query_log=ON
slow_query_log_file=/data/mysql/data/slow.log
long_query_time=1 gtid_mode=ON
enforce_gtid_consistency=ON
binlog-checksum = CRC32
master-verify-checksum = 1 binlog_format=row
expire_logs_days=7
max_binlog_size=512M
log-bin=/data/mysql/logs/mysql-bin
log_bin_index=/data/mysql/logs/mysql-bin.index
log-slave-updates = ON character_set_server = utf8mb4
collation_server = utf8mb4_general_ci
default_authentication_plugin=mysql_native_password
lower_case_table_names=1

slave my.cnf

[mysql]
default-character-set=utf8mb4
prompt=[\\u@\\h][\\d]>\\_ [mysqld]
bind-address=0.0.0.0
port=3306
user=mysql
basedir=/data/mysql
datadir=/data/mysql/data/
log-error=/data/mysql/data/mysql.err
socket=/tmp/mysql.sock
pid-file=/data/mysql/data/mysql.pid server-id=15 slow_query_log=ON
slow_query_log_file=/data/mysql/data/slow.log
long_query_time=1 gtid_mode = ON
enforce_gtid_consistency = ON
log-slave-updates = ON
skip-slave-start = true
expire_logs_days = 7
max_binlog_size = 512M
read_only = ON log-bin=/data/mysql/logs/mysql-bin
log_bin_index = /data/mysql/logs/mysql-bin.index
relay-log = /data/mysql/logs/relay-log
relay-log-index = /data/mysql/logs/relay-log-index
relay-log-info-file = /data/mysql/logs/relay-log.info master-info-repository = table
relay-log-info-repository = table
#symbolic-links=0 character_set_server = utf8mb4
collation_server = utf8mb4_general_ci
default_authentication_plugin=mysql_native_password
lower_case_table_names=1

保存退出后记得修改权限

# chown mysql.mysql *

4、 初始化数据库

# cd /data/mysql
# ./bin/mysqld --defaults-file=/data/mysql/my.cnf --basedir=/data/mysql --datadir=/data/mysql/data --lower_case_table_names=1 --user=mysql --initialize

--lower_case_table_names=1   不区分大小写 MySQL8需要初始化时添加,初始化不添加的话,后期在配置文件中添加重启会报错

PS:mysql.err 日志中有初始化数据库密码

5、数据库启动

# ./bin/mysqld_safe --defaults-file=/data/mysql/my.cnf &

6、登录数据库修改初始密码,创建root@%账号并授权

mysql> alter user 'root'@'localhost' identified by 'Root~123';
mysql> create user 'root'@'%' identified WITH mysql_native_password by 'Root~123';
mysql> grant all privileges on *.* to 'root'@'%' with grant option;

7、 创建数据库同步账号并授权

mysql> create user 'repl'@'%' identified with mysql_native_password by 'repl';
mysql> grant replication slave on *.* to 'repl'@'%';
mysql> flush privileges;

8、配置主从同步,从库安装方法同上

PS:从库无需创建数据库root账号,会主动从主库同步

基于 gtid 同步——推荐

mysql> CHANGE MASTER TO MASTER_HOST='73.134.64.72',MASTER_PORT=3306,MASTER_USER='repl',MASTER_PASSWORD='repl',MASTER_AUTO_POSITION=1;
mysql> show slave status\G;

基于 binlog 方式同步

登录主库查询Master状态,并记录 File 和 Position 的值:

mysql> show master;

登录从库操作:

mysql> CHANGE MASTER TO MASTER_HOST='73.134.64.72',MASTER_PORT=3306,MASTER_USER='repl',MASTER_PASSWORD='repl',MASTER_LOG_FILE='mysql-bin.000003',MASTER_LOG_POS=2229;
mysql> show slave status\G;

查询主从状态(参数 Slave_IO_Running 和 Slave_SQL_Running 是否都为yes,则证明配置成功。若为no,则需要查看对应的 Last_IO_Error 或 Last_SQL_Error 的异常值)

PS:MySQL提示符配置,8.0配置文件中prompt 上述方法未生效,需配置环境变量:export MYSQL_PS1="[\u@\h][\d]> ",效果如下

mysql8.0.30主从配置的更多相关文章

  1. Docker部署Mysql8.0.20并配置主从复制

    1. Linux安装Mysql8.0.20并配置主从复制(一主一从,双主双从)   Linux安装Mysql8.0.20并配置主从复制(一主一从,双主双从) 2. 前提准备 # 创建主从数据库文件夹 ...

  2. Linux安装Mysql8.0.20并配置主从复制(一主一从,双主双从)

    1. 主从复制解释   将主数据库的增删改查等操作记录到二进制日志文件中,从库接收主库日志文件,根据最后一次更新的起始位置,同步复制到从数据库中,使得主从数据库保持一致. 2. 主从复制的作用 高可用 ...

  3. MySQL8.0.19主从环境搭建(CentOS7)

    默认情况下,复制是异步的,从站不需要永久连接以接收来自主站的更新.根据配置,您可以复制数据库中的所有数据库,所选数据库甚至选定的表. MySQL中复制的优点包括: 横向扩展解决方案 - 在多个从站之间 ...

  4. Mysql8.0安装与配置

    最近公司在开发项目时用到了mySql8.0版本,总结出了安装步骤,供需要的开发人员来参考 安装mySql8.0的步骤: 1.先去官网下载mySql8.0版本的安装包 一. 点击:https://dev ...

  5. MySQL8.0.20安装配置+用Navicat连接详细教程(win10,Navicat15)

    MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用 ...

  6. mysql8.0.20安装配置教程

    mysql配置安装教程 1.下载mysql8.0.20安装包 下载地址: https://dev.mysql.com/downloads/mysql/.找到安装包后下载.(官网为英文,如果看不懂的小伙 ...

  7. mysql-8.0.12 安装+配置, Navicat Premium 12 安装+激活

    1.解压到安装目录,如:D:\mysql-8.0.12-winx64 2.将以下配置文件粘贴到安装目录,并保存为my.ini,注意:使用ansi 而非utf-8编码格式保存 [mysql] # 设置m ...

  8. redis-4.0.11主从配置初步探究

    redis-4.0.11相较于以前版本,新增了几个安全措施,稍稍研究了6379.conf配置文件,在这里记录一下. 实验环境: centos7.4 redis:redis-4.0.11 1. redi ...

  9. Django(八)模型:Mysql8.0日志文件配置开启/关闭、查询

    Mysql日志文件开启.配置.查看 mysql.log是mysql的日志文件,里面记录的对MySQL数据库的操作记录.默认情况下mysql的日志文件没有产生,需要修改mysql的配置文件,步骤如下: ...

  10. Linux中(Ubuntu18.04.x/CentOS)mysql8.0.x安装/配置/部署/启动

    The MySQL Connectors and APIs are the drivers and libraries that you use to connect applications in ...

随机推荐

  1. 【Redis场景2】缓存更新策略(双写一致)

    在业务初始阶段,流量很少的情况下,通过直接操作数据是可行的操作,但是随着业务量的增长,用户的访问量也随之增加,在该阶段自然需要使用一些手段(缓存)来减轻数据库的压力:所谓遇事不决,那就加一层. 在当前 ...

  2. 2022年8月20,第一组,周鹏,从1到m中随机取n个数,n<=m,显示出所有取法

    static Random a1 =new Random(); static int m = a1.nextInt(20)+1;//随机取一个1到20的值 static int n = a1.next ...

  3. 【转载】EXCEL VBA 自定义排序的三种方法

    何谓自定义排序,就是按指定的顺序对数据源进行排序呗.   共分享了三种方法: 第1种方法是系统自带的OrderCustom,优点是代码简洁,缺点是自定义序列有字符长度限制(255个). 第2种方法是字 ...

  4. 痞子衡嵌入式:MCUBootUtility v4.0发布,开始支持MCX啦

    -- 痞子衡维护的 NXP-MCUBootUtility 工具距离上一个大版本(v3.5.0)发布过去 9 个月了,这一次痞子衡为大家带来了版本升级 v4.0.0,这个版本主要有两个重要更新需要跟大家 ...

  5. Anaconda和pip常用命令汇总:简单,通俗易懂

    前言 在学习 anaconda 的常用命令之前要先安装好 Anaconda for Windows,Anaconda for Ubuntu,这里我总结了 Windows 环境下和 Ubuntu 环境下 ...

  6. SOFAJRaft源码阅读-Netty时间轮算法的实践

    SOFAJRaft的定时任务调度器是基于Netty来实现的,所以本文将会基于Netty时间轮算法,然后再结合SOFAJRaft源码进行分析. @Author:Akai-yuan @更新时间:2023/ ...

  7. Zabbix“专家坐诊”第180期问答汇总

    问题一 Q:老师,请教个问题,zabbix通过自动发现扫描网段,然后添加主机,有没有什么办法区分路由器或者交换机类型的方法,这样才能把交换机模板或者路由器模板挂给对应的主机A:不多的话, 批量加2次模 ...

  8. vue学习笔记(一) ---- vue指令(v-for 和 key 属性)

    vue指令之v-for和key属性 一. v-for 1. v-for遍历数组 <div id="app"> <h3>好饿,我好想吃~~~~</h3& ...

  9. appium如何获取到APP的启动activity

    方法一: adb shell monkey -p 包名 -v -v -v 1 方法二: aapt dump bading apk所在路径\apk名字(或者直接把apk拖进命令行) 运行后的结果中以下两 ...

  10. CentOS7 登录到控制台后无法联网

    登录到控制台, ping 不通网络 解决方法 通过命令找到网卡的配置文件见 ll /etc/sysconfig/network-scripts/ | grep ifcfg-en 编辑配置文件 vi i ...