簡體   English   中英

當使用32位版本的MySQL的.net連接器連接到64位版本的MySQL時,我得到“等待表元數據鎖定”

[英]When using 32bit version of MySQL's .net connector to connect to a 64bit version of MySQL I get “ Waiting for table metadata lock ”

我有使用“ AnyCPU”標志編譯的.net應用程序。 該應用程序使用MySQL進行持久存儲。

我遇到了一個奇怪的問題,即當我在32位計算機上運行我的應用程序並將其掛接到運行在另一台計算機上的64位版本的MySQL時,我的查詢最終處於“等待表元數據鎖定”狀態。

我已經測試過,當我的應用程序和MySQL都在同一平台上運行時,即在32位或64位上均運行正常。

這是我的理論,這可能是完全錯誤的:)

由於我的應用程序是作為32位應用程序加載的,因此.net連接器程序集(我認為是用“ anycpu”編譯的)也將也加載為32位。 我的猜測是,當32位.net連接器與64位MySQL通信時,出現了問題。

我的理論正確嗎?

a)如果否,請告訴我,找出問題所在的最簡單方法是什么?

b)如果是,我該怎么辦。 原因是我無法為我的32位應用程序強制.net框架以64位模式加載mysql的.net連接器程序集。 即使有可能(在同一過程中),在加載連接器之前,我將如何知道我的應用程序將要連接到哪種類型的MySQL。

PS我的直覺是,按照Google的說法,這種理論是正確的可能性很小,以前沒有其他人遇到過這個問題。

聽起來這與給出的錯誤消息中的64/32位無關。

看看這個SO問題和答案,看看是否能提供任何線索: 如何找到哪個事務導致“等待表元數據鎖定”狀態?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM