须知
> master 服务器 ip:192.168.56.102
slave 服务器 ip:192.168.56.103
master mysql 配置文件地址:/etc/my.cnf
slave mysql 配置文件地址:/etc/my.cnf
master 服务器配置说明
- 命令行进入 mysql
- create user replslave; //创建新用户
-
GRANT REPLICATION SLAVE ON . TO ‘replslave’@’192.168.56.%’ IDENTIFIED BY ‘admin’;
replslave 用户必须具有 REPLICATION SLAVE 权限,除此之外没有必要添加不必要的权限,密码为 admin。
说明一下192.168.56.%,这个配置是指明 replslave 用户所在服务器,这里 % 是通配符,表示 192.168.56.0-192.168.56.255的 Server 都可以以 replslave 用户登陆主服务器。
当然你也可以指定固定 Ip 。 -
编辑配置 mysql 配置文件
- vi /etc/my.cnf
- 在 [mysqld] 下输入以下内容
-
server-id=102
//给数据库服务的唯一标识,一般为大家设置服务器 Ip 的末尾号 log-bin=master-bin
log-bin-index=master-bin.index
-
- 重启 mysql 服务器
service mysqld restart
- 进入 mysql 命令行 查看 master 状态
show master status;
+-------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+-------------------+----------+--------------+------------------+-------------------+
| master-bin.000001 | 154 | | | |
+-------------------+----------+--------------+------------------+-------------------+
从 slave 服务器配置
- vi /etc/my.cnf
-
在 [mysqld] 标签下,输入以下内容,然后重启 mysql 服务
server-id=103
relay-log-index=slave-relay-bin.index
relay-log=slave-relay-bin -
进入 mysql 命令行,输入以下内容
change master to master_host=’192.168.56.102’,
master_port=3306,
master_user=’replslave’,
master_password=’admin’,
master_log_file=’master-bin.000001’,
master_log_pos=154; # 与 master 服务器中 Position 的值一致即可。 启动 Slave :start slave;
- 查看 slave 状态:show slave status;
问题
- Could not find first log file name in binary log index file
解决方法 1:
master 服务器在命令行中输入:flush log,然后使用 show master status;查看最新文件。
在 slave 服务器命令行中输入:
- stop slave;
- change master to master_log_file=’newfile’;
- start slave;
解决方法 2:
master 服务器在命令行中输入:flush log,然后使用 show master status;查看最新文件。
在 slave 服务器命令行中输入:
1. stop slave;
2. change master to master_host=’192.168.56.102’,
master_port=3306,
master_user=’replsave’,
master_password=’admin’,
master_log_file=’newfile’,
master_log_pos=154;
3. start slave;
参考1:Mysql主从配置,实现读写分离