OFF表示二进制日志是关闭的
开启日志3步骤:
①开启mysql安装目录/my.cnf
②找到[mysqld]这个标签,在此标签下面一行,添加语句如下:
log_bin[filename]
在该语句中,log-bin说明要开启二进制文件;filename是二进制日志的名字。如果没有指定,默认为主机名后面跟-bin作为文件名,默认存放在datadir目录中。在这里指定binary_log如果只对指定数据库生成二进制文件,则需要添加如下语句
Binlog-do-db=db_name(数据库名称)
如果不对指定数据库生成二进制文件日志,则需要添加如下语句
Binlog-ignore-db-db_name(数据库名称)
③重启mysql服务。可以在mysql安装目录/data文件夹下看到“binary_log.数字编号”文件,如binary_log.00001.以后每重启一次mysql服务,都会重新生成二进制文件,文件名中的数字编号一次增加。
开机成功后,修改mysql的配置文件my.cnf,设置server-id,代码如下
Server-id=1 Binlog-do-db=xscj Binlog-ignore-db=mysql Server-id=1:每一个数据库服务器都要指定一个唯一的server-id,通常主服务器为1,master和slave的server-id不能相同。 Binlog-do-db:表示需要复制的数据库,这里以xscj为例 Binlog-ignore-db:表示不需要复制的数据库
在master上创建复制所需要的用户
mysql> grant replication slave on *.* to rep_user@'%'; Query OK, 0 rows affected (0.00 sec) mysql> flush privileges; Query OK, 0 rows affected (0.01 sec mysql> show master status\G *************************** 1. row *************************** File: binary_log.000001 Position: 303 Binlog_Do_DB: Binlog_Ignore_DB: row in set (0.00 sec)
将master主机的数据备份出来,保存在/data/binary_dump.txt文件中,然后导入到slave从机中去,具体执行语句如下
[root@localhost bin]# mysqldump -h localhost>/data/binary_dump.txt
(2)控制从服务器操作
修改从服务器的数据库配置文件,配置如下:
Server-id=2 ##设置从服务器id Master-host=192.168.11.129 Master-user=rep_user Master-password= ##设置连接主服务器的密码 Replicate-do-db ##设置你要同步的数据库,可以设置多个 Master-port=<port> ##配置端口号 重启slave,在slave主机的mysql重新执行如下命令,关闭slave服务 Mysql>stop slave; 设置slave实现复制相关的信息,执行如下命令 Mysql>change master to >master_host='', >master_user='', >master_password='', >master_log_file='binary_log.000007', >master_log_pos=120; 输入:show slave status\G用于提供有关从服务器线程的关键参数信息。
常用命令如下
选项 | 功能 |
Slave start | 启动复制线程 |
Slave stop | 停止复制线程 |
Reset slave | 重置复制线程 |
Show slave status | 显示复制线程状态 |
Show slave status\g | 显示复制线程状态(分行显示) |
Show master status\G | 显示主数据库的状态(分行显示) |
Show master logs | 显示主数据库日志 |
Change master to | 动态改变到主数据库的配置 |
Show processlistv | 显示有哪些线程正在运行 |
大家学会了吗?赶紧动手尝试一下吧。
相关推荐:
MySQL中复制数据表中的数据到新表中的操作教程_MySQL
以上就是Mysql中复制详细解析的详细内容,更多请关注php中文网其它相关文章!
……