問題タブ [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.

0 投票する
1 に答える
807 参照

c++ - リンク エラーを参照する libmysqlclient_r.so シンボルを解決するにはどうすればよいですか?

以下は make linking の出力です。libmysqlclient_r.so のパスを指定したにもかかわらず、シンボル参照エラーが表示される

それを libmysqlclient.so にリンクすると、正常に動作します。しかし、私のプログラムはマルチスレッドを使用しているため、libmysqlclient_r.so をリンクしたいと考えています。

以下はメイクファイルです

別のフラグで試してみましたが、まだ変化はありません。提案してください

0 投票する
1 に答える
978 参照

python - Python libmysqlclient segfault(MySQLdb)

MySQLdb上にSQLラッパーを書いています。

実行中に、DMSGで次のエラーが発生し、プロセスがクラッシュします。

この障害をデバッグするにはどうすればよいですか?誰かが以前にこの種のエラーに遭遇したことがありますか?バグは明らかにスクリプトにはありませんが、クライアントでそのバグを引き起こすいくつかの悪い呼び出しを行っていると思います。

それを解決する方法について何か提案はありますか?

Debian6.0で実行されているlibmysqlclient.so.16.0.0を使用したPython2.6.6

ありがとうございました

0 投票する
2 に答える
585 参照

c++ - プリペアドステートメントはスレッド間で共有できますか?

libmysqlclient_r.so、つまりcmysqlコネクタを使用します。現在のアーチに従って、connection1のthread1で、準備されたstmtが作成され、キャッシュされます。次にthread2connection2の場合、キャッシュされた準備済みstmtが再利用されます。

実行後、プログラムはランダムな場所でセグメンテーション違反をスローします。

注:スレッドを1つだけ保持して実行すると、セグメンテーション違反が発生することはありません。

http://dev.mysql.com/doc/refman/4.1/en/threaded-clients.htmlに記載されているすべての必要な手順を実行しましたが、mysqlのドキュメントには何も見つかりませんでした。

スレッド間でpreparestmtsを共有することが問題であるかどうかを提案してください??

0 投票する
0 に答える
501 参照

php - php-mysqli に比べて libmysql (c-api) が遅い

C-test-program(libmysql) が同じ php-test(cli) プログラムのほぼ 2 倍遅い理由を調査しています。

準備済みステートメントを作成し、10 個のレコードを挿入しています。

php-cli-version(mysqlnd) は、libmysql を使用した C バージョンのほぼ 2 倍高速です。私は次のようにテストしています: time ./dbctest && timephp phptest.php

C バージョン:

PHP バージョン:

0 投票する
1 に答える
433 参照

mysql - MySQLdb-libmysqlclient_rがread()でスタック

MySQL DBに対して読み取り/書き込みを行うマルチスレッドのPythonアプリケーションを作成しています(MySQLDBとlibmysqlclient_r-スレッドセーフライブラリを使用)。

ある時点で(理由や時期がわからない)、スレッドの1つがスタックしました。

read()が返されない理由はありますか?それはたまに起こります。

ノート!このDBに接続し、クエリ/実行するスレッドは約6つあります。

それは悪いクエリ文字列である可能性がありますか?APIの不適切な使用法?

0 投票する
1 に答える
1904 参照

c++ - g++ mysql リンカ エラー

次のコマンド ラインを使用して、C++ で記述されたプログラムをコンパイルしようとしています。

これは Debian 32 ビット マシンでは問題なく動作しますが、Ubuntu 64 ビットでは失敗し、その理由はわかりません。mysql を使用するために必要なすべてのパッケージをインストールしました。エラー メッセージは次のようになります。

メッセージは非常に長く、すべての行は参照を変更すると非常によく似ています;)

0 投票する
1 に答える
2161 参照

mysql - sslをサポートするmysqlクライアントライブラリの構築

SSLをサポートするmysql-5.0.33クライアントライブラリを構築しようとしています。私が使用している

構成してmakeからmake install

リンク先のOpenSSLのバージョンは1.0.0aです。上記のプロセスに問題やエラーはありません。

今、私は次のようなプログラムを持っています

このプログラムは次のようにビルドされます。

私が接続しているmysqlサーバー(192.168.1.62)ではsslが有効になっており、ユーザーtestsslはssl経由でのみ接続できます(GRANT ... REQUIRE SSL)。mysqlコマンドラインまたはSqlyogなどの他のmysqlクライアントラインを使用してサーバーに接続するのに問題はありません。

Real connect: 2026: SSL connection errorこのコマンドでプログラムを実行しようとするとエラーが発生しますが、このコマンドで実行しようとすると正常LD_LIBRARY_PATH=<some dir>/lib/mysql/ ./mysql-ssl-testに実行されます./mysql-ssl-test(ここでは、v5.5.25およびOpenSSL 1.0.0-fipsであるシステムlibmysqlclientとリンクしようとします)

興味深いことに、私がラインを交換した場合

でも問題なく動作しLD_LIBRARY_PATH=<some dir>/lib/mysql/ ./mysql-ssl-testます。

これは私が遭遇したmysql5.0.33またはOpenSSL1.0.0aのバグですか(そのようなバグをグーグルで検索しても役に立ちませんでした)、またはlibmysqlclientのビルド中にいくつかの失敗をしています。

0 投票する
3 に答える
619 参照

c - CSQLクエリの構築が簡単になりました

でSQLを構築するのは骨の折れる作業です。そのようなものを作るにはかなりの時間がかかります。私はを初めて使用します。文字列の操作に役立ちます。しかし、クエリ構築コードを短縮するものは見つかりません。こちらのサンプルをご覧ください。

あなたの便宜のためにここに機能がありますappend_mysql_escaped_param

どうすれば小さくできますか?ここには冗長なコードが多すぎて、終わりのない頭痛に十分です。それを改善するためのアイデアはありますか?

プリペアドステートメントを使用できることはわかっています。しかし、プリペアドステートメントの値をバインドするときは、そのようなバルクコードも記述する必要があります。エラーが発生しやすい冗長なコードを削除したいだけです。これは特にCに当てはまります。

0 投票する
1 に答える
265 参照

c - g_strdupv 関数のセグメンテーション違反

この関数でセグメンテーション違反が発生しています。

基本的に私がやりたいことは、いくつかの「SELECT」クエリを実行し、最初の行を文字列の配列として返すことです。マニュアルによるとg_strdupv、返されたものをコピーしchar **て新しいものを作成する必要があります。これを返します。後でg_strfreev、推奨される方法を使用してこれをクリーンアップします。

しかし、なぜここでセグメンテーション違反が発生するのですか。valgrindで実行しました。出力と対応するコードはここにあります

0 投票する
1 に答える
2130 参照

c - g_string_free() を使用した無効な free() / delete / delete[] / realloc()

GListのコレクションを含む がありますGSList。この GSlist には、 のコレクションが含まれていますGString。全体を解放するGListと、セグメンテーション違反が発生します。

次のコードを確認してください。

したがって、 、 およびm_rowsを使用してのみ割り当てられます。新規作成し、 に追加します。すべての結果は に追加されます。それは機能で起こります。g_string_new()g_slist_prepend()g_list_prepend()g_string_new()GStringGSListGSListGListmysql_multiple_rows

free使用してmysql_free_multiple_rowsいます。この関数はその逆を行うだけです。

クリーンアップ関数を参照してください。

このエラーが発生する理由を誰かに教えてもらえますか? メモリの割り当てと割り当て解除のシーケンスは同じなので、なぜそれが起こっているのかわかりません。

  1. Valgrind 出力
  2. ソースファイル