select user,host from mysql.user; #查看mysql用户
grant all privileges on *.* to ‘username’@’ip’ identified by ‘password’ with grant option;
例如:
grant all privileges on *.* to 'slave'@'192.168.199.133' identified by 'slave' with grant option;#授权
flush privileges;#刷新权限
查看Mater信息
show master status;
slave从服务[从库]器请求:
修改Slave 配置文件
/etc/my.cnf
server_id
唯一标识, 本环境中配置为: 2
log_bin
可以使用默认配置, 也可以注释.
可选: 修改uuid
主从模式要求多个MySQL 物理名称不能相同. 即按装MySQL 过程中Linux 自动生成的
物理标志. 唯一物理标志命名为uuid. 保存位置是MySQL 数据库的数据存放位置. 默认为
/var/lib/mysql 目录中. 文件名是auto.cnf.
修改auto.cnf 文件中的uuid 数据. 随意修改,不建议改变数据长度.建议改变数据内容.
/var/lib/mysql/auto.cnf
重启MySQL 服务
service mysqld restart;
访问mysql
mysql -uusername -ppassword
停止Slave 功能
stop slave
配置主库信息
需要修改的数据是依据Master 信息修改的. ip 是Master 所在物理机IP. 用户名和密码是
Master 提供的Slave 访问用户名和密码. 日志文件是在Master 中查看的主库信息提供的.在
Master 中使用命令show master status 查看日志文件名称.
change master to master_host=’ip’, master_user=’username’,master_password=’password’,master_log_file=’log_file_name’;
例如:change master to master_host='192.168.199.212', master_user='slave',master_password='slave',
master_log_file='master_log.000001';
启动Slave 功能
start slave;
查看Slave 配置
show slave status \G;
查看重要信息
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.120.139
Master_User: slave
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: master-log.000001
Read_Master_Log_Pos: 427
Relay_Log_File: mysqld-relay-bin.000002
Relay_Log_Pos: 591
Relay_Master_Log_File: master-log.000001
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 427
Relay_Log_Space: 765
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0 最后一次错误的IO 请求编号
Last_IO_Error:
Last_SQL_Errno: 0 最后一次错误的执行SQL 命令编号.
Last_SQL_Error:
Replicate_Ignore_Server_Ids:
Master_Server_Id: 1
Master_UUID: 9ee988ac-8751-11e7-8a95-000c2953ac06
Master_Info_File: /var/lib/mysql/master.info
SQL_Delay: 0
SQL_Remaining_Delay: NULL
Slave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O
thread to update it
Master_Retry_Count: 86400
Master_Bind:
Last_IO_Error_Timestamp:
Last_SQL_Error_Timestamp:
Master_SSL_Crl:
Master_SSL_Crlpath:
Retrieved_Gtid_Set:
Executed_Gtid_Set:
Auto_Position: 0
1 row in set (0.00 sec)
测试主从。。。。。。
数据库从库读取master_log不能发生错误:主从库不一样会发生SQL错误,主从同步失败
数据库IP,password请求错误,主从同步失败
解决:根据错误日志修改 master_log_pos读取的位置执行:
例如:change master to master_host='192.168.16.105', master_user='slave', master_password='slave', master_log_file='mysql_bin.000011',master_log_pos=154;