欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

mysql 主从设置

程序员文章站 2022-06-17 16:22:06
...

准备工作: master机和slave机的相关配置 1、修改master机器中mysql配置文件my.cnf,该文件在/etc目录下 在[mysqld]配置段添加如下字段 server-id=1 log-bin=log binlog-do-db=repl //需要同步的数据库,如果没有本行,即表示同步所有的数据库 此参数可以重复

准备工作:


master机和slave机的相关配置
1、修改master机器中mysql配置文件my.cnf,该文件在/etc目录下
在[mysqld]配置段添加如下字段
server-id=1
log-bin=log
binlog-do-db=repl //需要同步的数据库,如果没有本行,即表示同步所有的数据库 此参数可以重复设置,此参数 可能会出现问题,尽量不用,过滤数据 设置到从库
binlog-ignore-db=mysql //被忽略的数据库 同上 最好不用 过滤设置到从库


修改slave机中mysql配置文件
同样在[mysqld]字段下添加如下内容
server-id=2
master-host=192.168.1.222
master-user=repl
master-password=123456
master-port=3306
master-connect-retry=60
# replicate-ignore-db=mysql 忽略的数据库 同上
# master-connect-retry=60 如果从服务器发现主服务器断掉,重新连接的时间差(秒)
#replicate-do-db=repl //同步的数据库(需要备份的数据库名),不写本行 表示 同步所有数据库
#建议用下面两个参数
replicate-wild-do-table=db_name.%
replicate-wild-ignore-table=mysql.%

然后重启slave机的mysql


-------------------------------------------------------------------------------------------------
1、登录mysql 首先 查看 数据库的版本

>select version();


2、检查主库 和 从库的 server_id


>show global variables like 'server_id';


3、查看主库的二进制文件是否开启


>show global variables like 'log_bin';


若没有开启,那么需要重启数据库的:
(1)在my.cnf参数文件中[mysqld]中添加
log-bin = mysql-bin
(2)重启MySQL数据库。


4、检查到从库的网络及端口是否可达

#netstat -tnlp|grep mysqld


#telnet 192.168.230.71 3306




5、在主库创建同步帐号并授权 replication
>create user 'repl'@'host' identified by 'password';
>grant replication slave,replication client on *.* to 'repl'@'host';




6、再从库中测试是否可以使用repl用户登录
#mysql -urepl -ppassword -hhost -P3306


7、记录主库master上当前二进制日志名和偏移量
主要是用于slave中指定开始恢复的位置。


>show master status\G


8、备份数据库




启动主从复制功能
slave start;


查看主从信息
show slave status\G;


如果打印的信息中slave_IO_Running:yes和Slave_SQL_Runnning:yes 则表示配置成功