MySQL报错Error_code: 1045的解决方法
本篇内容主要讲解"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的解决方法"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!