视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
LinuxMySQL主从复制(Replication)配置
2020-11-09 10:27:45 责编:小采
文档


MySQL是开源的关系型数据库系统。复制(Replication)是从一台MySQL数据库服务器(主服务器master)复制数据到另一个服务器(从服务

MySQL是开源的关系型数据库系统。复制(Replication)是从一台MySQL数据库服务器(主服务器master)复制数据到另一个服务器(从服务器slave)的一个进程。

配置主服务器(master)

1、编辑数据库配置文件my.cnf,一般在/etc/目录下。

1.#vi /etc/my.cnf

在[mysqld]的下面加入下面代码:

1.log-bin=mysql-bin
2.server-id=1
3.innodb_flush_log_at_trx_commit=1
4.sync_binlog=1
5.binlog-do-db=wordpress
6.binlog_ignore_db=mysql

server-id=1中的1可以任定义,只要是唯一的就行。
binlog-do-db=wordpress是表示只备份wordpress。
binlog_ignore_db=mysql表示忽略备份mysql。
不加binlog-do-db和binlog_ignore_db,那就表示备份全部数据库。
2、然后重启MySQL:

1.#service mysqld restart

3、登录MySQL服务器。

1.#mysql -uroot -p

在主服务器新建一个用户赋予“REPLICATION SLAVE”的权限。你不需要再赋予其它的权限。在下面的命令,把X.X.X.X替换为从服务器的IP。

1.mysql>CREATE USER 'user'@ 'X.X.X.X' IDENTIFIED BY 'password';
2.mysql>GRANT REPLICATION SLAVE ON *.* TO 'user'@'X.X.X.X' IDENTIFIED BY 'password';

4、执行以下命令锁定数据库以防止写入数据。

1.mysql>FLUSH TABLES WITH READ LOCK;

5、退出mysql命令行,导出数据库

1.#mysqldump -u root -p123456 --all-databases --lock-tables=false -- > /root/all.sql

6、使用scp命令传输数据库文件all.sql到从服务器。

1.#scp /root/all.sql root@:/root

7、再次连接数据库进入mysql命令行查看master状态。

1.mysql>SHOW MASTER STATUS;

请记下显示的信息,配置从服务器会用到。
+——————+———-+————–+——————+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+——————+———-+————–+——————+
| mysql-bin.000003 | 1001741 | dbispconfig | mysql |
+——————+———-+————–+——————+
1 row in set (0.00 sec)
8、解锁数据表。

1.mysql>UNLOCK TABLES;

配置从服务器(slave)

登录从服务器。
1、导入主服务器的数据库。

1.#mysql -u root -p123456 < /root/all.sql

2、编辑配置文件my.cnf,在[mysqld]下面加入:

1.server-id=2

2可以自己定义,,只要保证唯一的就行。
3、保存文件并重启mysqld。

1.#service mysqld restart

4、登录mysql服务器,执行以下命令。

1.mysql>CHANGE MASTER TO
2.MASTER_HOST='X.X.X.X',
3.MASTER_USER='user',
4.MASTER_PASSWORD='password',
5.MASTER_PORT=3306,
6.MASTER_LOG_FILE='mysql-bin.000001',
7.MASTER_LOG_POS=98,
8.MASTER_CONNECT_RETRY=10;

MASTER_HOST:主服务器的IP。
MASTER_USER:配置主服务器时建立的用户名
MASTER_PASSWORD:用户密码
MASTER_PORT:主服务器mysql端口,如果未曾修改,默认即可。
5、启动slave进程。

1.mysql>START SLAVE;

6、查看mysql的日志,一般在/var/log/目录下的mysqld.log,如果启动成功,你应该会看到类似下面的日志。

[root@localhost ~]# vi /etc/my.cnf

091104 8:42:02 [Note] Slave I/O thread: connected to master ‘root@X.X.X.X:3306?, replication started in log ‘mysql-bin.000001? at position 98
现在主服务器和从服务器已经配置好了。另外你可能需要设置主服务器的数据库二进制日志的过期时间,可以在配置文件中使用参数expire_logs_days来设定。

下载本文
显示全文
专题