推荐博客 blog.csdn.net/sinat_20260…
mysql 主从同步
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 命令查看安装情况:
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;
① 查看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';
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日志的位置
可以看到我们的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;
可以看到这里slave_io_running和slave_sql_running都是yes就已经同步成功了