2017-05-23 3 views
0

MemSQLデータベースに接続しようとしており、c++コードからSQLApi++ライブラリを使用しています。 MySQLクライアントはMemSQLと互換性があり、SQLApi++MySQLをサポートしています。しかし、私は接続することはできませんし、別のエラーを取得します。SQLApi ++でMemSQLに接続できません

例えば、私は、次のパラメータ

Connect("tcp://localhost:3307", "root", "", SA_MySQL_Client) 

で接続し、Access denied for user 'root'@'localhost' (using password: NO)を言ってエラーを取得呼んでいます。

私はインターネットで検索し、DBホスト名を指定するいくつかのバージョンを試しましたが、そのうちは動作しませんでした。私は間違って何をしていますか?正しいバージョンは何ですか?何か案は?

注: memsql -P 3307を実行するだけで、コマンドラインでMemSQLに接続できます。

答えて

0

ローカルIPアドレスとポートを指定したときに何らかの理由でSQLApi++が無視され、デフォルトパス(/var/lib/mysql/mysql.sock)にMySQLのソケットに常に接続しようとしました。

しかし、もう一度documentationを読んだ後、ソケットのパスをホスト名として渡すことができることが判明しました。だから私はMemSQLのソケットパスを渡し、それは働いた!

0

MemSQLと同じマシンにMySQLがインストールされていますか? localhostは一部のクライアントでMySQLにリダイレクトできますが、127.0.0.1は使用しません(https://docs.memsql.com/v5.7/docs/how-to-connect-to-memsql参照)

Connect( "tcp://127.0.0.1:3307"、 "root"、 "" SA_MySQL_Client ")作業?

+0

はい、私は 'MySQL'をインストールしました。 IPで試してみましたが、同じエラーが出ます。 – nabroyan

+0

私も質問を更新しました。私はコマンドラインから接続することはできますが、私は 'C++ 'コードから接続することはできません。 – nabroyan

+0

SqlAPI ++のドキュメントを見ると、最後のparamは列挙型で、文字列として渡すと思います。 Connect( "tcp://127.0.0.1:3307"、 "root"、 "SA_MySQL_Client) –

関連する問題