PCからAccessなど専用のアプリケーションソフトを使ってODBC接続によりデータベースサーバーへアクセスを試みてもエラーが表示され接続が確立できない場合があります。
こんなときチェックしておきたい基本的な確認事項についてまとめてみました。
AccessでODBC接続するときのチェックポイント
今回取り上げるのはWindowsPCでデータベースソフトにMicrosoftAccessを使ってODBC接続するにあたっての次の4点。
- コネクターの種類とバージョンが適合していない
- MariaDBがlocalhost以外からの接続を制限している
- MariaDB(MySQL)が起動していない
- データベースサーバーのポートが閉じている
これら以外にもエラーを表示させてしまう原因はありますが押さえておきたいポイントとしてまとめてみました。
一つ目のコネクター(ドライバ)のバージョン以外はサーバー側で対処しなければならないもにになります。
コネクターの種類とバージョンが適合していない
マイクロソフトのAccessからMariaDBに接続するときに代表的に使用されるOracle社のコネクターを使う場合、64bitのAccessを使用していればコネクターも64bitに統一したほうが安定して動作するようです。
コネクターのインストールについてはこちら
販売店の担当者から聞いたところではOfficeソフトは32bitを選んでおいた方が良いそうですが、今やOSが64bitが主流の時代ですので32bitで作成したマクロを読み込みたいなどの事情がない限りWindowsOSが64bitならアプリケーションとコネクターも64bitに統一したほうが整理しやすいようにも思えます。
また最新バージョンのコネクターを使用しても、データベースのバージョンが古いと接続できないことが稀にあるようです。
データベースを主体に考慮されていないディストリビューションなどでは対応が遅れてしまうことも珍しくないようです。
セキュリティー面を考慮してPC側では新しいバージョンのコネクターを使いたい場合はサーバー側のOSを変更するなど難しい対応が必要になってくるでしょう。
MariaDBがlocalhost以外からの接続を制限している
MariaDBではデフォルトの状態では、localhostからしかアクセスできない仕様でWebサーバーなどの運用でもこの仕様で問題ないため外部のクライアントPCから接続したい場合には、その端末のIPアドレスから接続できるよう設定する必要があります。
設定ファイルのbind-address = 127.0.0.1を接続するPCに割り当てられた任意のアドレスに変更する。
ファイルを上書き保存したら次のコマンドでMariaDBを再起動させます。
#systemctl restart mariadb
MariaDB(MySQL)が起動していない
PCからの接続時にMariaDBが起動状態にあるかは次のコマンドで確認できます。
#systemctl status mariadb
MariaDBを起動させるには
#systemctl start mariadb
データベースサーバーのポートが閉じている
ODBC接続でMariaDBのデータベースにアクセスしたいとき、専用の3306ポートが使える状態でなければなりません。
サーバー側で3306ポートが閉じている場合は専用のツールを使うなどしてサーバーが3306ポートを使えるように変更する必要があります。
ここで気を付けたいのが接続したいサーバーが一般のWebサーバーであれば、そもそもデータベース用のポートが閉ざされているので外部からの接続は不可能。
Webサーバーのデータベースは基本的に外部接続ができない設定にされています。
当サイトで運用しているDebianでは、標準で解放された状態ですのでアクセス可能でしたが他のポートを含めファイアウォールについては検討する必要があるでしょう。
他にも確認したいこと
直接の原因にはなりにくいですが、サーバーを学習目的などで使う場合はDHCPから割り当てらえたIPアドレスではなく固定のIPアドレスを使用したほうが良いでしょう。
データベース以外でも接続時の不具合からDHCP絡みの要因をあらかじめ排除しておくため、PC・サーバー両方で固定のIPアドレスを設定しておいた方がおすすめです。
また、接続にルーターや無線アクセスポイントを使っている場合には、これらの機器でポートを制限していることも考えられるので、この場合にはセキュリティーを維持したままでの対策が必要になるでしょう。
おすすめ記事
MySQLへ接続するODBCドライバをインストール VPSならインターネット経由でデータベースへ接続できるのか【ミライサーバーを試す】