解決Mawell1.29.2啟動SQLException: You have an error in your SQL syntax問題

?問題背景

?此前在openEuler24.03 LTS環境下的Hive使用了MySQL8.4.2,在此環境下再安裝并啟動Maxwell1.29.2時出現如下問題

[ERROR] Maxwell: SQLException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'MASTER STATUS' at line 1

原因分析及解決方案

從Maxwell1.42.0版本才開始支持MySQL8.4版本。

而從Maxwell1.30.0開始,不支持JDK8,需要JDK11,也就是說Maxwell1.42.0也需要JDK11,如果要使用JDK8,需要使用比Maxwell1.30.0以下的版本,例如:Maxwell 1.29.2。

但通過解壓tar包方式安裝Hive,支持的Java版本最高為JDK8。

綜合以上:Hive最高只能支持JDK8,在安裝有Hive的環境下同時安裝Maxwell,就只能安裝Maxwell1.30.0以下,例如:Maxwell1.29.2;Hive和Maxwell同時需要MySQL,而Maxwell1.29.2不支持MySQL8.4,就需要降低MySQL版本,例如:MySQL8.0.42。

降低MySQL版本

降低MySQL版本為MySQL8.0.42,可參考:openEuler24.03 LTS下安裝MySQL8.0.42

修復Hive

修改Hive MySQL驅動

查看MySQL8.0.x可用的驅動

https://mvnrepository.com/artifact/com.mysql/mysql-connector-j

看到MySQL8.0.33為8.0.x的最新驅動,點擊圖上8.0.33

點擊圖片箭頭指向的jar,下載得到mysql-connector-j-8.0.33.jar,并將下載得到的jar上傳到Linux Hive的lib目錄(/opt/module/hive-3.1.3/lib/)下

[liang@node1 lib]$ ls | grep mysql-conn
mysql-connector-j-8.0.33.jar
mysql-connector-j-8.4.0.jar

刪除原來的mysql-connector-j-8.4.0.jar

[liang@node1 lib]$ rm -rf mysql-connector-j-8.4.0.jar
[liang@node1 lib]$ ls | grep mysql-conn
mysql-connector-j-8.0.33.jar

初始化Hive元數據庫

創建metastore數據庫,metastore作為Hive的元數據庫

[liang@node1 lib]$ mysql -uroot -p000000
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 15
Server version: 8.0.42 Source distributionCopyright (c) 2000, 2025, Oracle and/or its affiliates.Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> create database metastore;
Query OK, 1 row affected (0.00 sec)mysql> quit;
Bye
[liang@node1 lib]$

初始化Hive元數據庫有兩種方法:

方法1.如果此前有備份元數據,直接導入之前的備份了元數據庫的數據,這樣此前的Hive元數據不會丟失,能查到此前存在的表。

方法2.使用schematool命令初始化元數據庫,此時元數據庫是新的,不能查到此前存在的表。

根據實際情況選擇其中一個方法操作,這里使用方法2演示。

$ schematool -initSchema -dbType mysql -verbose

初始化成功后,部分輸出如下

0: jdbc:mysql://node1:3306/metastore> /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */
No rows affected (0.001 seconds)
0: jdbc:mysql://node1:3306/metastore> !closeall
Closing: 0: jdbc:mysql://node1:3306/metastore?useSSL=false&useUnicode=true&characterEncoding=UTF-8&allowPublicKeyRetrieval=true
beeline>
beeline> Initialization script completed
schemaTool completed

到此Hive修復完成!?

設置Maxwell

說明:

1.這里使用的Maxwell版本為Maxwell1.29.2;

2.此前已完成下載Maxwell并解壓Maxwell,同時設置了Maxwell的環境變量,配置了config.properties,參考:安裝Maxwell教程

開啟bin-log

創建需要開啟bin-log的數據庫,例如:test

[liang@node1 ~]# mysql -uroot -p000000
...
mysql> create database test;

?修改mysql-server.cnf

[liang@node1 ~]$ sudo vim /etc/my.cnf.d/mysql-server.cnf

注意:這里修改的是/etc/my.cnf.d下的cnf文件。不建議直接修改/etc/my.cnf文件,否則可能會造成MySQL重啟失敗。

?重啟MySQL

[liang@node1 my.cnf.d]$ sudo systemctl restart mysqld

查看MySQL狀態

[liang@node1 my.cnf.d]$ sudo systemctl status mysqld
● mysqld.service - MySQL 8.0 database serverLoaded: loaded (/usr/lib/systemd/system/mysqld.service; disabled; preset: disa>Active: active (running) since Thu 2025-05-08 00:52:19 CST; 7s agoProcess: 6909 ExecStartPre=/usr/libexec/mysql-check-socket (code=exited, status>Process: 6935 ExecStartPre=/usr/libexec/mysql-prepare-db-dir mysqld.service (co>Main PID: 6972 (mysqld)Status: "Server is operational"Tasks: 38 (limit: 21353)Memory: 361.9M ()CGroup: /system.slice/mysqld.service└─6972 /usr/libexec/mysqld --basedir=/usr5月 08 00:52:18 node1 systemd[1]: Starting MySQL 8.0 database server...
5月 08 00:52:19 node1 systemd[1]: Started MySQL 8.0 database server.

按q返回Linux命令行。?

查看master logs

mysql> show master logs;
+------------------+-----------+-----------+
| Log_name         | File_size | Encrypted |
+------------------+-----------+-----------+
| mysql-bin.000001 |       157 | No        |
+------------------+-----------+-----------+
1 row in set (0.00 sec)

創建maxwell數據庫、創建maxwell用戶并賦予其必要權限

mysql> CREATE DATABASE maxwell;
Query OK, 1 row affected (0.00 sec)mysql> CREATE USER 'maxwell'@'%' IDENTIFIED BY 'maxwell';
Query OK, 0 rows affected (0.01 sec)mysql> GRANT ALL ON maxwell.* TO 'maxwell'@'%';
Query OK, 0 rows affected (0.00 sec)mysql> GRANT SELECT, REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'maxwell'@'%';
Query OK, 0 rows affected (0.00 sec)mysql>

啟動ZooKeeper

$ zkServer.sh start

啟動Kafka

$ kafka-server-start.sh -daemon $KAFKA_HOME/config/server.properties

啟動Maxwell

[liang@node1 maxwell-1.29.2]$ bin/maxwell --config config.properties
Using kafka version: 1.0.0
01:12:46,841 INFO  Maxwell - Starting Maxwell. maxMemory: 786956288 bufferMemoryUsage: 0.25
01:12:46,883 INFO  SchemaStoreSchema - Creating maxwell database
01:12:47,042 INFO  ProducerConfig - ProducerConfig values:acks = 1batch.size = 16384bootstrap.servers = [node1:9092]buffer.memory = 33554432client.id =compression.type = snappyconnections.max.idle.ms = 540000enable.idempotence = falseinterceptor.classes = nullkey.serializer = class org.apache.kafka.common.serialization.StringSerializerlinger.ms = 0max.block.ms = 60000max.in.flight.requests.per.connection = 5max.request.size = 1048576metadata.max.age.ms = 300000metric.reporters = []metrics.num.samples = 2metrics.recording.level = INFOmetrics.sample.window.ms = 30000partitioner.class = class org.apache.kafka.clients.producer.internals.DefaultPartitionerreceive.buffer.bytes = 32768reconnect.backoff.max.ms = 1000reconnect.backoff.ms = 50request.timeout.ms = 30000retries = 0retry.backoff.ms = 100sasl.jaas.config = nullsasl.kerberos.kinit.cmd = /usr/bin/kinitsasl.kerberos.min.time.before.relogin = 60000sasl.kerberos.service.name = nullsasl.kerberos.ticket.renew.jitter = 0.05sasl.kerberos.ticket.renew.window.factor = 0.8sasl.mechanism = GSSAPIsecurity.protocol = PLAINTEXTsend.buffer.bytes = 131072ssl.cipher.suites = nullssl.enabled.protocols = [TLSv1.2, TLSv1.1, TLSv1]ssl.endpoint.identification.algorithm = nullssl.key.password = nullssl.keymanager.algorithm = SunX509ssl.keystore.location = nullssl.keystore.password = nullssl.keystore.type = JKSssl.protocol = TLSssl.provider = nullssl.secure.random.implementation = nullssl.trustmanager.algorithm = PKIXssl.truststore.location = nullssl.truststore.password = nullssl.truststore.type = JKStransaction.timeout.ms = 60000transactional.id = nullvalue.serializer = class org.apache.kafka.common.serialization.StringSerializer01:12:47,076 INFO  AppInfoParser - Kafka version : 1.0.0
01:12:47,076 INFO  AppInfoParser - Kafka commitId : aaa7af6d4a11b29d
01:12:47,121 INFO  Maxwell - Maxwell v1.29.2 is booting (MaxwellKafkaProducer), starting at Position[BinlogPosition[mysql-bin.000003:157], lastHeartbeat=0]
01:12:47,229 INFO  AbstractSchemaStore - Maxwell is capturing initial schema
01:12:47,396 INFO  BinlogConnectorReplicator - Setting initial binlog pos to: mysql-bin.000003:157
01:12:47,418 INFO  BinaryLogClient - Connected to node1:3306 at mysql-bin.000003/157 (sid:6379, cid:24)
01:12:47,418 INFO  BinlogConnectorReplicator - Binlog connected.

看到能正常啟動了,說明Maxwell啟動問題已解決!

完成!enjoy it!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/80228.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/80228.shtml
英文地址,請注明出處:http://en.pswp.cn/web/80228.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Oracle APEX IR報表列寬調整

目錄 1. 問題:如何調整Oracle APEX IR報表列寬 2. 解決辦法 1. 問題:如何調整Oracle APEX IR報表列寬 1-1. 防止因標題長而數據短,導致標題行的文字都立起來了,不好看。 1-2. 防止因數據太長而且中間還沒有空格,把列…

pytorch 14.3 Batch Normalization綜合調參實踐

文章目錄 一、Batch Normalization與Batch_size綜合調參二、復雜模型上的Batch_normalization表現1、BN對復雜模型(sigmoid)的影響2、模型復雜度對模型效果的影響3、BN對復雜模型(tanh)的影響 三、包含BN層的神經網絡的學習率優化…

Model.eval() 與 torch.no_grad() PyTorch 中的區別與應用

Model.eval() 與 torch.no_grad(): PyTorch 中的區別與應用 在 PyTorch 深度學習框架中,model.eval() 和 torch.no_grad() 是兩個在模型推理(inference)階段經常用到的函數,它們各自有著獨特的功能和應用場景。本文將詳細解析這兩…

Swagger go中文版本手冊

Swaggo(github.com/swaggo/swag)的注解語法是基于 OpenAPI 2.0 (以前稱為 Swagger 2.0) 規范的,并添加了一些自己的約定。 主要官方文檔: swaggo/swag GitHub 倉庫: 這是最權威的來源。 鏈接: https://github.com/swaggo/swag重點關注: README.md: 包含了基本的安裝、使用…

物聯網設備遠程管理:基于代理IP的安全固件更新通道方案

在物聯網設備遠程管理中,固件更新的安全性直接關系到設備功能穩定性和系統抗攻擊能力。結合代理IP技術與安全協議設計,可構建安全、高效的固件更新通道。 一、代理IP在固件更新中的核心作用 網絡層隱匿與路由優化 隱藏更新源服務器:通過代理I…

【C++重載操作符與轉換】句柄類與繼承

目錄 一、句柄類的基本概念 1.1 什么是句柄類 1.2 句柄類的設計動機 1.3 句柄類的基本結構 二、句柄類的實現方式 2.1 基于指針的句柄類 2.2 值語義的句柄類 2.3 引用計數的句柄類 三、句柄類與繼承的結合應用 3.1 實現多態容器 3.2 實現插件系統 3.3 實現狀態模式…

谷歌曾經的開放重定向漏洞(如今已經修復) -- noogle DefCamp 2024

題目描述: 上周,我決定創建自己的搜索引擎。這有點難,所以我背上了另一個。我也在8000端口上嘗試了一些東西。 未發現題目任何交互,但是存在一個加密js const _0x43a57f _0x22f9; (function(_0x3d7d57, _0x426e05) {const _0x16c3fa _0x22f9, _0x3187…

【C#】ToArray的使用

在 C# 中&#xff0c;ToArray 方法通常用于將實現了 IEnumerable<T> 接口的集合&#xff08;如 List<T>&#xff09;轉換為數組。這個方法是 LINQ 提供的一個擴展方法&#xff0c;位于 System.Linq 命名空間中。因此&#xff0c;在使用 ToArray 方法之前&#xff0…

資產管理平臺—chemex

1、簡介 Chemex CMDB&#xff08;Configuration Management Database&#xff09;是一個基于現代微服務架構的資產管理與自動化平臺&#xff0c;專為 IT 基礎設施與業務資產管理而設計。其核心目標是解決大規模系統運維中資產信息混亂、配置分散、數據不一致等問題&#xff0c…

【AI】mcp server是什么玩意兒

文章目錄 背景mcp server的必要性mcp server的基本概念mcp server的架構與核心組件總結 背景 劈里啪啦的整了一堆概念&#xff0c;對mcp server還是只停留在知道個詞的地步。 雖然目前大模型的對話生成能力很強&#xff0c;但是大模型&#xff08;如deepseek&#xff09;并不能…

c# 數據結構 樹篇 入門樹與二叉樹的一切

事先聲明,本文不適合對數據結構完全不懂的小白 請至少學會鏈表再閱讀 c# 數據結構 鏈表篇 有關單鏈表的一切_c# 鏈表-CSDN博客 數據結構理論先導:《數據結構&#xff08;C 語言描述&#xff09;》也許是全站最良心最通俗易懂最好看的數據結構課&#xff08;最遲每周五更新~~&am…

《Cookie Cutter》中2000多張精靈表與10000個2D光源的管理之道

一個小團隊如何在多個平臺上以優秀的效果展示手繪動畫&#xff1f;Subcult Joint 工作室給出了答案。他們用六年時間開發出了游戲《Cookie Cutter》。游戲中使用了數千個使用傳統動畫技術制作的高分辨率資產&#xff0c;而且這些資產都在 Unity 中進行了優化。由于工作室需要在…

什么是實景VR?實景VR應用場景

實景VR&#xff0c;即基于真實場景的虛擬現實技術&#xff0c;是利用計算機技術生成三維環境&#xff0c;以模擬并再現真實世界場景的技術。 用戶通過佩戴VR設備&#xff08;如VR頭盔、手柄等&#xff09;或通過電腦設備&#xff0c;可以沉浸在一個高度仿真的虛擬環境中&#…

內核性能測試(60s不丟包性能)

以xGAP-200-SE7K-L&#xff08;雙口10G&#xff09;在飛騰D2000上為例&#xff08;單通道最高性能約2.8Gbps) 單口測試 0口&#xff1a; tcp&#xff1a; taskset -c 4 iperf -c 1.1.1.1 -i 1 -t 60 -p 60001 taskset -c 4 iperf -s -i 1 -p 60001 udp&#xff1a; taskse…

58. 區間和

題目鏈接&#xff1a; 58. 區間和 題目描述&#xff1a; 給定一個整數數組 Array&#xff0c;請計算該數組在每個指定區間內元素的總和。 輸入描述 第一行輸入為整數數組 Array 的長度 n&#xff0c;接下來 n 行&#xff0c;每行一個整數&#xff0c;表示數組的元素。隨后…

C#進階(2)stack(棧)

前言 我們前面介紹了ArrayList,今天就介紹另一種數據結構——棧。 這是棧的基本形式,博主簡單畫了一下,你看個意思就行,很明顯,這種數據有一種特征:先進后出。因為先進來的數據會在下面,下面是密閉的,所以只能取后面進來的。 C#為我們封好了這種數據結構,我們不用擔…

汽車工廠數字孿生實時監控技術從數據采集到三維驅動實現

在工業智能制造推動下&#xff0c;數字孿生技術正成為制造業數字化轉型的核心驅動力。今天詳細介紹數字孿生實時監控技術在汽車工廠中的應用&#xff0c;重點解析從數據采集到三維驅動實現的全流程技術架構&#xff0c;并展示其在提升生產效率、降低成本和優化決策方面的顯著價…

git|gitee倉庫同步到github

參考&#xff1a;一次提交更新兩個倉庫&#xff0c;Get 更優雅的 GitHub/Gitee 倉庫鏡像同步 文章目錄 進入需要使用鏡像功能的倉庫&#xff0c;進入「管理」找到「倉庫鏡像管理」選項&#xff0c;點擊「添加鏡像」按鈕綁定github綁定成功后再次點擊添加鏡像如何申請 GitHub 私…

原生小程序+springboot+vue+協同過濾算法的音樂推薦系統(源碼+論文+講解+安裝+部署+調試)

感興趣的可以先收藏起來&#xff0c;還有大家在畢設選題&#xff0c;項目以及論文編寫等相關問題都可以給我留言咨詢&#xff0c;我會一一回復&#xff0c;希望幫助更多的人。 系統背景 在數字音樂產業迅猛發展的當下&#xff0c;Spotify、QQ 音樂、網易云音樂等音樂平臺的曲…

RustDesk

配置中繼服務器 https://rustdesk.com/docs/zh-cn/self-host/windows/ 服務器端 下載Windows版本 rustdesk-server-windows-x86_64.zip&#xff0c;安裝路徑為&#xff1a;C:\Program Files\RustDeskServer\bin。執行 hbbr.exe 和 hbbs.exe 兩個應用程序。這兩個應用提供了兩…