• ベストアンサー

MySQLのdbファイルの置き場所について

MySQLのdbファイルの置き場所について 最近SQLiteからMySQLに移行しました。 しかし、とまどっています。 SQLiteだとデータベースファイルは好きな場所に置いて好きな場所から開けていました。 MySQLだとそういった任意の場所にあるデータベースファイルを開いたりすることは できないのでしょうか? mysql_connectはsqlite_openのように相対パスでどこからdbファイルを開くかの 指定ができないようだったので。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

できないと思います。 MySQLでは複数のユーザーが同時にアクセスをする場合のためにデータベース管理システム (DBMS) に処理を依頼するというモデルになっています。そのため、データを保存しているファイルはすべてDBMSが管理をしており、それらファイルを利用者からアクセス出来ないようになっています。また、特定のファイルをデータベースを保管するためのファイルとして指定することもできないでしょう。このようにすることで、ロックの粒度をデータベース単位からテーブル単位や行単位と細かな単位にすることが可能になり、複数のユーザーが同時にデータの更新や参照をするということを効率化しやすくなります。また、DBMSとの通信にsocketを使うようにしているため、データを持つサーバーとデータを処理するサーバーを分けて作りやすくなります。これはデータ量や負荷に応じてマシンの台数を増やして負荷分散を図る上で重要な機能です。SQLiteのようにファイルで実装してあると、台数によるスケールアウトの実現は格段に難しくなります。

RockmanX
質問者

お礼

非常に詳しいご説明ありがとうございます! おかげで理解できました

その他の回答 (1)

noname#111181
noname#111181
回答No.2

MySQLには「my.cnf 」(http://dev.mysql.com/doc/refman/4.1/ja/option-files.html)という設定ファイルがあり、その中のDATADIRによってデータベースファイルの格納ディレクトリを定めています。 このDATADIRを書き換えmysqldを再起動することで、異なるデータベースファイルに切り換えることはできます。普通はやりませんけどね。

RockmanX
質問者

お礼

一応はそのような機能もあるんですね。ありがとうございました!

関連するQ&A