无需使用文件即可远程导入mysql数据库



我正在尝试设置一个复制从属服务器。

我希望如果我在从属服务器上将binlog位置设置为0,它就会从0开始读取,并从头开始复制所有内容,直到它与主服务器匹配,但从属服务器什么都不做,也不会出错。

所以我首先需要一个当前的数据库快照。如果两台服务器都可以在本地网络上相互通信,那么我可以在不将数据库转储到文件中的情况下做到这一点吗?我尝试了这个命令,但它只是吐出了用法帮助:

slave ~$ sudo mysqlimport --host='[master-server-ip]' --user='repl' -pC

重申一下,我想通过网络传输所有数据库(除了内置的mysql数据库(,而不必手动传输文件。

您可以使用0作为binlog位置,但也必须指定日志文件。

您可以在MySQL数据目录中看到第一个binlog文件的名称(在unix上通常是/var/lib/mysql(。

然后在从属服务器上尝试这样的操作:

STOP SLAVE;
CHANGE MASTER TO
MASTER_HOST='...',
MASTER_PORT=3306,
MASTER_USER='...',
MASTER_PASSWORD='...',
MASTER_LOG_FILE='<your first binlog file>',
MASTER_LOG_POS=0;
START SLAVE;

当然,如果所有binlog都仍然存在于主服务器上,因为它已经创建,这可能不是你的情况,因为binlog会在一段时间后自动清理。

最新更新