MySQL5.7主主搭建

IP地址数据库角色
192.168.17.52
192.168.17.53

数据库版本:mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz

安装MySQL

  1. 将MySQL数据库的二进制安装包上传到服务器,上传的目录为/usr/local/src

MySQL安装包提取码是:1021

  1. 进入/usr/local/src目录,解压mysql安装包
cd /usr/local/src/
tar -xvf mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz
  1. 将解压目录拷贝到/usr/local下,并重命名为mysql5.7
mv mysql-5.7.20-linux-glibc2.12-x86_64 /usr/local/mysql5.7
  1. 在/etc/profile文件中加入MYSQL数据库可执行的路径,并执行生效。
echo 'export  PATH=/usr/local/mysql5.7/bin:$PATH' >> /etc/profile
source /etc/profile
  1. 创建数据库用户mysql
useradd -M -s /sbin/nologin  mysql
  1. 创建数据库目录,这里将数据库的目录设置为/mysqldb
mkdir -pv  /data1/mysqldb/{temp,log,data}
  1. 改变以上创建目录的用户归属
cd /data1/
chown -R mysql:mysql mysqldb
  1. 初始化数据库,并对目录进行重新授权.

如果系统已经存在/etc/my.cnf文件,此步会执行失败,需要将此文件暂时移除后再进行初始化。

mysqld --initialize  --datadir=/data1/mysqldb/data --user=mysql
cd /data1
chown -R mysql:mysql mysqldb

在这里插入图片描述

初始化中的错误不用理会。

  1. 完成以上初始化后,检查/data1/mysqldb/data/目录,是否生成数据库的相关必备的数据库,包括mysql、performance_schema、sys。

在这里插入图片描述

  1. 修改主从数据库的配置文件/etc/my.cnf文件,注意主从数据库的配置内容会稍优差异,主数据库my.cnf内容调整如下,特别关注红色字体部分。
[mysqld]
basedir=/usr/local/mysql5.7
user=mysql
port=3306
datadir=/data1/mysqldb/data
log-error=/data1/mysqldb/log/err.log
pid-file=/data1/mysqldb/temp/mysqld.pid
socket=/data1/mysqldb/temp/mysqld.sock
symbolic-links=0
server_id=101
gtid-mode=on
enforce-gtid-consistency=true
relay_log_purge=0
log_slave_updates=ON
log_bin=/data1/mysqldb/log/binlog
binlog_format=ROW
skip-grant-tables #跳过数据库密码
[client]
socket=/data1/mysqldb/temp/mysqld.sock
default-character-set=utf8
  1. 从数据库的my.cnf配置文件调整如下
[mysqld]
basedir=/usr/local/mysql5.7
user=mysql
port=3306
datadir=/data1/mysqldb/data
log-error=/data1/mysqldb/log/err.log
pid-file=/data1/mysqldb/temp/mysqld.pid
socket=/data1/mysqldb/temp/mysqld.sock
symbolic-links=0
server_id=102
gtid-mode=on
enforce-gtid-consistency=true
relay_log_purge=0
log_slave_updates=ON
log_bin=/data1/mysqldb/log/binlog
binlog_format=ROW
skip-grant-tables #跳过数据库密码
[client]
socket=/data1/mysqldb/temp/mysqld.sock
default-character-set=utf8

注意“server_id”项,两台MySQL服务器需要设置为不同,比如第一台为101,第二台为102。

  1. 启动数据库,在主库和从库执行以下命令,启动数据库
mysqld  --defaults-file=/etc/my.cnf --daemonize
  1. 启动后输入“mysql”检查是否可以登录到数据库中
    在这里插入图片描述

  2. 在主库和从库服务器上手动停止刚才启动的数据库服务,执行以下命令

ps -ef |grep mysqld |awk '{print $2}' |xargs kill -9

设置开机自启

  1. 进入/usr/lib/systemd/system/目录,创建mysqld.service文件,文件内容如下:
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target

[Install]
WantedBy=multi-user.target

[Service]
User=mysql
Group=mysql
Type=forking
PIDFile=/data1/mysqldb/temp/mysqld.pid
#Disable service start and stop timeout logic of systemd for mysqld service.
TimeoutSec=0
#Execute pre and post scripts as root
PermissionsStartOnly=true
#Needed to create system tables
#ExecStartPre=/usr/bin/mysqld_pre_systemd
#Start main service
ExecStart=/usr/local/mysql5.7/bin/mysqld --daemonize --pid-file=/data1/mysqldb/temp/mysqld.pid $MYSQLD_OPTS
#Use this to switch malloc implementation
#EnvironmentFile=-/etc/sysconfig/mysql
#Sets open_files_limit
LimitNOFILE = 5000
Restart=on-failure
RestartPreventExitStatus=1
PrivateTmp=false
  1. 设置文件权限为644
chmod 644 /usr/lib/systemd/system/mysqld.service
  1. 重新加载此服务,设置开机自启,启动MySQL
systemctl daemon-reload
systemctl enable mysqld
systemctl restart mysqld

注:启动mysqld之前需要把mysql得进程杀掉 注意查看是否有进程、否则启动MySQL会报错。

  1. 修改MySQL密码
update mysql.user set authentication_string=password('123456') where user='root' and Host = 'localhost'

==修改完密码注释掉/etc/my.cnf里面得跳过密码然后重启MySQL密码就修改成功。 ==

在这里插入图片描述

systemctl restart mysqld

配置主主

  1. 配置MySQL主主

主从数据库执行

grant all on *.* to root@'%' identified by '123456'; #授权做主主的用户
flush privileges;
stop slave;

执行得时候报错,重新修改一下密码然后问题解决。

在这里插入图片描述

SET PASSWORD = PASSWORD('123456');
stop slave;

在这里插入图片描述

show master status;

这张图片是主库的

在这里插入图片描述

这张图片是从库的
在这里插入图片描述

主库和从库重新打开两个终端配置主主

主库操作

mysql -uroot -p123456 -e "change master to master_host='192.168.17.53', master_user='root', master_password='123456', master_log_file='binlog.000005', master_log_pos=438;"

在这里插入图片描述

从库操作

mysql -uroot -p123456 -e "change master to master_host='192.168.17.52', master_user='root', master_password='123456', master_log_file='binlog.000005', master_log_pos=438;"

在这里插入图片描述

主从数据库操作

start slave;
show slave status \G;

主库图片
在这里插入图片描述

从库图片
在这里插入图片描述

完成以上步骤MySQL5.7主主成功。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值