このライブラリで POC を行っていますが、セットアップに問題があります。私は非常に単純な MySQL セットアップを持っています: - 単一の VM (マスタースレーブなし) - centos 7 - MySQL バージョン 5.7
これが私が今まで持っているコードです:
public static void main(String[] args) throws IOException {
BinaryLogClient client = new BinaryLogClient("***.***.***.***", 3306, "****", "******");
client.setBinlogFilename("/var/log/mysql/mysql-bin");
client.registerLifecycleListener(new BinaryLogClient.LifecycleListener() {
@Override
public void onConnect(BinaryLogClient binaryLogClient) {
System.out.println("OnConnect()");
}
@Override
public void onCommunicationFailure(BinaryLogClient binaryLogClient, Exception e) {
System.out.println("OnCommunicationFailure()");
e.printStackTrace();
}
@Override
public void onEventDeserializationFailure(BinaryLogClient binaryLogClient, Exception e) {
System.out.println("OnEventDeserialize()");
}
@Override
public void onDisconnect(BinaryLogClient binaryLogClient) {
System.out.println("OnDisconnect()");
}
});
client.registerEventListener(new EventListener() {
@Override
public void onEvent(Event event) {
System.out.println(event.toString());
}
});
client.connect();
}
このコードを実行すると、次の出力が得られます。
OnCommunicationFailure() com.github.shyiko.mysql.binlog.network.ServerException: com.github.shyiko.mysql.binlog.BinaryLogClient.listenForEventPackets(BinaryLogClient.java:882) のバイナリ ログ インデックス ファイルで最初のログ ファイル名が見つかりませんでしたcom.github.shyiko.mysql.binlog.BinaryLogClient.connect(BinaryLogClient.java:559) で Main.main(Main.java:40) で
私のMySQL構成ファイルの内容:
[mysqld]
datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock
シンボリックリンク=0
log-error=/var/log/mysql/mysqld.log
server_id=1
log-bin=/var/log/mysql/mysql-bin
pid-file=/var/run/mysqld/mysqld.pid
バインドアドレス= . . .
私のログディレクトリの内容は次のとおりです。
[mysql]# ls
error.log mysql-bin.000001 mysql-bin.index mysqld.log
mysql-bin.index の内容はもちろん次のとおりです。
/var/log/mysql/mysql-bin.000001
この問題のすべてのオンライン ソリューションは、マスター スレーブ構成を参照しており、それに応じて解決策があります - 誰か助けてください :)