mysql 搭建ib_MYSQL主从搭建

一主单从

步骤:

1、配置master主机的my.cnf,配置内容如下:

[mysqld]

user=mysql

pid-file=/var/run/mysqld/mysqld.pid

socket=/var/run/mysqld/mysqld.sock

port=3306

basedir=/usr

datadir=/var/lib/mysql

tmpdir=/tmp

log-bin=master-bin

log-bin-index=master-bin.index

server-id=1

配置完之后重启,使my.cnf生效

创建复制用户,并赋予replication slave权限给slave节点

mysql> create user repl_user;

mysql> grant replication slave on *.* to repl_user@mt identified by xyzzy;

2、配置slave从机的my.cnf,配置内容如下:

[mysqld]

user=mysql

pid-file=/var/run/mysqld/mysqld.pid

socket=/var/run/mysqld/mysqld.sock

port=3306

basedir=/usr

datadir=/var/lib/mysql

tmpdir=/tmp

server-id=2

relay-log-index=slave-relay-bin.index

relay-log=slave-relay-bin

在slave上配置slave与master的连接

change master to

master_host='mo',

master_port='3306',

master_user'repl_user',

master_password='xyzzy',

master_log_file='mysql-bin.00002',

master_log_pos=101;

启动slave

start slave

3、查看slave的状态

mysql> show slave status \G

*************************** 1. row ***************************

Slave_IO_State: Waiting for master to send event

Master_Host: mo

Master_User: repl_user

Master_Port: 3306

Connect_Retry: 60

Master_Log_File: master-bin.000001

Read_Master_Log_Pos: 946

Relay_Log_File: slave-relay-bin.000002

Relay_Log_Pos: 1092

Relay_Master_Log_File: master-bin.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: 946

Relay_Log_Space: 1247

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

Last_IO_Error:

Last_SQL_Errno: 0

Last_SQL_Error:

1 row in set (0.00 sec)

如果Slave_IO_Running、Slave_SQL_Running均为yes则证明配置成功,如果有其中一个为no,如下所示:

mysql> show slave status \G

*************************** 1. row ***************************

Slave_IO_State: Connecting to master

Master_Host: mo

Master_User: repl_user

Master_Port: 3306

Connect_Retry: 60

Master_Log_File:

Read_Master_Log_Pos: 4

Relay_Log_File: slave-relay-bin.000001

Relay_Log_Pos: 4

Relay_Master_Log_File:

Slave_IO_Running: No

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: 0

Relay_Log_Space: 106

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: NULL

Master_SSL_Verify_Server_Cert: No

Last_IO_Errno: 2013

Last_IO_Error: error connecting to master 'repl_user@mo:3306' - retry-time: 60  retries: 86400

Last_SQL_Errno: 0

Last_SQL_Error:

1 row in set (0.00 sec)

则查看Last_IO_Errno、Last_IO_Error参数,和datadir目录下的hostname.err文件找出错误日志信息,如下所示

[root@mt ~]# cd /var/lib/mysql/

[root@mt mysql]# ls

ibdata1  ib_logfile0  ib_logfile1  master.info  mt.err  mysql  relay-log.info  slave-relay-bin.000001  slave-relay-bin.index  test

[root@mt mysql]# cd mt.err

-bash: cd: mt.err: Not a directory

[root@mt mysql]# tail -f n 200 mt.err

tail: cannot open `n' for reading: No such file or directory

tail: cannot open `200' for reading: No such file or directory

==> mt.err <==

160731 19:27:43  InnoDB: Initializing buffer pool, size = 8.0M

160731 19:27:43  InnoDB: Completed initialization of buffer pool

160731 19:27:43  InnoDB: Started; log sequence number 0 44233

160731 19:27:43 [Note] Event Scheduler: Loaded 0 events

160731 19:27:43 [Note] /usr/libexec/mysqld: ready for connections.

Version: '5.1.71'  socket: '/var/run/mysqld/mysqld.sock'  port: 3306  Source distribution

160731 19:47:02 [Note] 'CHANGE MASTER TO executed'. Previous state master_host='', master_port='3306', master_log_file='', master_log_pos='4'. New state master_host='mo', master_port='3306', master_log_file='', master_log_pos='4'.

160731 19:47:09 [Note] Slave SQL thread initialized, starting replication in log 'FIRST' at position 0, relay log './slave-relay-bin.000001' position: 4

160731 19:47:09 [ERROR] Slave I/O: error connecting to master 'repl_user@mo:3306' - retry-time: 60  retries: 86400, Error_code: 2005

160731 21:13:09 [ERROR] Slave I/O: error connecting to master 'repl_user@mo:3306' - retry-time: 60  retries: 86400, Error_code: 2013

上述错误为repl_user没有给slave机replication slave权限

可以查看

select user,host,password from mysql.user;

看到user在哪个host上可以登陆,如果repl_user对应的host没有slave节点对应的主机名,则repl_user用户无法在slave机上进行远程连接到master所在的节点机。

可以使用show binary logs查看logbin的日志信息

可以使用show master status \G 查看主节点信息

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29802484/viewspace-2123073/,如需转载,请注明出处,否则将追究法律责任。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值