Sparkでmysqlデータベースにデータを書き込むときに発生する問題


データベースへの書き込み方法は次のとおりです.
df2.write.mode(SaveMode.Append).jdbc(url,"student",properties)

impossible to write to binary log since BINLOG_FORMAT = STATEMENT
これはmysqlのデフォルトbinlog_formatはSTATEMENTです.
MySQL 5.1.12からは、SQL文ベースのレプリケーション(statement-based replication,SBR)、行ベースのレプリケーション(row-based replication,RBR)、ハイブリッドモードレプリケーション(mixed-based replication,MBR)の3つのモードで実現できます.従ってbinlogのフォーマットも3種類ある:STATEMENT,ROW,MIXED.
デフォルトの独立性レベルREPEATABLE-READを使用する場合はbinlog_をお勧めします.format=ROW.READ-COMMITTED独立性レベルの場合、binlog_format=MIXEDとbinlog_format=ROW効果は同じで、binlogレコードのフォーマットはすべてROWで、主従レプリケーションにとって安全なパラメータです.
方法1
mysql> STOP SLAVE;
Query OK, 0 rows affected (0.02 sec)

 mysql>  SET GLOBAL binlog_format=ROW;
Query OK, 0 rows affected (0.00 sec)

 mysql> START SLAVE;
Query OK, 0 rows affected (0.00 sec)


しかし、これは使い捨てで、再起動後は失効します.
永久に有効で、myを修正する必要があります.ini
# binary logging format - ROW
binlog_format=ROW
修正後、私のパソコンを右クリックして-』管理-』サービスとアプリケーション-』mysqlサービスを停止してから再起動してください.