我正在使用 2 个 Centos 6.9 64 位虚拟机练习 mysql 复制。设置过程很好,但是在我将数据插入主服务器后,从服务器中发生了任何事情。
主镶嵌
mysql.cnf
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
symbolic-links=0
log-bin=mysql-bin
binlog-do-db=dbtest
server-id=1
innodb_flush_log_at_trx_commit=1
sync_binlog=1
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
mysql> 显示主状态
mysql-bin.000002 | 13069 | dbtest
mysql> 显示进程列表
145 | root | 192.168.1.11:45148 | NULL | Binlog Dump | 810 | Has sent all binlog to slave; waiting for binlog to be updated | NULL
从属设置
我的cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
symbolic-links=0
#Replication
server-id=2
replicate-do-db=dbtest
master-host=192.168.1.10
master-user=root
master-password=master_password
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
mysql> 显示从属状态
Slave_IO_State : Waiting for master to send event
Master_Host : 192.168.1.10
Master_User : root
Master_Port : 3306
Connect_Retry : 60
Master_Log_File : mysql-bin.000002
Read_Master_Log_Pos : 12954
Relay_Log_File : mysqld-relay-bin.000017
Relay_Log_Pos : 251
Relay_Master_Log_File : mysql-bin.000002
Slave_IO_Running : Yes
Slave_SQL_Running : Yes
Replicate_Do_DB : dbtest
Last_Errno : 0
Skip_Counter : 0
Exec_Master_Log_Pos : 12954
Relay_Log_Space : 552
Until_Condition : None
Until_Log_Pos : 0
Master_SSL_Allowed : No
Seconds_Behind_Master : 0
Master_SSL_Verify_Server_Cert : No
Last_IO_Errno : 0
Last_SQL_Errno : 0
mysql> 显示进程列表
5 | system user | | NULL | Connect | 1251 | Waiting for master to send event | NULL
我跟随本指南。 感谢您的帮助。
答案1
默认数据库来自use db
或来自连接时列出的数据库。
复制过滤在手册中有大量规则:数据库级复制和二进制日志选项的评估是全文。只在需要时使用它,这样会更方便。