問題タブ [libmysql]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
mysql - SSL を介して Delphi プログラムからリモート MySQL サーバーに接続する
私は SSL の原則について十分な知識を持っていませんが、暗号化を機能させたいだけです。「REQUIRE X509」が指定されたDBとユーザーがいます。必要な証明書は、MySQL のドキュメントで説明されているように作成されており、うまく機能しています。Windows コマンド ラインからサーバーに接続できます。
MySQL クライアント API を使用してプログラムから同じことを実行しようとすると、問題が発生します (SSL を使用しない場合、プログラムも正常に動作します)。使用される単位はhttp://www.audio-data.de/mysql.htmlです。
これらは私のアクション パスです: 1) mysql_real_connect() の前に mysql_ssl_set() 呼び出し (適切なパラメーターを使用) を追加すると、最後の呼び出しで一般的な SSL 接続エラーが発生します。2) en/mysql-ssl-set.html の MySQL ドキュメントには、関数は常に 0 を返すと書かれています。
...そして、その行を 8 回繰り返しました。11158528、11158784、11159040、... と最後の 2 つの呼び出しで 2 つのゼロが返されるたびに、わずかに大きい数が返されました。
その後、 mysql_real_connect() がついに成功しました! プログラムはいくつかのクエリを実行し、それらに対して適切な結果を返すことさえできましたが(私はデータを知っています)、アクセス違反でクラッシュしました:アドレスの書き込み...どこかで。クラッシュ ポイントは、実行とコードのわずかな変更によって異なります。
バージョンの非互換性の問題によく似ています。MySQL 5.0 と 5.1 の両方の Windows インストール (サーバーは 5.1 であり、Linux でリモートで実行されます。ただし、5.0 の mysql-client プログラムは、SSL 接続時に問題はありません) のライブラリを試しましたが、成功しませんでした。
この問題に精通している人はいますか?助けてくれてありがとう、質問の間違いをお詫びします。
c++ - libmysqlclient.aとlibmysqlclient_r.aの違いは何ですか?
mysqlclientライブラリにリンクするにはどちらを使用すればよいですか?それらの違いは何ですか?答えが見つからないようです。ありがとう。
mysql - cygwin でソースから mysql connector/c (libmysql) をビルドできない
cygwin でソースから MySQL の「Connector/C」をビルドしようとしていますが、問題があります。
-いくつかのコンテキスト-
誰もがcygwinを使いたがる理由について、私たちは多くのことを話すことができました。libmysql
この場合、Windows ボックスで cygwin ツール セットを使用して UNIX 開発を行う方が簡単です。
私の調査によると、コネクタの古いバージョン (おそらく 5.1) を取得して問題なくビルドできるようです。./configure
しかし、MySQL 開発者がビルド構成をcmake
ドリブンから切り替えたとき、cygwin のサポートは終了しました。
MySQL がダウンロード用に提供するソース tar-ball のバージョンは 6.0.2 で、私が取り組んでいるものです。
-1つの(一種の)解決された問題-
dtoa()
最初に遭遇した問題は、 found inの互換性のない再宣言でしたstdlib.h
。(さまざまな最近のバージョンをビルドしようとした他の多くの人も、この問題に遭遇しました-Googleがガイドである場合。)これを解決するためのさまざまな提案がネット上に潜んでいます。私の選択:定義stdlib.h
が削除されたものに一時的に置き換えます。醜い、本当。しかし、それは機能します。dtoa()
(この「修正」により、初期のコンパイル エラーが解消され、プロセスは明らかに無関係な理由で失敗するリンクまで実行されます。)
~未解決問題~
libmysql
コードは に依存していますyaSSL
。これは、cygwin setup-tool/package-manager を使用して環境にパッケージを追加した後にのみ受け入れられるパラメーターを指定しcmake
たにもかかわらず、当てはまるようです。「純粋仮想」クラスメンバーを使用しているようです。C++ の内部構造に関する私の (ある程度限定された) 知識から、これは、コンパイラが暗黙的に特別なシンボル/関数の宣言を想定し、これによりリンカーが関数の (単一の) 定義を検索することを意味します。-DWITH_OPENSSL=1
openssl-devel
yaSSL
__cxa_pure_virtual()
__cxa_pure_virtual()
コードとビルド プロセスが構造化されている方法では、各yaSSL
ソース実装ファイルがオブジェクト ファイルにコンパイルされます。これらのファイルの多くは、 を定義する (つまり、の実装を含む) 別のファイルを参照します__cxa_pure_virtual()
。リンク段階では、定義を含む各オブジェクトが互いに競合します。(シンボルがextern
、またはより具体的には次のように定義されているため:
これらの定義は、共有名前空間にあります。したがって、リンカには、各参照からどれにリンクするかを決定する規則が与えられていません。) 結果は です。multiple definition error
たとえば、次のようになります。
この問題を解決するために、非常に単純化した試みをいくつか試しました。
- のすべての定義を削除しまし
__cxa_pure_virtual()
たが、それは複数定義エラーを未定義参照エラーに置き換えるだけです。 - コンパイラがインラインで使用された関数から外部参照を削除することを望んでいましたが、すべての定義を無駄に変更
__cxa_pure_virtual()
しました。inline
(C++ がルックアップ テーブルを間接層としていつ使用するかはわかりませんが、その場合はオプションではない可能性があります。) そのテストの特定の結果を思い出すと、定義がないinline
場合と同じ結果が作成されました。の。__cxa_pure_virtual()
libmysql
ソースで純粋仮想関数の使用法を探し始めましたが、それはうさぎの穴のように思えました...- 独立したオブジェクト ファイルにの定義を配置するためにビルド プロセスを検討することを検討しました (その後、他のすべてのオブジェクト ファイルから定義を削除します)。
__cxa_pure_virtual()
間の(および含む)オプションを探しています
- 有用なものを構築するためのプロジェクトへの最小限の変更、および
- 現在サポートされているすべてのプラットフォームとcygwinでビルド プロセスを正しく動作させる正しいパッチ セット。
「中間」とは、考慮すべきいくつかの中間の選択肢がある可能性があるためです。したがって、私の見方では、ここで最も重要な質問は、「(このコンテキストで) 複数定義エラーの最も単純/最も簡単な修正は何ですか?」ということです。「ビルド プロセスを cygwin に (レポート) 移植できるようにするには、どのようなことを MySQL チームにフィードバックする必要がありますか?」
~最後に~
MySQL の開発者が cygwin のサポートを放棄した場合、何がそのプラットフォームに彼らの注意を戻すのかわかりません。
私は、cygwin で作業する理由がある開発者が、MySQL コネクタの cygwin/unix ビルドに対してコードをテストするオプションを保持できることを望んでいます。
少なくとも、コネクタの最新バージョン (および、最近のいくつかのバージョン) を cygwin で有効に構築するための最小限のハック セットを含むナレッジ ベースを維持しているコミュニティには、何らかの価値があるかもしれません。そのための良い第一歩は、ここでのスタックオーバーフローに関する議論かもしれません。おそらく、このスレッドのコメントや回答としてもよいでしょう。
node.js - Cygwinの下にlibmysqlをインストールするにはどうすればいいですか?
CygwinでNodeJSのdb-mysql拡張機能を構築しようとしています。問題は、libmysql開発ライブラリとインクルードファイルが必要なことです。Cygwinで動作するようにこれらのものをインストールする方法(および入手先)がわかりません。Ubuntuの下で私はこのようなものを書くでしょう:
しかし、これはCygwinでは不可能です。また、Cygwinのsetup.exeを実行すると、使用可能なlibmysqlパッケージがありません。誰かがこの問題を解決する方法を知っていますか?
MySQLデータベースを含むWindowsにwampをインストールしました。Cygwinでそのインストールのデータベースを使用したいのですが、それは可能ですか?
ありがとう
cmake - mingwを使用したmysqlclient
mingwを介してWindowsにクロスコンパイルされたプロジェクトでlibmysqlclientを使用したいと思います。プログラムをリンクするには、「mysqlclient.a」が必要ですが、取得できません。
mysqlクライアントのWindowsでmingwのmakefileを作成しようとしましたが、構成手順が失敗します。
私は最終的にそれを構築することができました...Windowsでmingwを使用しました。
手順は次のとおりです。
- cygwinをインストールする
- パッケージmake、gcc、g ++、cmake、cygidnをcygwinにインストールします
- libmysqlソースコードをダウンロードして解凍します
- ファイルstrings/dtoa.cを編集し、発生するすべてのものを他の
dtoa
何かに置き換え_dtoa
て、競合を防ぎます - パッケージベースにCD
- mingwにcmake-G"UnixMakefiles"と入力します
- 作る
- インストールする
- C:\ cygwin \ usr \ local \ mysql \ include \ mysql.hを編集し、
#include <winsock.h> /* Bug win32 */
後に追加します#define _mysql_h
- ファイルは「C:\ cygwin \ usr \ local\mysql」で入手できます。
「libmysqlclient.a」と「liblibmysql.dll.a」を取得し、プログラムをそれらにリンクしましたが、それでもリンカーエラーが発生します。どうしたの ?しかし、それでもリンクエラーが発生します!
strings libmysqlclient.a | grep _mysql_ping
リンカが`_mysql_ping@ 4'への未定義の参照について文句を言う間、結果を返します
mysql - mysql2.so:libmysqlclient_r.so.15:共有オブジェクトファイルを開くことができません:そのようなファイルまたはディレクトリはありません
Ubuntu 10.04サーバー、スフィンクス、myql2バージョン0.2.7、およびperconaサーバー5.5(Myslql 5.5)でRails2アプリを実行しようとしています。irbのmysql2は正常に動作し、dbに接続できます。このrails2アプリは、MySql5.1を使用する別のCentosサーバーで動作しています。私が走るとき:
私は得る:
mysql2.so:libmysqlclient_r.so.15:共有オブジェクトファイルを開くことができません:そのようなファイルまたはディレクトリはありません
これが私が持っているライブラリです:
どうすれば修正できますか?
c++ - ロードされた libmysql.dll を介して mySQL DB に接続する
libmysql.dll をロードしていて、データベースに接続したいと考えています。mysql_real_connect を呼び出すと、バッファ オーバーフロー エラーが発生します。なんで?コード:
linux - Linux - 依存関係 libmysqlclient.so.15 が見つかりません
インストールを開始すると、ファイルの依存関係に関するエラーが表示されます
見る:
CentOS に libmysqlclient.so.15 依存関係をインストールするには?
ありがとう。
c - libmysql mysql_real_connectはローカルホストでは失敗しますが、ローカルIPアドレスでは機能します
libmysql C APIを使用していますが、このmysql_real_connect
呼び出しは、ホストの実際のIPアドレス(以外)を使用した場合にのみ機能しますlocalhost
。ホストとして使用するlocalhost
と、次のエラーが発生します。
エラー2003(HY000):「localhost」のMySQLサーバーに接続できません(0)
使用されるユーザーはローカルホストおよび任意のホストからのすべての特権を持っているため、認証は正常である必要があります。
ちなみに、これはWindows7へのXAMPPインストールです。
mysql - MySQL C API を使用して数値を直接取得する
データベースに接続するために C++ で MySQL C API を使用しています。データベースからいくつかの数字を選択してください。
文字列から解析することなく、INTEGER や DOUBLE などの数値型を int や double などのネイティブ C 型に直接フェッチする方法はありますか?
編集:ENUMはどうですか? スイッチを使用する代わりに、毎回 strcmp を実行するのは嫌いです。