WebSurfer's Home

トップ > Blog 1   |   Login
Filter by APML

MySQL をインストールしました(その 2)

by WebSurfer 31. January 2017 21:00
注意
最新版は不明ですが、この記事の MySQL Installer 5.7.17 を使って Connector/NET をインストールすると、MySql.Data.dll のバージョンの不一致で、Visual Studio の TableAdapter 構成ウィザードで不具合が出ます。詳しくは別の記事「MySQL での TableAdapter 構成ウィザード不具合」を見てください。

先日買った Windows 10 Pro 64-bit のノート PC に MySQL をインストールしましたので、その顛末を備忘録として書いておきます。インストールしたのは現時点での最新版 MySQL Community Server 5.7.17 と Connector/Net 6.9.9 です。

先の記事「MySQL をインストールしました」で MySQL Community Server 5.5.11 と Connector/Net 6.3.6 をインストールした時の概略を書きましたが、6 年近く昔の話なので、その時とはかなりやり方が変わっていました。

まず、MySQL のダウンロードサイト MySQL Community Downloads に行き、そこから順次リンクをたどればインストーラーのダウンロードページ Download MySQL Installer が見つかると思います。

2017/1/27 時点では Generally Available (GA) Releases として MySQL Installer 5.7.17 というバージョンが表示されていました。このインストーラーを使って、Server 本体, Connector/NET はもちろんすべての製品をインストールできるそうです。

また、Windows (x86, 32-bit), MySQL Installer MSI とありますが、それは "Note: MySQL Installer is 32 bit, but will install both 32 bit and 64 bit binaries." というこで、64-bit OS にもこれを使ってインストールできます。

ダウンロードできるファイルは 2 種類あってネットに接続できる環境か否かで選ぶらしいです。自分は mysql-installer-web-community-5.7.17.0.msi(ネットに接続してダウンロードしながらインストールするバージョン)を使いました。

以下にインストールするときに表示された画像を貼って要点を書いておきます。

(1) ライセンス条項に合意

License Agreement

I accept the license terms にチェックを入れて Next をクリックします。

(2) セットアップ内容の選択

Choosing a Setup Type

Developer Default で十分かもしれませんが、万一不足していて後で追加インストールすることになるのも面倒なので Full を選択しました。

(3) 要件のチェック

Check Requirements

先の「(2) セットアップ内容の選択」画面で選んだ内容でインストール先の PC が要件を満たしているかをチェックしているようです。Python はインストールしてないので当然ですが、Python 3.4 is not installed という警告が出ます。無視して Next をクリックします。

(4) インストール開始

Installation

Execute をクリックするとダウンロードとインストールが始まります。

(5) インストール完了

Installation

ダウンロードとインストールには少々時間がかかります。完了すると上の画像のようにそれぞれの項目にチェックマークがつきます。

(6) 製品の構成

Product Configuration

インストールした製品の構成設定を行います。

(7) タイプとネットワーク

Type and Networking

開発マシンで使用するので Development Machine を選択します。Named Pipe と Shared Memory にはデフォルトではチェックが入ってませんが、入れておきました。ファイアウォールの穴あけはデフォルトでチェックが入っていて自動的にやってくれるようです。

(8) MySQL ユーザー詳細情報

MySQL User Details

設定したパスワードは忘れないように覚えておいてください。自分は開発マシンのログイン用と同じパスワードを入力したのですが Week だそうです。(汗) 無視してそのまま続けることはできます。

(9) MySQL サーバーへのアカウント登録

Accounts and Roles

先の「(8) MySQL ユーザー詳細情報」画面で入力したものと同じパスワードを入力し、Add User をクリックします。

(10) Windows Service

Windows Service

PC の Windows OS 上で MySQL を実行するサービス等の設定を行います。画面の通りのデフォルトでいいと思います。

(11) プラグインの設定

Plugins and Extensions

ドキュメントをオンラインで読んでくるための設定を行うようです。画面の通りの設定でいいと思います。

(12) 構成設定の適用

Apply Server Configuration

Execute をクリックすると画面に表示されている各項目の設定が自動的に行われます。

(13) 設定の完了

Apply Server Configuration

構成設定が完了すると各項目にチェックマークが入ります。

(14) サーバーへの接続

Connect to Server

先の「(8) MySQL ユーザー詳細情報」画面で設定したユーザー名とパスワードで接続を試みるということのようです。

(15) 接続の確認

Connect to Server

有効なユーザー名とパスワードを入力して Check をクリックすると Connection successful と表示されます。

(16) サーバー構成の適用

Apply Server Configuration

Execute をクリックすると画面に表示されている各項目が自動的に実行されます。

(17) サーバー構成の完了

Apply Server Configuration

構成設定が完了すると各項目にチェックマークが入ります。

(18) 製品の構成

Product Configuration

上の「(17) サーバー構成の完了」画面で Finish をクリックすると「(6) 製品の構成」画面に戻ります。

(19) 完了

Installation Complete

上の「(18) 製品の構成」画面で Next をクリックするとインストールと設定が完了します。一連の作業で記録されたログがクリップボードにコピーできますので、残しておいた方がよさそうです。

(20) インストールされた製品

MySQL Installer - Community というツールも一緒にインストールされるので、それを起動すると画面のように製品一覧がバージョンと共に表示されます。



最後に、インストールしてみて分かった新発見(というより自分が知らなかっただけですが)を書いておきます。

  1. Connector/NET は Any CPU でコンパイルされている。自分でも corflags.exe を使って確認しました。おかげで ODP.NET のように 32/64-bit の違いに悩むことはなさそうです。
  2. Connector/NET 6.9.9 には .NET 4+ 用の .dll しか含まれない。バージョン 6.4.x から .NET 3.5 以下用の .dll は含まれなくなったらしいです。自分が使っているレンタルサーバーは .NET 3.5 までにしか対応しておらず、それの保守環境を作るのにちょっと困りました。
  3. mysql というコマンドはなくなった模様。旧マシンで行ったようにコマンドラインから mysql と入力して立ち上げることはできなくなっています。代わりに MySQL 5.7 Command Line Client というのを起動して使うことになります。
  4. mysqldump というコマンドもなくなった模様。代わりに mysqldbexport というユーティリティを使うらしいです。その他 mysqldbimport など多々ユーティリティが用意されています。

Tags: ,

MySQL

MySQL をインストールしました

by WebSurfer 23. April 2011 23:12

2017/1/30 追記:
2017/1/27 時点での最新版 MySQL Community Server 5.7.17 と Connector/Net 6.9.9 をWindows 10 Pre 64-bit PC にインストールした時の話を「MySQL をインストールしました(その 2)」に書きました。以下の記事は 2011 年 4 月とかなり昔の話で、それからやり方が変わってきていますのでご注意ください。

自分が使っているホスティングサービスでは SQL Server の他に MySQL もサポートしているので、SQL Server が容量オーバーになる前に MySQL の方にも DB を分散できないか検討するため、開発環境に MySQL をインストールしました。

MySQL

インストールしたのは、このポストを書いている時点での最新版 MySQL Community Server 5.5.11 と Connector/Net 6.3.6 です。Connector/Net 6.3.x は .NET 4 と VS2010 をサポートしています。詳細は MySQL のサイトの Documentation の中の Chapter 2 Connector/Net Versions を参照してください。

まず、MySQL の ダウンロードサイト で MySQL Community Server(サーバー本体)と Connector/NET(ADO.NET や SqlMembershipProvider 相当のライブラリが含まれている)をダウンロードしてきます。

インストールの際、MySQL Community Server の方は細かい設定のオプションがあって、インストーラが英文でいろいろ聞いてきますが、よく読んで進めて行けば問題なく完了すると思います。ファイアウォールのポートの穴あけはデフォルトではない(チェックを入れる必要がある)ので注意してください。インストールの際設定するパスワードは後で使いますので、覚えておいてください。

Connector/Net の方は何も設定する必要はなく、VS2008 と VS2010 の設定まで自動でやってくれます。インストールすると Visual Studio から MySQL に接続できるようになります。

下の画像は Visual Studio のサーバーエクスプローラから接続の追加を行うときに表示されるダイアログです。

接続する DB の種類の選択

上のダイアログで[OK]をクリックすると「接続の追加」ダイアログ(下の画像)が現れます。ここで、先に MySQL Community Server のインストールの際に設定した Server name, User name, Password を入力し、接続する Database name を選択します。

接続の追加

上のダイアログで[詳細設定(V)...]をクリックすると「詳細プロパティ」ダイアログ(下の画像)が表示されます。ここで、Character Set の設定を、先に MySQL Community Server のインストールの際に設定したものにします。インストールのとき Best Support For Multilingualism を選択していると UTF-8 になります(ここでは UTF-8 ではなく utf8 と記入してください)。その他の設定は、自分が試した限りではデフォルトのままで OK でした。

接続の詳細プロパティの設定

以上の設定が終了すると、SQL Server データベースと同様に、サーバーエクスプローラに MySQL データベースの接続が表示されます。

Visual Studio から MySQL への接続

ただし、SQL Server と同様に新規テーブルを作成することはできないようです。自分が試した限りですが、どうしても主キーの設定ができませんでした。

自分が知らないだけで、やり方はあるのかもしれませんが、どうしても Visual Studio からはできなかったので、コマンドラインから作りました。

コマンドラインからテーブルの作成

アプリケーションの作成には Connector/NET 関係の dll への参照の追加が必要です。ただし、レンタルサーバーなど、Connector/NET がインストールされてない場合など、参照設定ではダメな場合は bin フォルダに dll をコピーすることになります。

2013/10/1 追記:ダウンロードした msi インストーラーを使って Connector/NET をインストール すると、自動的(勝手)に GAC に dll が登録され、さらに machine.config ファイルの DbProviderFactories セクション に MySQL 用プロバイダの構成情報が登録されます。なので、開発マシンに Connector/NET をインストールした場合、開発マシンでは Bin に dll をコピーするとか、machine.config を修正することは不要です。

先にも書きましたが、Connector/NET 6.3.x は .NET 4 にも対応していますが、.NET 2.0, 3.0, 3.5 と .NET 4 では使う dll が異なるので注意してください。

デフォルト設定のままインストールすると以下のフォルダに v2.0 と v4.0 という 2 つのフォルダができます。

C:\Program Files\MySQL\MySQL Connector Net 6.3.6\Assemblies

ASP.NET 2.0, 3.0, 3.5 では v2.0 の中の MySql.Data.dll を、ASP.NET 4 なら v4.0 の中のものを bin フォルダにコピーしてください。

接続文字列は、上の画像の「詳細プロパティ」ダイアログの下のほうに表示される Visual Studio からの接続文字列を参考に以下のように web.config に設定します。パスワードの設定に注意してください。

<connectionStrings>
  <add name="MySQL" 
    connectionString="server=localhost;User Id=root;
        database=test;Character Set=utf8;Pwd=********" 
    providerName="MySql.Data.MySqlClient" />
</connectionStrings>

後は名前空間 MySql.Data.MySqlClient をインポートすれば、SqlConnection, SqlCommand などに代えて MySqlConnection, MySqlCommand を使えるようになります。以下のような感じです。

<%@ Page Language="C#" %>
<%@ Import Namespace="System.Data"%>
<%@ Import Namespace="MySql.Data.MySqlClient" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">
  DataTable CreateDataTable()
  {
    string connString =
      ConfigurationManager.
      ConnectionStrings["MySQL"].ConnectionString;
    string query = "SELECT * FROM products";
    using (MySqlConnection connection = 
        new MySqlConnection(connString))
    {
      MySqlCommand command = 
        new MySqlCommand(query, connection);
      MySqlDataAdapter adapter = new MySqlDataAdapter();
      adapter.SelectCommand = command;

      DataSet ds = new DataSet();
      adapter.Fill(ds);

      return ds.Tables[0];
    }
  }
    
  void Page_Load(Object sender, EventArgs e)
  {
    if (!IsPostBack)
    {
      GridView1.DataSource = CreateDataTable();
      GridView1.DataBind();
    }
  }
    
</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
  <title></title>
</head>
<body>
  <form id="form1" runat="server">
  <div>
    <asp:GridView ID="GridView1" runat="server">
    </asp:GridView>
  </div>
  </form>
</body>
</html>

Tags: ,

MySQL

About this blog

2010年5月にこのブログを立ち上げました。その後 ブログ2 を追加し、ここは ASP.NET 関係のトピックス、ブログ2はそれ以外のトピックスに分けました。

Calendar

<<  July 2020  >>
MoTuWeThFrSaSu
293012345
6789101112
13141516171819
20212223242526
272829303112
3456789

View posts in large calendar