Closed
Description
- canal version 1.1.8-alpha-3
- mysql version 8.0.40
-- CREATE USER canal IDENTIFIED WITH mysql_native_password BY 'canal';
CREATE USER canal IDENTIFIED BY 'canal';
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'%';
-- GRANT ALL PRIVILEGES ON *.* TO 'canal'@'%' ;
FLUSH PRIVILEGES;
使用MysqlConnectorTest测试抓包如下
tcpdump -i lo port 33306 -vv
tcpdump: listening on lo, link-type EN10MB (Ethernet), snapshot length 262144 bytes
13:01:10.597326 IP (tos 0x0, ttl 64, id 55895, offset 0, flags [DF], proto TCP (6), length 52)
localhost.23220 > localhost.33306: Flags [S], cksum 0xfe28 (incorrect -> 0x2141), seq 456351142, win 65535, options [mss 65495,nop,nop,sackOK,nop,wscale 9], length 0
13:01:10.597344 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto TCP (6), length 52)
localhost.33306 > localhost.23220: Flags [S.], cksum 0xfe28 (incorrect -> 0x83bb), seq 2286032178, ack 456351143, win 65535, options [mss 65495,nop,nop,sackOK,nop,wscale 9], length 0
13:01:10.597355 IP (tos 0x0, ttl 64, id 55896, offset 0, flags [DF], proto TCP (6), length 40)
localhost.23220 > localhost.33306: Flags [.], cksum 0xfe1c (incorrect -> 0xbe33), seq 1, ack 1, win 128, length 0
13:01:10.597796 IP (tos 0x0, ttl 64, id 54103, offset 0, flags [DF], proto TCP (6), length 118)
localhost.33306 > localhost.23220: Flags [P.], cksum 0xfe6a (incorrect -> 0x54d5), seq 1:79, ack 1, win 128, length 78
13:01:10.597799 IP (tos 0x0, ttl 64, id 55897, offset 0, flags [DF], proto TCP (6), length 40)
localhost.23220 > localhost.33306: Flags [.], cksum 0xfe1c (incorrect -> 0xbde5), seq 1, ack 79, win 128, length 0
13:01:10.622722 IP (tos 0x0, ttl 64, id 55898, offset 0, flags [DF], proto TCP (6), length 137)
localhost.23220 > localhost.33306: Flags [P.], cksum 0xfe7d (incorrect -> 0xbaa2), seq 1:98, ack 79, win 128, length 97
13:01:10.622735 IP (tos 0x0, ttl 64, id 54104, offset 0, flags [DF], proto TCP (6), length 40)
localhost.33306 > localhost.23220: Flags [.], cksum 0xfe1c (incorrect -> 0xbd84), seq 79, ack 98, win 128, length 0
13:01:10.622893 IP (tos 0x0, ttl 64, id 54105, offset 0, flags [DF], proto TCP (6), length 46)
localhost.33306 > localhost.23220: Flags [P.], cksum 0xfe22 (incorrect -> 0xba70), seq 79:85, ack 98, win 128, length 6
13:01:10.624033 IP (tos 0x0, ttl 64, id 55899, offset 0, flags [DF], proto TCP (6), length 64)
localhost.23220 > localhost.33306: Flags [P.], cksum 0xfe34 (incorrect -> 0x292d), seq 98:122, ack 85, win 128, length 24
13:01:10.624302 IP (tos 0x0, ttl 64, id 54106, offset 0, flags [DF], proto TCP (6), length 119)
localhost.33306 > localhost.23220: Flags [P.], cksum 0xfe6b (incorrect -> 0x1c67), seq 85:164, ack 122, win 128, length 79
13:01:10.624310 IP (tos 0x0, ttl 64, id 54107, offset 0, flags [DF], proto TCP (6), length 40)
localhost.33306 > localhost.23220: Flags [F.], cksum 0xfe1c (incorrect -> 0xbd16), seq 164, ack 122, win 128, length 0
13:01:10.624721 IP (tos 0x0, ttl 64, id 55900, offset 0, flags [DF], proto TCP (6), length 40)
localhost.23220 > localhost.33306: Flags [F.], cksum 0xfe1c (incorrect -> 0xbd15), seq 122, ack 165, win 128, length 0
13:01:10.624741 IP (tos 0x0, ttl 64, id 54108, offset 0, flags [DF], proto TCP (6), length 40)
localhost.33306 > localhost.23220: Flags [.], cksum 0xfe1c (incorrect -> 0xbd15), seq 165, ack 123, win 128, length 0
13:01:10.599 [main] INFO com.alibaba.otter.canal.parse.driver.mysql.MysqlConnector - connect MysqlConnection to /127.0.0.1:33306...
13:01:10.603 [main] INFO com.alibaba.otter.canal.parse.driver.mysql.MysqlConnector - handshake initialization packet received, prepare the client authentication packet to send
13:01:10.603 [main] INFO com.alibaba.otter.canal.parse.driver.mysql.MysqlConnector - auth plugin: caching_sha2_password
13:01:10.622 [main] INFO com.alibaba.otter.canal.parse.driver.mysql.MysqlConnector - client authentication packet is sent out.
13:01:10.624 [main] INFO com.alibaba.otter.canal.parse.driver.mysql.MysqlConnector - auth switch response packet is sent out.
13:01:10.624 [main] INFO com.alibaba.otter.canal.parse.driver.mysql.MysqlConnector - disConnect MysqlConnection to /127.0.0.1:33306...
java.io.IOException: connect /127.0.0.1:33306 failure
at com.alibaba.otter.canal.parse.driver.mysql.MysqlConnector.connect(MysqlConnector.java:85)
at com.alibaba.otter.canal.parse.driver.mysql.MysqlConnectorTest.testQuery(MysqlConnectorTest.java:20)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69)
at com.intellij.rt.junit.IdeaTestRunner$Repeater$1.execute(IdeaTestRunner.java:38)
at com.intellij.rt.execution.junit.TestsRepeater.repeat(TestsRepeater.java:11)
at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:35)
at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:232)
at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:55)
Caused by: java.io.IOException: Error When doing Client Authentication:ErrorPacket [errorNumber=1045, fieldCount=-1, message=Access denied for user 'canal'@'172.224.0.1' (using password: YES), sqlState=28000, sqlStateMarker=#]
at com.alibaba.otter.canal.parse.driver.mysql.MysqlConnector.negotiate(MysqlConnector.java:325)
at com.alibaba.otter.canal.parse.driver.mysql.MysqlConnector.connect(MysqlConnector.java:81)
... 23 more
13:01:10.629 [main] INFO com.alibaba.otter.canal.parse.driver.mysql.MysqlConnector - the channel /127.0.0.1:33306 is not connected
java.lang.AssertionError: connect /127.0.0.1:33306 failure
at org.junit.Assert.fail(Assert.java:88)
at com.alibaba.otter.canal.parse.driver.mysql.MysqlConnectorTest.testQuery(MysqlConnectorTest.java:28)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69)
at com.intellij.rt.junit.IdeaTestRunner$Repeater$1.execute(IdeaTestRunner.java:38)
at com.intellij.rt.execution.junit.TestsRepeater.repeat(TestsRepeater.java:11)
at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:35)
at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:232)
at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:55)