Centos7 mysql8安装 主从,读写分离

CentOS7下安装部署mysql8读写分离
0. 安装wget命令

yum -y install wget

  1. 创建用户组和用户

groupadd mysql
useradd -r -g mysql -s /mysql
2. 安装mysql8

复制代码
#检查之前是否有残留的mysql,有的话就删除
find / -name mysql
rm -rf xxx

#上传到服务器
wget http://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm
#本地安装
yum localinstall mysql80-community-release-el7-1.noarch.rpm
#检查是否安装成功
yum repolist enabled | grep “mysql.-community.
复制代码
出现下图则代表成功安装

  1. 安装mysql的服务端

yum install -y mysql-community-server

#使用命令启动和查看mysql
systemctl start mysqld
systemctl status mysqld

可以看到mysql的active状态已经是running了,意味着mysql已经成功安装好了

  1. 密码修改

    修改 /etc/my.cnf的配置文件,将default-authentication-plugin=mysql_native_password"取消注释

复制代码
#重启mysql
systemctl restart mysqld

#通过命令查看自动生成的密码
grep ‘temporary password’ /var/log/mysqld.log

#登陆数据库
mysql -uroot -p

#修改密码规则 记得打分号
set global validate_password.policy=0;

set global validate_password.length=6;

ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘123456’;
复制代码

  1. 解决远程访问的问题

复制代码
#创建一个密码为123456的用户,同时可以访问全部ip(%)
CREATE USER ‘someone’@’%’ IDENTIFIED BY ‘123456’;

#授予用户DDL和DML的权限
grant all on . to ‘someone’@’%’;

#关闭防火墙
systemctl stop firdwalld.service
systemctl disable firewalld.service
复制代码
6. 在Master库上创建一个具有Replication Slave权限的账号

主服务器通过binlog日志记录操作事件,从服务器通过IO线程读取binlog日志,生成relay-log日志,再由从服务器读取relaylog执行操作。

CREATE USER ‘dark’@’%'IDENTIFIED BY ‘123456’;

GRENT REPLICATION SLAVE ON . TO ‘dark’@’%’;
7. 修改Master服务器上的my.conf,一般是在/etc目录下

log-bin=mysql-bin
#此处不写或者为0时,master将拒绝slave的请求
server-id=1
#日志类型
binlog-format=mixed

  1. 重启master数据库,查看状态

  2. 修改slave的my.conf文件

server-id=2

#slave本地记录主数据库二进制日志的日志文件
relay-log=mysql-bin
10. 进入从数据库

复制代码

  1. stop slave;

  2. change master to master_host=‘10.0.102.86’,
    master_user=‘dark’,
    master_password=‘123456’,
    master_port=3306,
    #此处需要对应master的状态
    master_log_file=‘mysql-bin.000005’,
    master_log_pos=‘343’;

  3. start slave;
    复制代码

  4. 查看slave状态

show slave status \G

#设置从数据库只能读数据
set global read_only=1;
set global super_read_only=1;

12. 进行测试

主数据库创建

从数据库查看


踩坑总结:

1. 因为是从虚拟机克隆过来的,所以出现了主从数据库的UUID一致的问题

find / -name auto.conf

mv /var/lib/mysql/auto.cnf /var/lib/mysql/auto.cnf.bk
  2. slave_sql_running:no:因为我人为手动在从库中添加了数据导致的

stop slave;

set global sql_slave_skip_counter=1;

start slave;
  3. 敲代码尤其是配置文件,记得看仔细。。。出问题记得看日志

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
CentOS 7下配置MySQL 5.7.22的主从复制,需要以下步骤: 1.安装MySQL 5.7.22版本 在CentOS 7上安装MySQL 5.7.22,可以使用如下命令: ``` sudo yum install mysql-server ``` 2.配置主服务器 在主服务器的配置文件`/etc/my.cnf`中添加如下内容: ``` server-id=1 log-bin=mysql-bin binlog-do-db=test ``` 其中,`server-id`表示服务器的ID,`log-bin`表示开启二进制日志,`binlog-do-db`表示指定需要同步的数据库名称。 3.重新启动MySQL服务器 在修改了配置文件后,需要重新启动MySQL服务器: ``` sudo systemctl restart mysqld ``` 4.创建用于复制的用户 在主服务器上创建一个用于复制的用户,并授予复制权限: ``` GRANT REPLICATION SLAVE ON *.* TO 'slave_user'@'%' IDENTIFIED BY 'password'; FLUSH PRIVILEGES; ``` 其中,`slave_user`是用于复制的用户名,`password`是用户密码。 5.查看主服务器状态 在主服务器上运行如下命令查看主服务器状态: ``` SHOW MASTER STATUS; ``` 记录下`File`和`Position`的值,备用。 6.配置从服务器 在从服务器的配置文件`/etc/my.cnf`中添加如下内容: ``` server-id=2 replicate-do-db=test ``` 其中,`server-id`表示服务器的ID,`replicate-do-db`表示指定需要同步的数据库名称。 7.重新启动MySQL服务器 在修改了配置文件后,需要重新启动MySQL服务器: ``` sudo systemctl restart mysqld ``` 8.设置从服务器复制主服务器 在从服务器上运行如下命令,设置从服务器复制主服务器: ``` CHANGE MASTER TO MASTER_HOST='master_host_name', MASTER_USER='slave_user', MASTER_PASSWORD='password', MASTER_LOG_FILE='master_log_file_name', MASTER_LOG_POS=master_log_pos; ``` 其中,`master_host_name`是主服务器的IP地址或主机名,`slave_user`和`password`是用于复制的用户名和密码,`master_log_file_name`和`master_log_pos`是之前在主服务器上记录的值。 9.启动从服务器复制 在从服务器上运行如下命令,启动从服务器复制: ``` START SLAVE; ``` 10.查看从服务器状态 在从服务器上运行如下命令查看从服务器状态: ``` SHOW SLAVE STATUS\G ``` 如果输出中`Slave_IO_Running`和`Slave_SQL_Running`的值都为`Yes`,则表示从服务器已经成功复制主服务器。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值