mysql 主从配置-2
主从 mysql 启动以后,我们来做一些配置。假设 3306 为主,3307 为从
登陆 mysql 命令和参数
/usr/local/mysql/bin/mysql
登陆不同的 mysql 参数,可以 IP 也可以是 sock
mysql -S /tmp/mysql.sock sock 登陆主
mysql -h127.0.0.1 -P3306 IP 和端口登陆主
mysql -S /tmp/mysql2.sock sock 登陆从
mysql -h127.0.0.1 -P3307 IP 和端口登陆从
默认不加参数,为登陆/etc/my.cnf 的 mysql 为主
测试:
1.登陆主,并创建数据库
/usr/local/mysql/bin/mysql
create database db1;
为了测试方便,复制一份 mysql 的库过来
mysqldump -S /tmp/mysql.sock mysql >123.sql
mysql -S /tmp/mysql.sock db1<123.sql
拷贝一份库过来后,登陆 mysql
use db1; 切换库
show tables; 查看库包含的文件
发现 db1 中多了许多文件
2.编辑主配置文集
vim /etc/my.cnf
打开 server-id = 1 主和从 ID 不能一样
log-bin=mysql-bin =后面名称可自定义 wyp
有时会在 log-bin=mysql-bin 下插入一行,来指定同步的库,如:
binlog-do-db=db1,db2,db3
或者是指定不去同步的库,其它的同步。黑名单性质。如:
binlog-ignore-db=db1
保存退出
重启 mysql 服务
/etc/init.d/mysqld restart
此时在/data/mysql/会生成几个以 wyp 开头的文件,这就是它的 binlog。
mysql 重启后,在做一些授权相关,用以同步操作。
登陆 mysql
/usr/local/mysql/bin/mysql
grant replication slave on *.* to ‘repl’@’127.0.0.1’ identified by ‘hd792310’;
创建并授权用户 repl 密码 hd792310,专门用来传输 binlog。只给与 replication 权限
flush privileges; 刷新一下权限flush tables with read lock; 全局表的锁定,只能读.全局解锁 unlock tables;
show master status; 读取一个 binlog 相关的数据,等会要用到。
3.编辑从配置文件
vim /usr/local/mysql2/my.cnf
修改 server-id = 111 确保和主 ID 不同
有时也在下面追加一些其他功能,和主的指定同步文件类似。如:
replicate-do-db=db1,db2 或者 replicate-ignore-db=db1
重新启动 mysql 从服务,因为改变了配置文件
/etc/init.d/mysql2 restart
在从上也创建一个库 db1
/usr/local/mysql2/bin/mysql -S /tmp/mysql2.sock -e “create database db1” 把 123.sql 也导入从库中
/usr/local/mysql/bin/mysql -S /tmp/mysql2.sock db1 < 123.sql
注:想实现主从的库同步,首先主从库要先一致。
接下来是关键的部分。首先登陆从 mysql
/usr/local/mysql/bin/mysql -S /tmp/mysql2.sock
slave stop ; 先停掉,一会开启。
change master to master_host=‘127.0.0.1’, master_port=3306, master_user=‘repl’, master_password=‘hd792310’, master_log_file=‘wyp.00001’, master_log_pos=106;
指定主的 host,端口默认 3306,可以省略,用户、密码、上次在主上 show master status;时
查看的两个信息。
注意:如 3306 和 106 纯数字的不需要引号,否则报错。
最后一步
slave start; 启动从
此时我们可以看看从的库
show slave status\G;
看主从是否真正的成功,查看这两行是否有 2 个 YES
Slave_IO_Running:YES
Slave_SQL_Running:YES
主从 mysql 启动以后,我们来做一些配置。假设 3306 为主,3307 为从
登陆 mysql 命令和参数
/usr/local/mysql/bin/mysql
登陆不同的 mysql 参数,可以 IP 也可以是 sock
mysql -S /tmp/mysql.sock sock 登陆主
mysql -h127.0.0.1 -P3306 IP 和端口登陆主
mysql -S /tmp/mysql2.sock sock 登陆从
mysql -h127.0.0.1 -P3307 IP 和端口登陆从
默认不加参数,为登陆/etc/my.cnf 的 mysql 为主
测试:
1.登陆主,并创建数据库
/usr/local/mysql/bin/mysql
create database db1;
为了测试方便,复制一份 mysql 的库过来
mysqldump -S /tmp/mysql.sock mysql >123.sql
mysql -S /tmp/mysql.sock db1<123.sql
拷贝一份库过来后,登陆 mysql
use db1; 切换库
show tables; 查看库包含的文件
发现 db1 中多了许多文件
2.编辑主配置文集
vim /etc/my.cnf
打开 server-id = 1 主和从 ID 不能一样
log-bin=mysql-bin =后面名称可自定义 wyp
有时会在 log-bin=mysql-bin 下插入一行,来指定同步的库,如:
binlog-do-db=db1,db2,db3
或者是指定不去同步的库,其它的同步。黑名单性质。如:
binlog-ignore-db=db1
保存退出
重启 mysql 服务
/etc/init.d/mysqld restart
此时在/data/mysql/会生成几个以 wyp 开头的文件,这就是它的 binlog。
mysql 重启后,在做一些授权相关,用以同步操作。
登陆 mysql
/usr/local/mysql/bin/mysql
grant replication slave on *.* to ‘repl’@’127.0.0.1’ identified by ‘hd792310’;
创建并授权用户 repl 密码 hd792310,专门用来传输 binlog。只给与 replication 权限
flush privileges; 刷新一下权限flush tables with read lock; 全局表的锁定,只能读.全局解锁 unlock tables;
show master status; 读取一个 binlog 相关的数据,等会要用到。
3.编辑从配置文件
vim /usr/local/mysql2/my.cnf
修改 server-id = 111 确保和主 ID 不同
有时也在下面追加一些其他功能,和主的指定同步文件类似。如:
replicate-do-db=db1,db2 或者 replicate-ignore-db=db1
重新启动 mysql 从服务,因为改变了配置文件
/etc/init.d/mysql2 restart
在从上也创建一个库 db1
/usr/local/mysql2/bin/mysql -S /tmp/mysql2.sock -e “create database db1” 把 123.sql 也导入从库中
/usr/local/mysql/bin/mysql -S /tmp/mysql2.sock db1 < 123.sql
注:想实现主从的库同步,首先主从库要先一致。
接下来是关键的部分。首先登陆从 mysql
/usr/local/mysql/bin/mysql -S /tmp/mysql2.sock
slave stop ; 先停掉,一会开启。
change master to master_host=‘127.0.0.1’, master_port=3306, master_user=‘repl’, master_password=‘hd792310’, master_log_file=‘wyp.00001’, master_log_pos=106;
指定主的 host,端口默认 3306,可以省略,用户、密码、上次在主上 show master status;时
查看的两个信息。
注意:如 3306 和 106 纯数字的不需要引号,否则报错。
最后一步
slave start; 启动从
此时我们可以看看从的库
show slave status\G;
看主从是否真正的成功,查看这两行是否有 2 个 YES
Slave_IO_Running:YES
Slave_SQL_Running:YES