2008年12月07日
OpenSimサーバ構築記録10/OSX版MySQLで動かす
● データベースを、「SQLite」から「MySQL」に。
OpenSimインストール直後のデータベースは内蔵されているSQLiteです。
OpenSimをグリッドモードで公開するためには、MySQLにする必要があります。
まずは、スタンドアロンモードのままで、MySQLに切り替えてみました。
(使用しているOSは、前回と同じく、Mac OS X Leopard 10.5.5 です。)
● MySQLのダウンロードとインストール
MySQLの安定版、5.1を入れてみました。
mysql-5.1.30-osx10.5-x86.dmg
http://dev.mysql.com/downloads/mysql/5.1.html
(サンマイクロのロゴが、なんとも複雑な気分です。。。><)
途中で、ユーザ登録画面になりますが、登録不要の方は、その下にある
「私をダウンロードに連れてって」をクリックすればいいです。
パッケージをインストールします。
mysql-5.1.30-osx10.5-x86.pkg
MySQLStartupItem.pkg
途中で聞いてくる受信接続は、「許可」を選びます。
「システム環境設定」の「セキュリティ」でも、設定できます。
ペインファイルをインストールします。
MySQL.prefPane
MySQLの起動/停止画面が表示されます。
ペインファイルが、「システム環境設定」にインストールされました。
● ターミナルでも確認
MySQLは「/usr/local/」配下にインストールされます。
「.profile」で、パスを通しておくと便利です。
プロセスが存在していることを確認します。
● MySQLの管理者アカウントの修正
MySQLに管理者権限でログインします。
パスワード無しでもログインできてしまいます。
データベースの一覧を確認します。
今から操作するデータベースを「mysql」にします。
データベース「mysql」内の、テーブル一覧を表示します。
テーブル「user」内の、管理者一覧を表示します。
userの無い匿名アカウントが2件あります。
全てのアカウントにパスワードがありません。
匿名アカウント2件を、削除します。
管理者アカウント「root」に、全権限と、パスワードを登録します。
全て同じで、いいです。
管理者一覧を、再確認。
パスワードはハッシュで暗号化されています。
● パスワードの確認と、データベース作成
MySQLに再ログインし、データベース「opensim」を作ります。
ログイン時には、パスワードが必要になってます。
※データベース「opensim」内のテーブルは、OpenSim起動時に自動的に作成されます。
● データベース削除の方法
ちなみに、dropコマンドでデータベースを削除できます。
途中で失敗したら、何度でもやりなおせばいいです。
● OpenSim.iniファイルの修正
OpenSim.iniファイルの、SQLiteの記述部分をMySQLに変更します。
接続文字列が長いですけど、全て同じです。
パスワードを間違えないように。
【~/opensim/0.6.0/bin/OpenSim.ini】
● OpenSimを起動して、データベースを確認
iniファイルに間違いがなければ、問題なく起動するはずです。
データベース「opensim」を確認します。
テーブルが自動的に作成されています。
テーブル「user」を確認します。
一番最初に作ったユーザアカウントが、SQLiteから、MySQLにコピーされています。
● つぎは、グリッドモードで
これでデータベースを外出しできたので、安心してもの作りができます。
OpenSimをアップグレードする時に、うっかりデータベースを上書きしてしまった〜
なんて、最悪ですから。
OpenSimインストール直後のデータベースは内蔵されているSQLiteです。
OpenSimをグリッドモードで公開するためには、MySQLにする必要があります。
まずは、スタンドアロンモードのままで、MySQLに切り替えてみました。
(使用しているOSは、前回と同じく、Mac OS X Leopard 10.5.5 です。)
● MySQLのダウンロードとインストール
MySQLの安定版、5.1を入れてみました。
mysql-5.1.30-osx10.5-x86.dmg
http://dev.mysql.com/downloads/mysql/5.1.html
(サンマイクロのロゴが、なんとも複雑な気分です。。。><)
途中で、ユーザ登録画面になりますが、登録不要の方は、その下にある
「私をダウンロードに連れてって」をクリックすればいいです。
パッケージをインストールします。
mysql-5.1.30-osx10.5-x86.pkg
MySQLStartupItem.pkg
途中で聞いてくる受信接続は、「許可」を選びます。
「システム環境設定」の「セキュリティ」でも、設定できます。
ペインファイルをインストールします。
MySQL.prefPane
MySQLの起動/停止画面が表示されます。
ペインファイルが、「システム環境設定」にインストールされました。
● ターミナルでも確認
MySQLは「/usr/local/」配下にインストールされます。
$ ls /usr/local/
mysql@
mysql-5.1.30-osx10.5-x86/
mysql@
mysql-5.1.30-osx10.5-x86/
「.profile」で、パスを通しておくと便利です。
$ cat .profile
export PATH="${PATH}:/usr/local/mysql/bin"
export PKG_CONFIG_PATH="/Library/Frameworks/Mono.framework/Versions/Current/lib/
pkgconfig/:${PKG_CONFIG_PATH}"
export PATH="${PATH}:/usr/local/mysql/bin"
export PKG_CONFIG_PATH="/Library/Frameworks/Mono.framework/Versions/Current/lib/
pkgconfig/:${PKG_CONFIG_PATH}"
プロセスが存在していることを確認します。
$ ps -u MySQL
UID PID TTY TIME CMD
74 2325 ?? 0:00.12 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql --log-error=/usr/local/mysql/
UID PID TTY TIME CMD
74 2325 ?? 0:00.12 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql --log-error=/usr/local/mysql/
● MySQLの管理者アカウントの修正
MySQLに管理者権限でログインします。
パスワード無しでもログインできてしまいます。
$ mysql -u root
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 140
Server version: 5.1.30 MySQL Community Server (GPL)
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 140
Server version: 5.1.30 MySQL Community Server (GPL)
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
データベースの一覧を確認します。
mysql> show databases;
+--------------------+
| Database
+--------------------+
| information_schema
| mysql
| test
+--------------------+
3 rows in set (0.00 sec)
+--------------------+
| Database
+--------------------+
| information_schema
| mysql
| test
+--------------------+
3 rows in set (0.00 sec)
今から操作するデータベースを「mysql」にします。
mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
データベース「mysql」内の、テーブル一覧を表示します。
mysql> show tables;
+---------------------------+
| Tables_in_mysql
+---------------------------+
| columns_priv
| db
| ・・・・・・・・・・
| ・・・・・・・・・・
| user
+---------------------------+
23 rows in set (0.00 sec)
+---------------------------+
| Tables_in_mysql
+---------------------------+
| columns_priv
| db
| ・・・・・・・・・・
| ・・・・・・・・・・
| user
+---------------------------+
23 rows in set (0.00 sec)
テーブル「user」内の、管理者一覧を表示します。
userの無い匿名アカウントが2件あります。
全てのアカウントにパスワードがありません。
mysql> select host,user,password from user;
+--------------------------------------+------+----------+
| host | user | password |
+--------------------------------------+------+----------+
| localhost | root | |
| マシン名 | root | |
| 127.0.0.1 | root | |
| localhost | | |
| マシン名 | | |
+--------------------------------------+------+----------+
5 rows in set (0.00 sec)
+--------------------------------------+------+----------+
| host | user | password |
+--------------------------------------+------+----------+
| localhost | root | |
| マシン名 | root | |
| 127.0.0.1 | root | |
| localhost | | |
| マシン名 | | |
+--------------------------------------+------+----------+
5 rows in set (0.00 sec)
匿名アカウント2件を、削除します。
mysql> delete from user where user='';
Query OK, 2 rows affected (0.00 sec)
Query OK, 2 rows affected (0.00 sec)
管理者アカウント「root」に、全権限と、パスワードを登録します。
全て同じで、いいです。
mysql> grant all on *.* to root@localhost identified by 'パスワード';
Query OK, 0 rows affected (0.00 sec)
mysql> grant all on *.* to root@マシン名 identified by 'パスワード';
Query OK, 0 rows affected (0.00 sec)
mysql> grant all on *.* to root@127.0.0.1 identified by 'パスワード';
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
mysql> grant all on *.* to root@マシン名 identified by 'パスワード';
Query OK, 0 rows affected (0.00 sec)
mysql> grant all on *.* to root@127.0.0.1 identified by 'パスワード';
Query OK, 0 rows affected (0.00 sec)
管理者一覧を、再確認。
パスワードはハッシュで暗号化されています。
mysql> select host,user,password from user;
+--------------------------------------+------+-------------------------------------------+
| host | user | password |
+--------------------------------------+------+-------------------------------------------+
| localhost | root | *B99937FFA12B418CF2216C5B84B899A343698672 |
| マシン名 | root | *B99937FFA12B418CF2216C5B84B899A343698672 |
| 127.0.0.1 | root | *B99937FFA12B418CF2216C5B84B899A343698672 |
+--------------------------------------+------+-------------------------------------------+
3 rows in set (0.00 sec)
+--------------------------------------+------+-------------------------------------------+
| host | user | password |
+--------------------------------------+------+-------------------------------------------+
| localhost | root | *B99937FFA12B418CF2216C5B84B899A343698672 |
| マシン名 | root | *B99937FFA12B418CF2216C5B84B899A343698672 |
| 127.0.0.1 | root | *B99937FFA12B418CF2216C5B84B899A343698672 |
+--------------------------------------+------+-------------------------------------------+
3 rows in set (0.00 sec)
● パスワードの確認と、データベース作成
MySQLに再ログインし、データベース「opensim」を作ります。
ログイン時には、パスワードが必要になってます。
mysql> quit
Bye
$ mysql -u root -p
Enter password: ********
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 548
Server version: 5.1.30 MySQL Community Server (GPL)
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> create database opensim;
Query OK, 1 row affected (0.00 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema
| mysql
| opensim
| test
+--------------------+
4 rows in set (0.00 sec)
Bye
$ mysql -u root -p
Enter password: ********
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 548
Server version: 5.1.30 MySQL Community Server (GPL)
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> create database opensim;
Query OK, 1 row affected (0.00 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema
| mysql
| opensim
| test
+--------------------+
4 rows in set (0.00 sec)
※データベース「opensim」内のテーブルは、OpenSim起動時に自動的に作成されます。
● データベース削除の方法
ちなみに、dropコマンドでデータベースを削除できます。
途中で失敗したら、何度でもやりなおせばいいです。
mysql> drop database opensim;
● OpenSim.iniファイルの修正
OpenSim.iniファイルの、SQLiteの記述部分をMySQLに変更します。
接続文字列が長いですけど、全て同じです。
パスワードを間違えないように。
【~/opensim/0.6.0/bin/OpenSim.ini】
[Startup]
gridmode = False
clientstack_plugin = OpenSim.Region.ClientStack.LindenUDP.dll
; ##
; ## STORAGE
; ##
;storage_plugin = OpenSim.Data.SQLite.dll
;storage_connection_string = "URI=file:OpenSim.db,version=3"
storage_plugin = OpenSim.Data.MySQL.dll
storage_connection_string = "Data Source=localhost;Database=opensim;User ID=root;Password=パスワード;"
estate_connection_string="Data Source=localhost;Database=opensim;User ID=root;Password=パスワード;"
;asset_database = "sqlite"
asset_database = "local"
see_into_this_sim_from_neighbor = True
; ##
; ## PHYSICS
; ##
meshing = ZeroMesher
;meshing = Meshmerizer
;physics = basicphysics
physics = OpenDynamicsEngine
physical_prim = True
startup_console_commands_file = "startup_commands.txt"
shutdown_console_commands_file = "shutdown_commands.txt"
serverside_object_permissions = False
storage_prim_inventories = True
; ##
; ## ScriptEngine
; ##
;DefaultScriptEngine = ScriptEngine.DotNetEngine
DefaultScriptEngine = XEngine
[StandAlone]
accounts_authenticate = False
welcome_message = "Welcome to OpenSimulator"
;asset_plugin = OpenSim.Data.SQLite.dll
asset_plugin = OpenSim.Data.MySQL.dll
asset_source = "Data Source=localhost;Database=opensim;User ID=root;Password=パスワード;"
;inventory_plugin = OpenSim.Data.SQLite.dll
inventory_plugin = OpenSim.Data.MySQL.dll
inventory_source = "Data Source=localhost;Database=opensim;User ID=root;Password=パスワード;"
;userDatabase_plugin = OpenSim.Data.SQLite.dll
userDatabase_plugin = OpenSim.Data.MySQL.dll
user_source = "Data Source=localhost;Database=opensim;User ID=root;Password=パスワード;"
dump_assets_to_file = False
[Network]
http_listener_port = 9000
remoting_listener_port = 8895
default_location_x = 1000
default_location_y = 1000
grid_server_url = http://127.0.0.1:8001
grid_send_key = null
grid_recv_key = null
user_server_url = http://127.0.0.1:8002
user_send_key = null
user_recv_key = null
asset_server_url = http://127.0.0.1:8003
inventory_server_url = http://127.0.0.1:8004
secure_inventory_server = true
gridmode = False
clientstack_plugin = OpenSim.Region.ClientStack.LindenUDP.dll
; ##
; ## STORAGE
; ##
;storage_plugin = OpenSim.Data.SQLite.dll
;storage_connection_string = "URI=file:OpenSim.db,version=3"
storage_plugin = OpenSim.Data.MySQL.dll
storage_connection_string = "Data Source=localhost;Database=opensim;User ID=root;Password=パスワード;"
estate_connection_string="Data Source=localhost;Database=opensim;User ID=root;Password=パスワード;"
;asset_database = "sqlite"
asset_database = "local"
see_into_this_sim_from_neighbor = True
; ##
; ## PHYSICS
; ##
meshing = ZeroMesher
;meshing = Meshmerizer
;physics = basicphysics
physics = OpenDynamicsEngine
physical_prim = True
startup_console_commands_file = "startup_commands.txt"
shutdown_console_commands_file = "shutdown_commands.txt"
serverside_object_permissions = False
storage_prim_inventories = True
; ##
; ## ScriptEngine
; ##
;DefaultScriptEngine = ScriptEngine.DotNetEngine
DefaultScriptEngine = XEngine
[StandAlone]
accounts_authenticate = False
welcome_message = "Welcome to OpenSimulator"
;asset_plugin = OpenSim.Data.SQLite.dll
asset_plugin = OpenSim.Data.MySQL.dll
asset_source = "Data Source=localhost;Database=opensim;User ID=root;Password=パスワード;"
;inventory_plugin = OpenSim.Data.SQLite.dll
inventory_plugin = OpenSim.Data.MySQL.dll
inventory_source = "Data Source=localhost;Database=opensim;User ID=root;Password=パスワード;"
;userDatabase_plugin = OpenSim.Data.SQLite.dll
userDatabase_plugin = OpenSim.Data.MySQL.dll
user_source = "Data Source=localhost;Database=opensim;User ID=root;Password=パスワード;"
dump_assets_to_file = False
[Network]
http_listener_port = 9000
remoting_listener_port = 8895
default_location_x = 1000
default_location_y = 1000
grid_server_url = http://127.0.0.1:8001
grid_send_key = null
grid_recv_key = null
user_server_url = http://127.0.0.1:8002
user_send_key = null
user_recv_key = null
asset_server_url = http://127.0.0.1:8003
inventory_server_url = http://127.0.0.1:8004
secure_inventory_server = true
● OpenSimを起動して、データベースを確認
iniファイルに間違いがなければ、問題なく起動するはずです。
$ mono OpenSim.exe
データベース「opensim」を確認します。
テーブルが自動的に作成されています。
mysql> use opensim;
Database changed
mysql> show tables;
+-------------------+
| Tables_in_opensim |
+-------------------+
| agents
| assets
| avatarappearance
| avatarattachments
| estate_groups
| estate_managers
| estate_map
| estate_settings
| estate_users
| estateban
| inventoryfolders
| inventoryitems
| land
| landaccesslist
| migrations
| primitems
| prims
| primshapes
| regionban
| regionsettings
| terrain
| userfriends
| users
+-------------------+
23 rows in set (0.00 sec)
Database changed
mysql> show tables;
+-------------------+
| Tables_in_opensim |
+-------------------+
| agents
| assets
| avatarappearance
| avatarattachments
| estate_groups
| estate_managers
| estate_map
| estate_settings
| estate_users
| estateban
| inventoryfolders
| inventoryitems
| land
| landaccesslist
| migrations
| primitems
| prims
| primshapes
| regionban
| regionsettings
| terrain
| userfriends
| users
+-------------------+
23 rows in set (0.00 sec)
テーブル「user」を確認します。
一番最初に作ったユーザアカウントが、SQLiteから、MySQLにコピーされています。
mysql> select username,lastname,passwordHash from users;
+----------+----------+----------------------------------+
| username | lastname | passwordHash
+----------+----------+----------------------------------+
| Master | Parvathi | 7e740d0406af6583543729a786bfd96a
+----------+----------+----------------------------------+
1 row in set (0.00 sec)
+----------+----------+----------------------------------+
| username | lastname | passwordHash
+----------+----------+----------------------------------+
| Master | Parvathi | 7e740d0406af6583543729a786bfd96a
+----------+----------+----------------------------------+
1 row in set (0.00 sec)
● つぎは、グリッドモードで
これでデータベースを外出しできたので、安心してもの作りができます。
OpenSimをアップグレードする時に、うっかりデータベースを上書きしてしまった〜
なんて、最悪ですから。
再掲:OpenSim構築手順 (Linux版&OSGrid)
OpenSimサーバ構築記録9(MacOSXコンパイル編)
OpenSimサーバ構築記録8 (手作りファイアウォール編)
OpenSimサーバ構築記録その7(暗号化しなくちゃ編)
OpenSimサーバ構築記録その6(ブレンダーで土地作り編)
OpenSimサーバ構築記録その5(外部Simサーバ接続編)
OpenSimサーバ構築記録9(MacOSXコンパイル編)
OpenSimサーバ構築記録8 (手作りファイアウォール編)
OpenSimサーバ構築記録その7(暗号化しなくちゃ編)
OpenSimサーバ構築記録その6(ブレンダーで土地作り編)
OpenSimサーバ構築記録その5(外部Simサーバ接続編)
Posted by ぱすてる at 18:25│Comments(1)
│OpenSim
この記事へのコメント
誰でも使えるOpenSimが出るのを待ちきれなくなりました。そこで こちらを参考にさせて頂いて0.6.8とmysqlでトライしてみたら、コマンドの意味も解りませんでしたが、なんとか箱庭に入ることが出来ました。 解りやすく手順を追って教えていただけたこちらのHPのお陰で壁を越えた気がします,あきらめないでよかったです。 ありがとうヽ(*^^*)ノ。
Posted by わんこ at 2010年05月21日 15:24