欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 维修 > mysql 主从配置

mysql 主从配置

2025/5/9 16:35:04 来源:https://blog.csdn.net/weixin_43868793/article/details/145026252  浏览:    关键词:mysql 主从配置

MySQL 官网

MySQL Community Server 下载地址

这是我先择的版本
在这里插入图片描述
选择DEB Bundle,全部deb都打包在一起
在这里插入图片描述
在服务器上解压到一个目录下
然后

sudo dpkg -i *.deb
sudo apt-get install -f

主从服务器都安装
配置目录在/etc/mysql/
一台服务器做master,一台做slave
在master上/etc/mysql/mysql.conf.d/mysqld.cnf里面

port = 3306    # 自行定义,默认是3306
datadir = /var/lib/mysql # 自行定义
default_authentication_plugin=mysql_native_password   # 使用native密码方式,不然后面会出现slave连接不上master的情况
server-id  = 1  # 必须是一个唯一独特的id,不能与其他mysql重复
log_bin = /var/log/mysql/mysql-bin.log  # 主从同步的关键,mysql根据bin_log来同步数据。
# bind-address = 127.0.0.1   # 这一项需要改掉或者注释掉,不然slave 连接不上master

在slave上/etc/mysql/mysql.conf.d/mysqld.cnf里面

# 其他的与master上面类似
# slave 需要的:
relay-log=/var/log/mysql/mysql-relay-bin.log
replicate-wild-ignore-table=mysql.%                              # 从机备份主机忽略 database mysql
replicate-wild-ignore-table=information_schema.%       # 从机备份主机忽略 database information_schema
replicate-wild-ignore-table=performance_schema.%    # 从机备份主机忽略 database performance_schema

在master机器上登录上mysql

mysql -uroot -p  # 初始密码自行解决# 创建一个用户
# user: replicat,
# host: 所有
# 密码: 123
create user 'replica'@'%' identified with mysql_native_password by '123';# 赋予'replica'@'%' *.* 表的 复制 权限
grant replication slave on *.* to 'replica'@'%';# 权限立即生效
flush privileges;
exit;

重启master之后锁表, 来防止mysql表开始有变化

service mysql restart
mysql -uroot -p -e "flush tables with read lock;"

在从机上面编写change_master.sql,也可以不用sql文件手动一条条执行

stop slave;
change master to
master_host='.....',  # 主机的地址,自行填写
master_user='replica',
master_password='123',
-- can see at master mysql:   show master status;
master_log_file='mysql-bin.000104',
master_log_pos=157;
start slave;

master_log_file与master_log_pos需要在主机上找到
在master上面

mysql -uroot -p -e "show master status\\G"

可以看到输出

*************************** 1. row ***************************File: mysql-bin.000104Position: 157Binlog_Do_DB:Binlog_Ignore_DB:
Executed_Gtid_Set:

然后 在slave上面mysql -uroot -p < change_master.sql
然后查看状态mysql -uroot -p -e "show slave status\\G"
看到Slave_IO_Running 与 Slave_SQL_Running 都是Yes,就是slave 连接master 成功了
在master上面要记得把之前上锁的表给解锁了, mysql -uroot -p -e "unlock tables;"

现在可以测试一下主从同步是否可用,
在master上新建数据库,新建表,增删改数据看看slave上面是否同步。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词