私は Karl Kraft の MySQL ソースとライブラリをダウンロードし、iOS 6 用の mysql クライアント ライブラリを構築しました。これは、ローカルの mysql データベースで初めて、見事に動作しました。ブロブデータもうまく処理しました。
次のステップは、リモート データベースへのポート転送でした。さまざまなライブラリをダウンロードして髪を引き裂いた後、パッケージ化されたソリューションを探しました。
私は Chilkat の SSH Tunnel ライブラリをダウンロードしました (30 日間の無料試用版と $149 の価値があります)。それも初めてうまくいきました。構築も、リンクも、コンパイルも、i386 のシンボルを見つけられずに、何日も夢中になった後の喜びでした。
OK、これがキッカーです。リモートデータベースを操作したいと考えています。ファイアウォールの背後にあるデータベース マシンで、3306 ssh ポートを ssh ポート 22 から 3306 に転送したとき。今度は mysqld をオフにします。私のホストは localhost ポート 3306 です。mysql に少し問題があります。
UNIX/MAC マシンでのクライアントのデフォルトの起動では、localhost でソケット接続を探します。
次のエラーが表示されます。
エラー: ソケット '/tmp/mysql.sock' を介してローカル MySQL サーバーに接続できません (38)
mysql の TCP プロトコル開始オプションが必要です。コマンド ラインを使用すると、簡単に --protocol=TCP となります。
iOS クライアント ライブラリでは、すぐにはわかりません。検索を行ったところ、mysql.h には mysql_protocol_type と定数 MYSQL_PROTOCOL_DEFAULT、MYSQL_PROTOCOL_TCP などがあります。
私が持っている不足している知識は、Objective C でプログラムでオプションを設定する方法です。
パラメータ (サーバー、名前、ポート、ユーザー名、パスワード) を定義するだけのサーバー オブジェクトがあり、次のオブジェクトは mysql_init() を呼び出す接続オブジェクトです。これを行う方法についての手がかりはありますか?
ところで:カール・クラフトとチルカットの男は、後世のために血を保存する必要があります. 彼らは私に多くの時間を節約しました。
前もって感謝します。