如何在一台windows主机上实现MySQL的主从复制

如何在一台windows主机上实现MySQL的主从复制,第1张

1、首先要在本地建立两个mysql服务,指定不同的端口。我这里一个主(3306),一个从(3307)。

2、然后修改主配置文件:

[mysqld]

server-id = 1

binlog-do-db=test #要同步的数据库

#binlog-ignore-db=mysql #不同步的数据库,如果指定了binlog-do-db这里应该可以不用指定的

log-bin=mysql-bin #要生成的二进制日记文件名称

修改从配置文件:

[mysqld]

server-id = 2

log-bin= mysql-bin

replicate-do-db=test

3、在主库添加一个用户 repl 并指定replication权限

create user 'repl'@'127.0.0.1' identified by 'asdf'

GRANT REPLICATION SLAVE ON *.* TO 'repl'@'127.0.0.1'-- --这里我指定数据库(test.*)时报错,而指定全库(*.*)时会成功。

4、保持主从mysql的test数据库初始状态一致。

一般是先将所有的表加读锁,然后copy磁盘上的数据库文件夹。我这里直接停止服务,然后将数据文件拷贝过去。

5、在主数据库里面运行show master status记下file和position字段对应的参数。

mysql>show master status

+------------------+----------+--------------+------------------+

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+------------------+----------+--------------+------------------+

| mysql-bin.000001 | 107 | test | |

+------------------+----------+--------------+------------------+

1 row in set (0.00 sec)

6、在从库设置它的master:

mysql>change master to master_host='127.0.0.1',master_port=3306,master_user='repl',master_password='asdf',master_log_file='mysql-bin.000001',master_log_pos=107

Query OK, 0 rows affected (0.19 sec)

这里的master_log_file和master_log_pos对应刚才show master status记下的参数。

7、在从库开启从数据库复制功能。

slave start

mysql>slave start

Query OK, 0 rows affected (0.00 sec)

在从库可以通过show slave status来查看一些参数。

8. 此时在主库创建表或插入数据,在从库就会很快也能看到了。

-- 主库

mysql>create table tianyc_02(b int)

Query OK, 0 rows affected (0.16 sec)

mysql>insert into tianyc_02 values(2013)

Query OK, 1 row affected (0.13 sec)

-- 从库

mysql>show tables

+----------------+

| Tables_in_test |

+----------------+

| tianyc_01 |

| tianyc_02 |

+----------------+

2 rows in set (0.00 sec)

mysql>select * from tianyc_02

+------+

| b |

+------+

| 2013 |

+------+

1 row in set (0.00 sec)同理,可以搭建第二、第三个从节点。

如何在一台windows主机上搭建mysql主从复制

2、然后修改主配置文件:

[mysqld]

server-id = 1

binlog-do-db=test #要同步的数据库

#binlog-ignore-db=mysql #不同步的数据库,如果指定了binlog-do-db这里应该可以不用指定的

log-bin=mysql-bin #要生成的二进制日记文件名称

修改从配置文件:

前提是把MYSQL的安装路径\bin添加到系统环境变量PATH中了。

备份:mysqldump

-u

root

-p123456

kcgl>

c:\20090219.sql

mysqldump

备份命令

root

用户名(root管理员)

123456

密码

kcgl

备份的数据库名

>

备份符号

20090219.sql

备份的文件名

还原:

mysql

-u

root

-p123456

kcgl<

c:\20090219.sql

mysql

还原命令

root

用户名(root管理员)

123456

密码

dbcurr

备份的数据库名

<

还原符号

20090219.sql还原的文件名

注意:首先要确保你的mysql

中有kcgl这个库,还原命令是不会自动建库的。

mysqldump

远程备份

mysqldump

-h

ip

-uroot

-proot

database

>

c:\data.sql

---------其他---------

mysqldump备份:

mysqldump

-u用户名

-p密码

-h主机

数据库

a

-w

"sql条件"

--lock-all-tables

>

路径

案例:

mysqldump

-uroot

-p1234

-hlocalhost

db1

a

-w

"id

in

(select

id

from

b)"

--lock-all-tables

>

c:\aa.txt

mysqldump还原:

mysqldump

-u用户名

-p密码

-h主机

数据库

<

路径

案例:

mysql

-uroot

-p1234

db1

<

c:\aa.txt

mysqldump按条件导出:

mysqldump

-u用户名

-p密码

-h主机

数据库

a

--where

"条件语句"

--no-建表>

路径

mysqldump

-uroot

-p1234

dbname

a

--where

"tag='88'"

--no-create-info>

c:\a.sql

mysqldump按导入:

mysqldump

-u用户名

-p密码

-h主机

数据库

<

路径

案例:

mysql

-uroot

-p1234

db1

<

c:\a.txt

mysqldump导出表:

mysqldump

-u用户名

-p密码

-h主机

数据库

案例:

mysqldump

-uroot

-p

sqlhk9

a

--no-data

-------------------------------------------------

mysqldump命令介绍

--all-databases,

-A:

备份所有数据库

--databases,

-B:

用于备份多个数据库,如果没有该选项,mysql

dump

把第一个名字参数作为数据库名,后面的作为表名。使用该选项,mysql

dum把每个名字都当作为数据库名。

--force,

-f:即使发现sql错误,仍然继续备份

--host=host_name,

-h

host_name:备份主机名,默认为localhost

--no-data,

-d:只导出表结构

--password[=password],

-p[password]:密码

--port=port_num,

-P

port_num:制定TCP/IP连接时的端口号

--quick,

-q:快速导出

--tables:覆盖

--databases

or

-B选项,后面所跟参数被视作表名

--user=user_name,

-u

user_name:用户名

--xml,

-X:导出为xml文件

1.备份全部数据库的数据和结构

mysql

dump

-uroot

-p123456

-A

>F:\all.sql

2.备份全部数据库的结构(加

-d

参数)

mysql

dump

-uroot

-p123456

-A

-d>F:\all_struct.sql

3.备份全部数据库的数据(加

-t

参数)

mysql

dump

-uroot

-p123456

-A

-t>F:\all_data.sql

4.备份单个数据库的数据和结构(,数据库名mydb)

mysql

dump

-uroot

-p123456

mydb>F:\mydb.sql

5.备份单个数据库的结构

mysql

dump

-uroot

-p123456

mydb

-d>F:\mydb.sql

6.备份单个数据库的数据

mysql

dump

-uroot

-p123456

mydb

-t>F:\mydb.sql

7.备份多个表的数据和结构(数据,结构的单独备份方法与上同)

mysql

dump

-uroot

-p123456

mydb

t1

t2

>f:\multables.sql

8.一次备份多个数据库

mysql

dump

-uroot

-p123456

--databases

db1

db2

>f:\muldbs.sql

还原部分分(1)mysql

命令行source方法

(2)系统命令行方法

1.还原全部数据库:

(1)

mysql

命令行:mysql

>source

f:\all.sql

(2)

系统命令行:

mysql

-uroot

-p123456

use

mydb

mysql

>source

f:\mydb.sql

(2)

mysql

-uroot

-p123456

mydb

use

mydb

mysql

>source

f:\multables.sql

(2)

mysql

-uroot

-p123456

mydb

source

f:\muldbs.sql

(2)

系统命令行:

mysql

-uroot

-p123456

评论

0

0

加载更多


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/10865313.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-11
下一篇 2023-05-11

发表评论

登录后才能评论

评论列表(0条)

保存