首页 > 数据库 >MySQL8.0主从关系 - 主人与仆从

MySQL8.0主从关系 - 主人与仆从

时间:2022-10-10 23:56:43浏览次数:79  
标签:主库 log mysql master 主从关系 MySQL MySQL8.0 从库 仆从

MySQL原本是一个开放源码的关系数据库管理系统,原开发者为瑞典的 MySQL AB 公司,该公司于 2008 年被昇阳微系统(Sun Microsystems)收购。2009 年,甲骨文公司(Oracle)收购昇阳微系统公司,MySQL 成为 Oracle 旗下产品。

MySQL 在过去由于性能高、成本低、可靠性好,已经成为最流行的开源数据库,因此被广泛地应用在 Internet 上的中小型网站中。随着 MySQL 的不断成熟,它也逐渐用于更多大规模网站和应用,比如维基百科、Google 和 Facebook 等网站。非常流行的开源软件组合 LAMP 中的 “M” 指的就是 MySQL。

更多详细信息

1、MySQL8.0主从实战

  • 由于用户增加单台MySQL压力太大,所以得需要两台
  • 主从:两台MySQL

  • 主从库my.cnf,mysqld下面设置server-id和log-bin
  • 主库上授权从库通过特定账号同步
  • 查看主库bin-log日志名称和position
  • 从库change master指定主库信息
  • 从库执行start slave启动IO和SQL线程

1.2、主库配置

  • 在MySQL源码目录里面,packaging/rpm-common/my.cnf配置文件

  • 复制到/etc/下

vim /etc/my.cnf 编辑此文件,内容如下

# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/8.0/en/server-configuration-defaults.html

[mysqld]
server-id = 1
log-bin = mysql-bin
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove the leading "# " to disable binary logging
# Binary logging captures changes between backups and is enabled by
# default. It's default setting is log_bin=binlog
# disable_log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
#
# Remove leading # to revert to previous value for default_authentication_plugin,
# this will increase compatibility with older clients. For background, see:
# https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_default_authentication_plugin
# default-authentication-plugin=mysql_native_password

datadir=/data/mysql/
socket=/tmp/mysql.sock

log-error=/data/mysql/mysqld.log
pid-file=/data/mysql/mysqld.pid
  • 路径是我们MySQL安装目录

 

1.3、从库配置

  • 吧主库配置好的my.cnf文件复制到从库下的/etc/里面

scp /etc/.my.cnf 从库IP:/etc/

  • 只需修改server-id = 2,即可

  • MySQL同时启动

/etc/init.d/mysqld start

2、创建同步账号

  • 我们在主库上创建同步账号
  • 给从库使用的特定账号

CREATE USER 'tongbu'@'%' IDENTIFIED WITH mysql_native_password BY '123'; -- 账号名可选

2.2、授权

GRANT REPLICATION SLAVE ON *.* TO 'tongbu'@'%'; -- 只做同步的

  •  REPLICATION SLAVE 只做同步
  • 查看状态

show master status

 

2.3、从库定位主库bin-log文件

  • 进入从库数据库
change master to master_host='主库IP地址',master_user='tongbu',master_password='123',master_log_file='bin-log文件',master_log_pos=点位;
change master to master_host='192.168.163.209',master_user='tongbu',master_password='123',master_log_file='mysql-bin.000001',master_log_pos=656;
  • IP = 主库IP
  • 主库bin-log文件 = show master status。查看
  • 主库点位 = show master status。查看

  • 开启定位

start slave;

  • 查看状态

show slave status\G

  • 这个错误是因为主库没有开启3306端口,我们没有学到防火墙,所以直接禁用即可

systemctl stop firewalld 暂时停止防火墙

停止防火墙之后,再次查看,如果还有错误,重启MySQL!

  • 这个是因为我们克隆两台机子,所以uuid一样

  • 删除auto.cnf,重启MySQL即可

/data/mysql/auto.cnf -- 这个auto.cnf是在我们的MySQL安装目录

  • 查看是否正常

show slave status\G

  • 两个为yes,代表正常

2.4、同步成功

  • 我们在主库创建dark库,他就会同步到从库里面

3、好处

  • 同步可以替主库分担压力,读写过程,读取压力过大,我们有主库写,从库读
  • 备份,主库创建的库,表,都会备份到从库里面

标签:主库,log,mysql,master,主从关系,MySQL,MySQL8.0,从库,仆从
From: https://www.cnblogs.com/ahushen/p/16777857.html

相关文章

  • mysql8.0 用户授权
    createuser'user-xxx'@'%'identifiedby'passworddddd';grantallprivilegeson*.*to'user-xxx'@'%'withgrantoption;ALTERUSER'user-xxx'@'localhost'ID......
  • OpenEuler20.03安装mysql8.0.19
    一、准备工作1、dnfupdate更新源 rpm安装包时用2、tar安装 tar--help查看是否存在如果没有 yuminstalltar3、版本下载mysql-8.0.19-linux-glibc2.12-x86_64......
  • MySQL8.0.30安装教程
    第一步:输入MySQL网站       www.mysql.com  选择DOWNLOADS并点击进入:  选择最下面的“MySQL Community(GPL)Downloads>>”选项,进入下一页  选择......
  • mysql8.0创建用户并给用户授权
    MySql8有新的安全要求,不能像之前的版本那样一次性创建用户并授权需要先创建用户,再进行授权操作1.创建新用户:createuser'username'@'host'identifiedby'password'......
  • CentOS7安装MySQL8.0 -2022
    CentOS(CommunityEnterpriseOperatingSystem)是Linux发行版之一,它是来自于RedHatEnterpriseLinux(RHEL)依照开放源代码规定发布的源代码所编译而成。由于出自同样的源......
  • MySQL8.0.30安装教程
    第一步:输入MySQL网站       www.mysql.com  选择DOWNLOADS并点击进入:  选择最下面的“MySQL Community(GPL)Downloads>>”选项,进入下一页......
  • kettle 8.3 连接mysql8.0.30 的入坑体验
    写这个东西主要是想吐槽为主,真的无语了。kettle是java写的java版权是oracle的。mysql是Oracle的。   吐槽:一般来说,在kettle中新建mysql连接时......
  • linux 离线安装 mysql8.0
    一、下载linuxmysql8.0离线安装包mysql下载地址:https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.20-linux-glibc2.12-x86_64.tar.xzmysql官方下载最新版本:ht......
  • MYSQL8.0 忘记密码
    1、关闭MySQL服务,以管理员身份运行cmd,输入netstopMySQL(服务名) 2、跳过权限验证,mysqld--console--skip-grant-tables--shared-memory3、以管理员身份运行cmd,新开一......
  • mysql8.0绿色版安装
    下载软件直达官网下载Community版:https://dev.mysql.com/downloads/mysql/然后拉倒下方点击对应版本位数下载2.安装下载完压缩包之后就解压,2.1在程序安装目录创建my.......