@yanglt7
2018-10-21T15:56:59.000000Z
字数 6400
阅读 743
Web集群实战
概述
主从复制原理重点小结
[root@ylt001 ~]# ss -lnt|grep 330
LISTEN 0 50 *:3307 *:*
LISTEN 0 50 *:3308 *:*
LISTEN 0 50 *:3306 *:*
[root@ylt001 ~]# cd /data/3306
[root@ylt001 3306]# vi my.cnf
[mysqld]
server-id = 1
log-bin = /data/3306/mysql-bin
[root@ylt001 3306]# egrep "server-id|log-bin" my.cnf
server-id = 1
log-bin=/data/3306/mysql-bin
[root@ylt001 3306]# /data/3306/mysql restart
Restarting MySQL...
Stopping MySQL...
Starting MySQL...
[root@ylt001 3306]# mysql -uroot -ppassword -S /data/3306/mysql.sock
mysql> show variables like 'server_id';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| server_id | 1 |
+---------------+-------+
1 row in set (0.00 sec)
mysql> show variables like 'log_bin';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_bin | ON |
+---------------+-------+
1 row in set (0.00 sec)
mysql> quit
Bye
[root@ylt001 3306]# mysql -uroot -ppassword -S /data/3306/mysql.sock
mysql> grant replication slave on *.* to 'rep'@'192.168.2.%' identified by 'password';
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> select user,host from mysql.user;
+------+-------------+
| user | host |
+------+-------------+
| root | 127.0.0.1 |
| rep | 192.168.2.% |
| root | localhost |
+------+-------------+
3 rows in set (0.00 sec)
mysql> select user,host from mysql.user where user='rep';
+------+-------------+
| user | host |
+------+-------------+
| rep | 192.168.2.% |
+------+-------------+
1 row in set (0.00 sec)
mysql> show grants for rep@'192.168.2.%';
+--------------------------------------------------------------------------------------------------------------------------+
| Grants for rep@192.168.2.% |
+--------------------------------------------------------------------------------------------------------------------------+
| GRANT REPLICATION SLAVE ON *.* TO 'rep'@'192.168.2.%' IDENTIFIED BY PASSWORD '*91F687E9EA9F80F26008D0CA416D9C233B14C9E3' |
+--------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
mysql> flush table with read lock;
Query OK, 0 rows affected (0.00 sec)
mysql> show variables like '%timeout%';
+----------------------------+----------+
| Variable_name | Value |
+----------------------------+----------+
...
| interactive_timeout | 28800 |
...
| wait_timeout | 28800 |
+----------------------------+----------+
10 rows in set (0.00 sec)
mysql> show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 | 664 | | |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
[root@ylt001 3306]# mkdir -p /server/backup/
[root@ylt001 3306]# mysqldump -uroot -ppassword -S /data/3306/mysql.sock --events -A -B |gzip >/server/backup/mysql_bak.$(date +%F).sql.gz
[root@ylt001 3306]# ls -l /server/backup/mysql_bak.$(date +%F).sql.gz
-rw-r--r-- 1 root root 155029 Sep 30 21:03 /server/backup/mysql_bak.2018-09-30.sql.gz
[root@ylt001 3306]# mysql -uroot -ppassword -S /data/3306/mysql.sock -e"show master status"
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 | 664 | | |
+------------------+----------+--------------+------------------+
mysql> unlock tables;
Query OK, 0 rows affected (0.00 sec)
[root@ylt001 ~]# cd /data/3307
[root@ylt001 3307]# vi my.cnf
[mysqld]
server-id = 3
#log-bin = /data/3307/mysql-bin
[root@ylt001 3307]# egrep "server-id|log-bin" my.cnf
server-id = 3
#log-bin=/data/3307/mysql-bin
[root@ylt001 3307]# /data/3307/mysql restart
Restarting MySQL...
Stopping MySQL...
Starting MySQL...
[root@ylt001 3307]# mysql -uroot -ppassword -S /data/3307/mysql.sock
mysql> show variables like 'server_id';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| server_id | 3 |
+---------------+-------+
1 row in set (0.00 sec)
mysql> show variables like 'log_bin';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_bin | OFF |
+---------------+-------+
1 row in set (0.00 sec)
mysql> quit
Bye
[root@ylt001 3306]# cd /server/backup/
[root@ylt001 backup]# ll
total 152
-rw-r--r-- 1 root root 155029 Sep 30 21:03 mysql_bak.2018-09-30.sql.gz
[root@ylt001 backup]# gzip -d mysql_bak.2018-09-30.sql.gz
[root@ylt001 backup]# ll
total 552
-rw-r--r-- 1 root root 561654 Sep 30 21:03 mysql_bak.2018-09-30.sql
[root@ylt001 backup]# mysql -uroot -ppassword -S /data/3307/mysql.sock <mysql_bak.2018-09-30.sql
[root@ylt001 data]# mysql -uroot -ppassword -S /data/3307/mysql.sock
mysql> reset slave;
Query OK, 0 rows affected (0.00 sec)
mysql> CHANGE MASTER TO MASTER_HOST='192.168.2.188', MASTER_PORT=3306, MASTER_USER='rep', MASTER_PASSWORD='password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=664;
Query OK, 0 rows affected (0.01 sec)
mysql> quit
Bye
[root@ylt001 data]# cat master.info
18
mysql-bin.000001
664
192.168.2.188
rep
password
3306
60
0
...
[root@ylt001 data]# mysql -uroot -ppassword -S /data/3307/mysql.sock -e"start slave;"
[root@ylt001 data]# mysql -uroot -ppassword -S /data/3307/mysql.sock -e"show slave status\G;"
[root@ylt001 data]# mysql -uroot -ppassword -S /data/3307/mysql.sock -e"show slave status\G;"|egrep "IO_Running|SQL_Running|_Behind_Master"
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Seconds_Behind_Master: 0
[root@ylt001 data]# mysql -uroot -ppassword -S /data/3306/mysql.sock -e"create database ylt;"
[root@ylt001 data]# mysql -uroot -ppassword -S /data/3307/mysql.sock -e"show databases like 'ylt';"
+----------------+
| Database (ylt) |
+----------------+
| ylt |
+----------------+
[root@ylt001 data]# mysql -uroot -ppassword -S /data/3306/mysql.sock -e"drop database ylt;"
[root@ylt001 data]# mysql -uroot -ppassword -S /data/3307/mysql.sock -e"show databases like 'ylt';"