テスト用としてインストールしたUbuntu12.04ですが、まずは自宅LAN内にデータベースサーバを置いてAccessから接続できる環境を作って・・・と妄想しながら作業を進めます。
apt-get update
apt-get install mysql-server
にてインストールを試みます。
そこで気づいたのですが、MySQLのバージョンがあがっています。
現在のサーバで使用しているのはMySQL5.1(のはず)ですが今回は5.5になっているのです。
まぁ、細かいことは気にせず作業を続けます。
その他諸々(mysql-clientとかなんとか)が一緒にインストールされたあと、早速設定ファイルをいじります。
vi /etc/mysql/my.cnf
で開いて、[mysqld]の下に
- default-character-set =utf8
- skip-character-set-client-handshake
の2行を追記して
/etc/init.d/mysql restart
とします。
以前のサーバと同じで無事再起動完了。。。のはずが・・・
エラーで起動しません。
調べると
文字コードの設定をするのに「default-character-set=○○」ではなく
character-set-server=○○
と記述が変わったようなのです。
それを修正してみると無事動きました。
今度はWindows端末でAccessから接続できるようにODBC設定を行います。
まずは本家サイトからODBCドライバをダウンロードしてきます。
お使いの環境に合わせて選びましょう。
ちなみに3.51系と5.1系がありますが、自分は3.51系を選びました。
ドライバのインストールが終わったらコントロールパネル→管理ツール→データソース(ODBC)と選んで設定へと移ります。
そして、システムDSNを選択したら「追加」をクリックします。
出てくるのはこんな感じ↓
Data Source Nameは接続を識別するためにつける名称ですので、自分が分かりやすい名前を付けたらよいと思います。
TCP/IP Serverは接続先のホストを指定します。IPアドレスでもホスト名でも大丈夫なはずです。
UserはMySQLで作成したユーザ名なのですが、ここで注意。
MySQL側でユーザを作成するのですが、
grant 権限 on データベース名.テーブル名 to ユーザ名@ホスト名 identified by 'パスワード';
のホスト名を、Windows端末のホスト名(かIPアドレス)にしてユーザを作成しておきます。
サーバ上で使用するユーザ名@localhostではODBC接続ができないのでご注意。
で、ユーザ名とパスワードを入力して「Test」をクリックします。
「Success!! Connection was made!!」
みたいなメッセージが出たら成功です。が、自分の場合ここで嵌りました。。。
最初に発生したのはMySQLでエラーが発生していたこと。
調べたらなんと!ソケットが消滅していた!?のです。
/etc/mysql/my.cnfに記述されているとおり、ソケットのパスは
/var/run/mysqld/mysqld.sock
何ですが、所定のディレクトリ内がいつの間にか空っぽになっていたんです。
ソケットが消えるって一体何なんだよ。。。
原因が全く分からず、MySQLを再インストールし直したら症状は出なくなったのですが、原因が分からないだけにとても気持ちが悪いです。。。
が、それが一応解決してもまだ繋がりません。
またまた調べたら、外部からの接続をサーバ側で拒否っている様子。
my.cnf内の
bind-address = 127.0.0.1
をコメントアウトすることで解決。
ここでODBC接続を試すと・・・
繋がったーーーーーー!!!!!
って、前のサーバの時にも設定したはずなのに覚えていないとは・・・
やはり備忘録は必須ですな。