mirror of
https://github.com/alibaba/canal.git
synced 2026-11-04 00:30:15 +08:00
fixed mysql 8.0.30+ , support new variable
This commit is contained in:
@@ -3,32 +3,30 @@ package com.alibaba.otter.canal.parse.driver.mysql.packets.client;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.IOException;
|
||||
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
|
||||
import com.alibaba.otter.canal.parse.driver.mysql.packets.Capability;
|
||||
import com.alibaba.otter.canal.parse.driver.mysql.utils.ByteHelper;
|
||||
import com.alibaba.otter.canal.parse.driver.mysql.utils.MSC;
|
||||
import com.alibaba.otter.canal.parse.driver.mysql.utils.MySQLPasswordEncrypter;
|
||||
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
|
||||
public class ClientAuthenticationSHA2Packet extends ClientAuthenticationPacket {
|
||||
|
||||
private int clientCapability = Capability.CLIENT_LONG_PASSWORD | Capability.CLIENT_LONG_FLAG
|
||||
| Capability.CLIENT_PROTOCOL_41 | Capability.CLIENT_INTERACTIVE
|
||||
| Capability.CLIENT_TRANSACTIONS | Capability.CLIENT_SECURE_CONNECTION
|
||||
| Capability.CLIENT_MULTI_STATEMENTS | Capability.CLIENT_PLUGIN_AUTH
|
||||
| Capability.CLIENT_PLUGIN_AUTH_LENENC_CLIENT_DATA;
|
||||
|
||||
@Override
|
||||
public byte[] toBytes() throws IOException {
|
||||
ByteArrayOutputStream out = new ByteArrayOutputStream();
|
||||
// 1. write client_flags
|
||||
int clientCapability = 0;
|
||||
clientCapability |= Capability.CLIENT_LONG_PASSWORD;
|
||||
clientCapability |= Capability.CLIENT_LONG_FLAG;
|
||||
clientCapability |= Capability.CLIENT_PROTOCOL_41;
|
||||
clientCapability |= Capability.CLIENT_TRANSACTIONS;
|
||||
clientCapability |= Capability.CLIENT_SECURE_CONNECTION;
|
||||
clientCapability |= Capability.CLIENT_MULTI_STATEMENTS;
|
||||
clientCapability |= Capability.CLIENT_PLUGIN_AUTH;
|
||||
clientCapability |= Capability.CLIENT_PLUGIN_AUTH_LENENC_CLIENT_DATA;
|
||||
int capability = clientCapability;
|
||||
if (getDatabaseName() != null) {
|
||||
clientCapability |= Capability.CLIENT_CONNECT_WITH_DB;
|
||||
capability |= Capability.CLIENT_CONNECT_WITH_DB;
|
||||
}
|
||||
ByteHelper.writeUnsignedIntLittleEndian(clientCapability, out);
|
||||
ByteHelper.writeUnsignedIntLittleEndian(capability, out);
|
||||
|
||||
// 2. write max_packet_size
|
||||
ByteHelper.writeUnsignedIntLittleEndian(MSC.MAX_PACKET_LENGTH, out);
|
||||
|
||||
Reference in New Issue
Block a user