Our Community is getting an upgrade! To get everything ready for the relaunch, we’ll be placing the site in read-only mode starting September 21st.
We really appreciate your understanding while we get things set up behind the scenes. Catch up on all the exciting details about the move here.
Need help or have questions? Drop us a line at [email protected]

Support Questions

Find answers, ask questions, and share your expertise
Announcements
Share your experience with Cloudera on G2 and get a $25 Amazon Gift card.
Hi, I'm CLEO! Something exciting is coming to the Community. Stay Tuned!

CaptureChangeMySql processor error "Could not connect binlog client to any of the specified hosts due to: Client does not support authentication protocol"

avatar
Contributor

Hi,

 

I want to connect connect two different MySQL database services(mysql 5.7 and Mysql 8.0 ). I am using two  two CaptureChangeMySQL Processors for this. 

Mysql 5.7 is install in my local machine and CaptureChangeMySQL Processors connecting successfully. 

 Mysql 8.0 is install on docker container and on host machine port 3310 like (sudo docker run --name mysql-8.0-container -p 127.0.0.1:3310:3306 -e MYSQL_ROOT_PASSWORD=password -d mysql:8.0). 

CaptureChangeMySQL connecting with mysql 8.0 is giving  error.

 

Can any suggest why i am getting this error and how to resolve it.

Note: I am able to connect mysql 8.0 using mysql workbench.CaptureChangeMySql-8.0-configuration.pngTwo_MySql_Server_Connection_NiFi_Diagram.pngScreenshot from 2022-08-03 16-44-47.png 

 

Error:

2022-08-03 15:59:58,863 ERROR [Timer-Driven Process Thread-4] o.a.n.c.m.processors.CaptureChangeMySQL CaptureChangeMySQL[id=352daba9-0182-1000-a02a-faf160ab1329] Processing failed
org.apache.nifi.processor.exception.ProcessException: Could not connect binlog client to any of the specified hosts due to: Client does not support authentication protocol requested by server; consider upgrading MySQL client
at org.apache.nifi.cdc.mysql.processors.CaptureChangeMySQL.setup(CaptureChangeMySQL.java:664)
at org.apache.nifi.cdc.mysql.processors.CaptureChangeMySQL.onTrigger(CaptureChangeMySQL.java:678)
at org.apache.nifi.controller.StandardProcessorNode.onTrigger(StandardProcessorNode.java:1283)
at org.apache.nifi.controller.tasks.ConnectableTask.invoke(ConnectableTask.java:214)
at org.apache.nifi.controller.scheduling.TimerDrivenSchedulingAgent$1.run(TimerDrivenSchedulingAgent.java:103)
at org.apache.nifi.engine.FlowEngine$2.run(FlowEngine.java:110)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305)
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) 
 

 

Thanks,

 

 

1 ACCEPTED SOLUTION

avatar
Super Guru

@AbhishekSingh ,

 

The CaptureChangeMySQL processor acts as a MySQL replication slave. It requires the REPLICATION_SLAVE privilege in MySQL.

 

Following the steps in the documentation and create a separate user to use in your processor.

 

Cheers,

André

 

 

Cheers,

André

--
Was your question answered? Please take some time to click on "Accept as Solution" below this post.
If you find a reply useful, say thanks by clicking on the thumbs up button.

View solution in original post

1 REPLY 1

avatar
Super Guru

@AbhishekSingh ,

 

The CaptureChangeMySQL processor acts as a MySQL replication slave. It requires the REPLICATION_SLAVE privilege in MySQL.

 

Following the steps in the documentation and create a separate user to use in your processor.

 

Cheers,

André

 

 

Cheers,

André

--
Was your question answered? Please take some time to click on "Accept as Solution" below this post.
If you find a reply useful, say thanks by clicking on the thumbs up button.