質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

91.23%

  • C#

    5017questions

    C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

  • MySQL

    4581questions

    MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

  • Visual Studio

    1276questions

    Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Visual Studio上でMySQL接続したい/bind-addressの設定

受付中

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 158

STIW8

score 0

(はじめて利用します。不慣れですがよろしくお願い致します。)

前提・実現したいこと

visual studio for macでmysqlの接続を試みていますが上手くいきません。
Nugetで追加済:
MySql.Data
MySql.Web
EntityFramework

発生している問題・エラーメッセージ

conn.Open()でエラーがでます。

using System;
using MySql.Data.MySqlClient;

namespace mysqlsample
{
    class MainClass
    {
        public static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");

            Console.ReadLine();
            string connstr = "Database=test_20171211;Data Source=localhost;User Id=dbuser;Password=******";
            MySqlConnection conn = new MySqlConnection(connstr);
            conn.Open();
            Console.WriteLine("接続しました!");
            Console.ReadLine();
        }
    }
}

試したこと

接続文字列の書き方がサイトによってまばらだったので調べたものはすべて試しました。
NugetでMySql.Dataを追加すれば十分かと思ってMySql Connector/Netは入れてません。

補足情報(言語/FW/ツール等のバージョンなど)

MySql.Data
MySql.Web
EntityFramework
3つとも参照した状態でのエラー:
The type initializer for 'MySql.Data.MySqlClient.Replication.ReplicationManager' threw an exception.

MySql.Dataのみ参照した状態でのエラー:
Unable to connect to any of the specified MySQL hosts.

追記 17/12/14 
mysql設定の問題のようです。
すべてのホストから接続できるdbuserを作りました。

![イメージ説明](d4df2236b1d6b51e0911c1480dad76bf.png)

以下のコマンド実行結果を見るにbind-addressの設定がされていないことが原因かと思って、my.cnfを書き換えてbind-addressを127.0.0.1にしたり、ネットにつないでいるIPにしたりしましたが全敗でした。
(visual studioのデバッグでもMySQL Workbenchでも両方接続できません)
mysql -h [ip or address] -u dbuser -p
イメージ説明

追記 17/12/16
mysqlのバージョン 5.6.35 MySQL Community Server (GPL)
mysql workbench のバージョン 6.3.10

再度確認しました。
イメージ説明

パスワードは'dbuser'と打ってます。
イメージ説明

やはり接続できません
イメージ説明

mysql -h [ip or address] -u dbuser -p
イメージ説明

もうmysqlあきらめたほうがいいのでしょうか。
visual studio で書いたプログラム上でデータベースにアクセスできるなら
なんでもいいです。
Macで導入の簡単なデータベースてなんでしょうか。。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • cauliflowerjoe

    2017/12/12 11:18

    エラーメッセージの内容を記載していただければ、解決への糸口が見えるかもしれません。

    キャンセル

  • STIW8

    2017/12/14 07:25

    エラーメッセージ追加しました。ご指摘ありがとうございます。

    キャンセル

回答 2

0

VisualStudio for Mac を使って、.NET Coreアプリケーションのプロジェクトを作成し、プログラミング言語はC#を選択した場合の話でしょうか?

connstrをもう一度確認してください。
本当に正しい接続情報が入っているか確認して下さい。

こちらの環境でDB名接続先IPアドレスユーザー名パスワードだけを変更して実行しましたが、正常に動作し「接続しました!」と出力されました。

また、C#タグを追加する事をおすすめします。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/12/14 12:06

    テストしていただきありがとうございます。
    接続文字列でサーバー名localhostだけではなくIPアドレスも必要ということでしょうか?
    よろしければ試していただいた時の接続文字列を教えていただきたいです。

    >VisualStudio for Mac を使って、.NET Coreアプリケーションのプロジェクトを作成し、プログラミング言語はC#を選択した場合の話でしょうか?
    →ご認識のとおりです。C#タグ追加しました。

    キャンセル

  • 2017/12/14 12:19 編集

    >接続文字列でサーバー名localhostだけではなくIPアドレスも必要ということでしょうか?
    connstrに接続先を2つ指定する事はできません。
    「localhostをIPv4アドレスの形式に変換してから入力する必要があるか」という意味でしょうか?
    その意味でしたら、IPv4アドレスの形式にする必要はありません。

    >よろしければ試していただいた時の接続文字列を教えていただきたいです。
    回答した通り、値のみを変更してテストしましたが動作しました。
    string connstr = "Database=*****;Data Source=localhost;User Id=*****;Password=******";

    また、MySQLサーバは問題なく動作しているのでしょうか?
    MySQL WorkbenchやHeidiSQL等のアプリケーションから接続できますか?

    まずは、問題がC#側の接続先文字列(connstr)にあるのか、MySQL側にあるのかを切り分けたほうがいいです。

    キャンセル

  • 2017/12/14 20:50

    MySQL Workbenchダウンロードしてみましたが接続できませんでした。ターミナルで直接MySQLに接続はできるので、外部アドレスbind adressが設定されていないことが原因らしいことはわかりました。my.cnfというファイル内のbind adressの設定を書き換えればいいようなのですが、ターミナルでどうコマンドを打ったらいいのかまでたどり着きません泣

    キャンセル

  • 2017/12/14 20:53

    http://rensrv.com/hs/osx/mysql/resol/mycnf-place/#mysqlmycnf
    これを読み解けばいいのでしょうが。。。

    キャンセル

  • 2017/12/16 19:20 編集

    > my.cnfを書き換えてbind-addressを127.0.0.1にしたり、ネットにつないでいるIPにしたりしましたが全敗でした。
    bind-addressは外部から接続するときのみ変更する必要があります。
    よって、今回のように全てがローカルなので127.0.0.1のままでOKです。
    また、家庭向けの一般的なネットワークを利用している場合グローバルIPアドレスを指定するのは間違いです。
    ルータの設定次第ですが多くの場合は192.168.x.xという指定になります。

    > すべてのホストから接続できるdbuserを作りました。
    先程の回答同様、ローカルなのでdbuser@%を作成する必要はありません。

    私のmacOS上で一度MySQLをアンインストールし、再度MySQLの環境を一から構築しなおしました。
    その時のメモです。こちらを参考にして下さい。
    あくまで接続テスト用の最低限の設定です。
    ローカル開発環境用途以外での利用時はセキュリティ面を再考して下さい。
    https://gist.github.com/anonymous/27bb0ba0fc848f3116d8bfdfb3f7e6fa

    キャンセル

  • 2017/12/19 00:01

    aglkjgggさん
    アドバイスだけでなくたくさんても動かしていただいてありがとうございます。
    大変申し訳無いのですがアンインストール、再インストール、一連やってみましたがやはり接続ができません。。なにがどう悪いのかがわかりません。。

    キャンセル

  • 2017/12/19 10:03

    エラーログを見て何が悪いかの原因を調べて下さい。
    basedir と log_error を組み合わせた場所にエラーログがあります。

    https://gist.github.com/anonymous/fc7b30de2d1a95ad599f124702c6bc45

    キャンセル

0

MySQL Workbenchのスクリーンショットですが

127.0,0.1

カンマが混入していますが、これ本題とは関係ないですよね・・?

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

ただいまの回答率

91.23%

関連した質問

同じタグがついた質問を見る

  • C#

    5017questions

    C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

  • MySQL

    4581questions

    MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

  • Visual Studio

    1276questions

    Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。