前提条件

准备了两台虚拟机 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. 简述traceroute命令的原理

    原理 traceroute命令是一种用于显示数据包从源主机到目的主机经过的路由器和网络设备的路径的工具.traceroute命令的原理是利用IP数据报的生存时间(TTL)字段和因特网控制报文协议(IC ...

  2. python笔记--在文件进行输出

    将print的内容输出到文件中 1 #将数据输出到文件中 2 fp=open('E:/text1.txt','a+') 3 print('hello word',file=fp) 4 fp.close ...

  3. 2023 年 CCF 春季测试赛模拟赛 - 2

    T1 分治,\(a^b + \dots + 1 = (a^{\lfloor\frac{b}{2}\rfloor} + \dots + 1) \times (a^{\lfloor\frac{b}{2}\ ...

  4. GitLab服务器修改用户密码

    重置密码: 1.切换到相应路径 cd /opt/gitlab/bin/2.进入控制台 gitlab-rails console3.根据序号查询用户账号信息并赋值给u u=User.find(2) [注 ...

  5. vue中的Swiper使用slideTo提示no function

    参考官网资料解决:

  6. 安卓调试打包错误Error executing aapt: Return code -1073741819 Error while running zipalign

    之前开发完的安卓app项目,再次打开,突然抽风报错. 1.调试运行报错:Error executing aapt: Return code -1073741819 2.打包失败报错: Error wh ...

  7. dism修改easyu中10PEx64.wim文件

    从easyu的iso镜像中提取出10PEx64.wim文件,新建一个空分区,比如Z: 1.获取wim映像索引信息,命令 Dism /Get-WimInfo /WimFile:10PEx64.wim,一 ...

  8. Unity Vuforia 动态替换识别图

    1.在Unity里 Vuforia 用来做识别信息的是 StreamingAssets 下 Vuforia文件夹内的 Dat和XML 文件. 2.想要替换识别图需要在Vuforia官网里替换识别图 ( ...

  9. 2015 for Mac PDF编辑软件

    ​ 开始前请先断开网络连接,断网,断网,断网! 开始前请先断开网络连接,断网,断网,断网! 开始前请先断开网络连接,断网,断网,断网! ​编辑 1.软件下载完成后,打开软件包如上图五个文件(第1个是安 ...

  10. 01爬取豆瓣网电影数据进行numpy的练习

    level 2:10.案例:编写爬虫爬取豆瓣电影排行榜(电影名称,评分),保存为csv文件 a.用numpy加载csv数据 b.把评分列转换成float64类型 c.计算电影的平均评分 d.求评分最高 ...