MySQL主从配置笔记

 MySQL的主从至少需要两个mysql服务,这些服务可以分布在不同的服务器上,也可以在一台服务器上启动多个服务。以下主从配置:

 
1)确保主从服务器上安装了相同的版本的数据库。
2)在主服务器上,设置一个复制使用的帐户,并授予REPLICATION SLAVE权限。这里创建一个复制用户test,可以从ip为192.168.0.5的主机进行连接。
 
mysql> grant replication slave on *.* to 'test'@'192.168.0.5' identified by '123456';
Query OK, 0 rows affected (0.08 sec)
 
3)修改主数据服务器的配置文件my.cnf,开启BINLOG并设置server-id的值。修改完成后需要重新启动数据库服务以让其生效。
 
加入
 
log-bin = /var/lib/mysql/mysql-bin.log
server-id = 1
 
4)为了确保没有数据库操作,以便获得一致性的快照,设置读锁定有效。
 
mysql> flush tables with read lock;
Query OK, 0 rows affected (0.00 sec)
 
5)得到主服务器上当前的二进制日志名和偏移量值。这个操作的目的是为了从数据库启动以后,从这个点开始进行数据的恢复。
 
mysql> show master status;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 |       98 |              |                  |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
 
6)现在主数据服务器已经停止了更新操作,需要生成主数据库的备份,备份的方式可以使用cp或mysqldump等
 
[root@server1 ~]# mysqldump -uroot -p --all-database >data.sql
 
7)主数据库的备份完毕后,主数据库可以恢复写操作,接下来的工作只需要在从服务器上执行
 
mysql> unlock tables;
Query OK, 0 rows affected (0.00 sec)
 
8)将主数据库的一致性备份恢复到从数据库
 
[root@station2 ~]# scp 192.168.0.254:/root/data.sql .
[root@station2 ~]# mysql -uroot -p <data.sql
 
 
9)修改从数据库的配置文件my.cnf,增加server-id参数。(注意server-id的值必须是唯一的,不能和主数据库的配置相,如果有多个从数据库服务器,每个从数据库服务器必须有自己唯一的server-id值)指定复制使用的用户,主数据库服务器的ip,端口以及开始执行复制日志的文件和位置。
 
[mysqld]
server-id=2
log_bin=/var/lib/mysql/mysql-bin.log
master-host=192.168.0.254
master-user=test
master-pass=123456
master-port=3306
master-connect-retry=60
 
10)重启从数据库后台服务,连接到数据后启动slave进程
 
mysql> slave start;
Query OK, 0 rows affected, 1 warning (0.00 sec)
 
11)显示状态
 
mysql> show slave status\G;
*************************** 1. row ***************************
             Slave_IO_State: Waiting for master to send event
                Master_Host: 192.168.0.254
                Master_User: test
                Master_Port: 3306
              Connect_Retry: 60
            Master_Log_File: mysql-bin.000001
        Read_Master_Log_Pos: 295
             Relay_Log_File: mysqld-relay-bin.000002
              Relay_Log_Pos: 432
      Relay_Master_Log_File: mysql-bin.000001
           Slave_IO_Running: Yes
          Slave_SQL_Running: Yes
            Replicate_Do_DB: 
        Replicate_Ignore_DB:
         Replicate_Do_Table:
     Replicate_Ignore_Table:
    Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
                 Last_Errno: 0
                 Last_Error:
               Skip_Counter: 0
        Exec_Master_Log_Pos: 295
            Relay_Log_Space: 432
            Until_Condition: None
             Until_Log_File:
              Until_Log_Pos: 0
         Master_SSL_Allowed: No
         Master_SSL_CA_File:
         Master_SSL_CA_Path:
            Master_SSL_Cert:
          Master_SSL_Cipher:
             Master_SSL_Key:
      Seconds_Behind_Master: 0
 
12)测试
 
首先在主数据库创建一个数据库:
 
mysql> create database test11;
Query OK, 1 row affected (0.05 sec)
 
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| discuz             |
| mysql              |
| test               |
| test11             |
| ucenter            |
+--------------------+
 
然后在从数据中查看
 
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| discuz             |
| mysql              |
| test               |
| test11             |
| ucenter            |
+--------------------+
 
 
 
 
 
 
 

你可能感兴趣的:(mysql安装,Mysql主从,mysql配置,休闲,mysql复制)