- ベストアンサー
MySQLのdbファイルの置き場所について
MySQLのdbファイルの置き場所について 最近SQLiteからMySQLに移行しました。 しかし、とまどっています。 SQLiteだとデータベースファイルは好きな場所に置いて好きな場所から開けていました。 MySQLだとそういった任意の場所にあるデータベースファイルを開いたりすることは できないのでしょうか? mysql_connectはsqlite_openのように相対パスでどこからdbファイルを開くかの 指定ができないようだったので。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
できないと思います。 MySQLでは複数のユーザーが同時にアクセスをする場合のためにデータベース管理システム (DBMS) に処理を依頼するというモデルになっています。そのため、データを保存しているファイルはすべてDBMSが管理をしており、それらファイルを利用者からアクセス出来ないようになっています。また、特定のファイルをデータベースを保管するためのファイルとして指定することもできないでしょう。このようにすることで、ロックの粒度をデータベース単位からテーブル単位や行単位と細かな単位にすることが可能になり、複数のユーザーが同時にデータの更新や参照をするということを効率化しやすくなります。また、DBMSとの通信にsocketを使うようにしているため、データを持つサーバーとデータを処理するサーバーを分けて作りやすくなります。これはデータ量や負荷に応じてマシンの台数を増やして負荷分散を図る上で重要な機能です。SQLiteのようにファイルで実装してあると、台数によるスケールアウトの実現は格段に難しくなります。
その他の回答 (1)
MySQLには「my.cnf 」(http://dev.mysql.com/doc/refman/4.1/ja/option-files.html)という設定ファイルがあり、その中のDATADIRによってデータベースファイルの格納ディレクトリを定めています。 このDATADIRを書き換えmysqldを再起動することで、異なるデータベースファイルに切り換えることはできます。普通はやりませんけどね。
お礼
一応はそのような機能もあるんですね。ありがとうございました!
お礼
非常に詳しいご説明ありがとうございます! おかげで理解できました