本篇内容主要讲解“MySQL报错Error_code: 1045的解决方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL报错Error_code: 1045的解决方法”吧!

今天把两台机器恢复主从关系后,在slave上执行show slave status,结果中显示

2017-04-21T13:46:15.133435Z 8806 [ERROR] Slave I/O for channel '': error connecting to master 'repl@192.168.2.40:3306' - retry-time: 60 retries: 1, Error_code: 1045

首先查看slave的错误日志文件,和上面的错误一样

接着用perror查看上一部获得的错误代码:

[root@iZ2ze5ifr62amhrpcnpn9yZ mysql]# perror 1045

MySQL error code 1045 (ER_ACCESS_DENIED_ERROR): Access denied for user '%-.48s'@'%-.64s' (using password: %s)

有可能是复制用的账户存在问题,先在MASTER上确认复制用户账户是否存在且是否赋了正确的权限

mysql> show grants for repl@192.168.2.41;

+---------------------------------------------------------+

| Grants for repl@192.168.2.41 |

+---------------------------------------------------------+

| GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.2.41' |

+---------------------------------------------------------+

1 row in set (0.00 sec)

发现没有问题,试着从master使用该账户连接至slave,果然没连上

[root@iZ2ze5ifr62amhrpcnpn9yZ ~]# mysql -urepl -h 192.168.2.40 -p -P3306

Enter password:

ERROR 1045 (28000): Access denied for user 'repl'@'192.168.2.40' (using password: YES)

之前的密码可能不对,修改一个新的密码

mysql> update mysql.user set authentication_string=PASSWORD('REPLsafe!@#$41') where User='repl' and host='192.168.2.41';

Query OK, 1 row affected, 1 warning (0.00 sec)

Rows matched: 1 Changed: 1 Warnings: 1


mysql> commit;

Query OK, 0 rows affected (0.00 sec)


mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

试着用新的密码重建复制关系,问题解决。

mysql> stop slave;

Query OK, 0 rows affected (0.01 sec)


mysql> change master to

-> master_host='192.168.2.40',

-> master_port=3306,

-> master_user='repl',

-> master_password='REPLsafe!@#$41',

-> master_log_file='bin.000043',

-> master_log_pos=799072709;

Query OK, 0 rows affected, 2 warnings (0.05 sec)


mysql> start slave;

Query OK, 0 rows affected (0.01 sec)


mysql> show slave status \G;

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

Slave_IO_State: Waiting for master to send event

Master_Host: 192.168.2.40

Master_User: repl

Master_Port: 3306

Connect_Retry: 60

Master_Log_File: bin.000043

Read_Master_Log_Pos: 854716379

Relay_Log_File: relay.000002

Relay_Log_Pos: 1135224

Relay_Master_Log_File: bin.000043

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

Replicate_Do_DB:

Replicate_Ignore_DB: cus_DEMO,cus_DEMO_0413,cus_DEMO_0414,cus_DEMO_0418

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

Relay_Log_Space: 55644221

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

Master_SSL_Verify_Server_Cert: No

Last_IO_Errno: 0

Last_IO_Error:

Last_SQL_Errno: 0

Last_SQL_Error:

Replicate_Ignore_Server_Ids:

Master_Server_Id: 40

Master_UUID: 1b00b716-cf6a-11e6-b66e-00163e320583

Master_Info_File: mysql.slave_master_info

SQL_Delay: 0

SQL_Remaining_Delay: NULL

Slave_SQL_Running_State: System lock

Master_Retry_Count: 86400

Master_Bind:

Last_IO_Error_Timestamp:

Last_SQL_Error_Timestamp:

Master_SSL_Crl:

Master_SSL_Crlpath:

Retrieved_Gtid_Set: 1b00b716-cf6a-11e6-b66e-00163e320583:34573831-34680957

Executed_Gtid_Set: 1b00b716-cf6a-11e6-b66e-00163e320583:1-33612321:34573831-34620341

Auto_Position: 0

Replicate_Rewrite_DB:

Channel_Name:

Master_TLS_Version:

1 row in set (0.00 sec)

到此,相信大家对“MySQL报错Error_code: 1045的解决方法”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!