mysql 主从同步搭建

65 阅读3分钟

推荐博客 blog.csdn.net/sinat_20260…

mysql 主从同步

blog.csdn.net/TY_3a/artic…

blog.csdn.net/Ghqjwh/arti…

1.安装mysql(两台服务器都安装)

1.1 创建myslq 文件夹,官网下载安装包,解压,安装

mkdir mysql 

官网地址 :downloads.mysql.com/archives/co…

上传到mysql 文件夹

解压: tar -xzf mysql-5.7.40-1.el7.x86_64.rpm-bundle.tar

1.2## 使用rpm包分别安装common , libs, client, server服务,如下:

[root@localhost mysql]# rpm -ivh mysql-community-common-5.7.40-1.el7.x86_64.rpm --nodeps --force
警告:mysql-community-common-5.7.40-1.el7.x86_64.rpm: 头V4 RSA/SHA256 Signature, 密钥 ID 3a79bd29: NOKEY
Verifying...                          ################################# [100%]
准备中...                          ################################# [100%]
正在升级/安装...
   1:mysql-community-common-5.7.40-1.e################################# [100%]
[root@localhost mysql]# rpm -ivh mysql-community-libs-5.7.40-1.el7.x86_64.rpm --nodeps --force
警告:mysql-community-libs-5.7.40-1.el7.x86_64.rpm: 头V4 RSA/SHA256 Signature, 密钥 ID 3a79bd29: NOKEY
Verifying...                          ################################# [100%]
准备中...                          ################################# [100%]
正在升级/安装...
   1:mysql-community-libs-5.7.40-1.el7################################# [100%]
[root@localhost mysql]# rpm -ivh mysql-community-client-5.7.40-1.el7.x86_64.rpm --nodeps --force
警告:mysql-community-client-5.7.40-1.el7.x86_64.rpm: 头V4 RSA/SHA256 Signature, 密钥 ID 3a79bd29: NOKEY
Verifying...                          ################################# [100%]
准备中...                          ################################# [100%]
正在升级/安装...
   1:mysql-community-client-5.7.40-1.e################################# [100%]
[root@localhost mysql]# rpm -ivh mysql-community-server-5.7.40-1.el7.x86_64.rpm --nodeps --force
警告:mysql-community-server-5.7.40-1.el7.x86_64.rpm: 头V4 RSA/SHA256 Signature, 密钥 ID 3a79bd29: NOKEY
Verifying...                          ################################# [100%]
准备中...                          ################################# [100%]
正在升级/安装...
   1:mysql-community-server-5.7.40-1.e################################# [100%]
/usr/lib/tmpfiles.d/mysql.conf:23: Line references path below legacy directory /var/run/, updating /var/run/mysqld → /run/mysqld; please update the tmpfiles.d/ drop-in file accordingly.

1.3再执行 rpm -qa | grep mysql 命令查看安装情况:

image.png

1.4 mysql 设置忽略大小写

在MySQL的配置文件my.ini(或my.cnf)中加入下面的配置即可:

my.ini(或my.cnf) 在etc目录下

[mysqld]
lower_case_table_names=1

其中,1表示忽略大小写,0表示不忽略大小写。修改后需要重启MySQL服务。

1.5## 初始化数据库

初始化的时候最好也要设置一下忽略大小写

mysqld --initialize --lower-case-table-names=1 --console ;
获取初始化的密码
cat /var/log/mysqld.log | grep password;

image.png

① 查看mysql服务是否真的启动了,可以执行 systemctl status mysqld, 也可以ps命令查询mysql进程

一般第一次是没有启动成功

无法启动的原因一般是由于mysql的目录权限问题

# chown -R mysql:mysql /var/lib/mysql
如果不行再暴力授权到777
# chmod 777 /usr/sbin/mysqld
# chmod 777 /var/lib/mysql/*

重新启动mysql服务

# systemctl start mysqld
# systemctl status mysqld

1.6 ## 登录后必须修改密码:

mysql -u root -p  

密码是上面 初始化时候生成的 ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

image.png

1.7 ## 设置远程登录

mysql> use mysql;
mysql> update user set host='%' where user='root';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;
mysql> quit;

2.配置主从同步

2.1分别进入到mysql的配置文件中,位置是vim /etc/my.cnf

server_id=1#主
log_bin=mysql01-bin
server_id=2#从
log_bin=mysql02-bin

2.2登录主mysql并给从创建一个同步账号

mysql -u  root -p
"密码"
创建同步账号并首授权所有权限《ip是从的ip不是主的》
mysql> CREATE USER '账号'@'192.168.0.130' IDENTIFIED WITH mysql_native_password BY '密码';
mysql> GRANT REPLICATION SLAVE ON *.* TO 'master'@'192.168.0.130';

2.3查看主库的binlog日志的位置

image.png

可以看到我们的binlog日志位置是462文件是binlog.000001

2.4 我们去mysql从库将刚刚我们创建的同步账号和这个日志的位置名称同步进去,《同步的ip是主的ip》

stop slave;先暂停同步
change master to master_host="192.168.1.120",master_user="账号",master_password="密码",master_log_file="binlog.000001",master_log_pos=462;
start slave打开同步

2.5最后一步查看我们从库是否同步进去了(注意一定是从库查看)

show slave status\G;

image.png 可以看到这里slave_io_running和slave_sql_running都是yes就已经同步成功了