[[PageNavi(NavigationList)]]
= MySQLデータベースの使い方
OSDNでは、各プロジェクトが利用できるRDBMSを用意しています。データベースはプロジェクト用Webやシェルサーバなど、OSDNネットワーク内部からのみアクセス可能です。データベースの種類は、MySQLです。利用するには、いくつかの設定が必要なので、この文書をよく読んで利用してください。
== MySQLとは #about_mysql
MySQLは、オープンソースのRDBMで、さまざまなプログラミング言語からアクセスすることができます。OSDNのシステムでサポートしているRuby、Perl、PHP、Pythonなどからも利用できます。MySQLの情報は、開発元である[http://www.mysql.com/ MySQL AB]のサイトにあり、とても詳しい[http://www.mysql.com/documentation/mysql/bychapter/ MySQL Reference Manual]もあります。日本語の情報は、[http://www.mysql.gr.jp/ 日本MySQLユーザ会]のサイトに集まっており、リファレンスマニュアルの日本語訳もあります。また、さまざまな関連書籍もありますので、そちらも参考にするとよいでしょう。
== プロジェクトDBを作ろう #create_db
OSDNでは、プロジェクト用のMySQLデータベースの作成を自動化しています。プロジェクト管理者は、プロジェクト管理ページからデータベースの作成や変更などの指示を出すようになっています。
プロジェクト用データベースは、そのプロジェクトのプロジェクト管理者が作成します。プロジェクトホームのプロジェクトメニューから「管理」→「データベースの管理」を選択します。この管理ページの指示に従ってデータベースとデータベースユーザを作成し、パスワードを割り当てます。これで、このデータベースにアクセスできるようになります。
データベースの作成プロセスは、すぐに実行されるものではありません。データベース作成とパスワード変更の要求はキューに入れられます。このキューはしばらくたってから処理されます。処理が完了し、データベースが利用できる状態になるとデータベース管理ページの「状態」が「Active」になります。
== MySQLデータベースユーザのパスワードを変更するには #change_password
MySQLデータベースユーザのパスワードを変更できます。変更するには、当該プロジェクトのプロジェクトメニューから「管理」→「データベースの管理」を選択します。そして「新しいパスワード」と「パスワード再入力(確認)」フィールドに希望する新しいパスワードを入力し、「更新」ボタンをクリックします。
データベースのパスワード変更プロセスは、データベース作成と同様に、すぐには実行されません。データベース作成とパスワード変更の要求はキューに入れられ、遅延実行されます。
== MySQLデータベースにアクセスするには #access_info
プロジェクト用データベースにアクセスする場合、以下の基本情報を使用します。
* データベースホスト: mysql5.osdn.jp
* データベース名: プロジェクトのUNIX名と同じ(ただしハイフンを除く)
* データベースユーザ: プロジェクトのUNIX名と同じ(ただしハイフンを除く)
* データベースのパスワード: プロジェクト管理者が指定
プロジェクト名に「-」が入っている場合、データベース名・データベースのユーザ名は「-」が取り除かれたものになります。MySQLが「-」入りの名前を使えないからです。この場合、他のプロジェクトと重複する可能性があります。重複した場合は、重複しないものに変更されて作成されます。自分のプロジェクト用のデータベースがどんな名前になっているかは、プロジェクトの「変更履歴の表示」で確認することができます。
== シェルサーバからデータベースにアクセスしてみよう #db_from_shell
シェルサーバからプロジェクト用データベースに、対話的にアクセスすることができます。シェルサーバ上で、以下のように入力してみましょう。
{{{
% mysql -u '''projectdbuser''' --database='''projectdbname''' --host=mysql5.osdn.jp -p
}}}
'''projectdbuser'''と'''projectdbname'''は、[#access_info 上記の情報]に書き換えてください。入力するとパスワードを聞かれますので、設定したパスワードを入力します。きちんと設定できていれば、mysqlのプロンプトが表示され、対話的にデータベースを操作できます。
[[PageNavi(NavigationList)]]