2012年05月26日
CentOS6でOpenSim MySQL編
前回のメガリージョン編に引き続き データベースを SQLite からMySQLに変更します
ただし、SQLiteでのデータが継承されません。
地形データも丸い初期島に^^;

バックアップが必要な場合は
バックアップしたいSIM(ここでは rika_island)に移り
change region rika_island
save oar rika_island として oar形式でバックアップします^^
MySQL移行後
change region rika_island
load oar rika_island で移行できると思います。
MySQLへの移行手順をメモします
ユーザーrootになります
$ su -
パスワード:
MySQLサーバーをyumでインストールします。
# yum -y install mysql-server
MySQLサーバーを起動します
# /etc/rc.d/init.d/mysqld start
自動起動の設定します。
# chkconfig mysqld on
自動起動設定の確認をします
# chkconfig --list mysqld
mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off
MySQL rootパスワードを設定します(例:パスワードhogehoge)
# mysql -u root
mysql> SET PASSWORD FOR root@localhost=password('hogehoge');
Query OK, 0 rows affected (0.00 sec)
いったん終了し、MySQL rootパスワードで起動
mysql> quit
# mysql -u root -p
Enter password:hogehoge
登録ユーザーを見る
mysql> select host,user,password from mysql.user;

ユーザー名のないものは削除する
mysql> DELETE FROM mysql.user WHERE user='';
ユーザーrootでパスワードの無いホストにルートパスワードを設定
mysql> grant all on *.* to root@127.0.0.1 identified by 'hogehoge';
mysql> grant all on *.* to root@pengin.centos.com identified by 'hogehoge';
変更内容を確認します
mysql> select host,user,password from mysql.user;

データテーブルを確認します
mysql> SHOW DATABASES;

データベースtestは不要なので削除
mysql> DROP DATABASE test;
OpenSimのデータベース作成(文字コードをutf8で設定)
ここでは
OpenSim用のデータベース名を opensim
ユーザー名をopensim_user
パスワードをhogehoge_opensim
として設定
データベース作成
mysql> create database opensim default character set utf8;
ユーザーとパスワード設定
mysql> grant all on opensim.* to opensim_user identified by 'hogehoge_opensim';
データテーブルを確認します
mysql> SHOW DATABASES;

MySQLデータベースの権限再読み込み
mysql> flush privileges;
終了します
mysql> quit
ユーザーに戻ります
# exit
logout
OpenSimのbin/config-includeに移動します
$ cd bin/config-include
StandaloneCommon.iniの設定で SQLiteからMySQLに設定変更します
$ vi StandaloneCommon.ini
Include-Storage = "config-include/storage/SQLiteStandalone.ini";
コメントアウトします。先頭に;を追加
;Include-Storage = "config-include/storage/SQLiteStandalone.ini";
;StorageProvider = "OpenSim.Data.MySQL.dll"
先頭のコメント ; をはずします。
StorageProvider = "OpenSim.Data.MySQL.dll"
;ConnectionString = "Data Source=localhost;Database=opensim;User ID=opensim;Password=***;Old Guids=true;"
先頭のコメント ; をはずします
MySQLで設定した データベース名、ユーザー名、パスワードを設定します
ConnectionString = "Data Source=localhost;Database=opensim;User ID=opensim_user;Password=hogehoge_opensim;Old Guids=true;"

保存します
binに戻り OpenSimを起動します。
途中で質問されます
・
New estate name [My Estate]: rika_sim ここでは rika_simとしました
・
・
Estate owner first name [Test]: rika ここでは rika
Estate owner last name [User]: kayama ここでは kayama
Password: ここではrika.kayamaのパスワード設定しました
Email []: 単にEnter
・
・
Region (root) #
これでMySQLへの移行ができました
MySQLで作成されたデータベースをのぞいてみます
# mysql -u root -p
Enter password:
データベースをopensimに切り替えます
mysql> use opensim;
テーブル内容を表示します
mysql> show tables;

ユーザー定義 UserAccountsのテーブル定義を確認します
mysql> desc UserAccounts;

登録されているアバタの名前を確認します
mysql> select FirstName,LastName from opensim.UserAccounts;

いろいろとどんな定義がなされているか調べるのも面白そうです^^
ただし、SQLiteでのデータが継承されません。
地形データも丸い初期島に^^;

バックアップが必要な場合は
バックアップしたいSIM(ここでは rika_island)に移り
change region rika_island
save oar rika_island として oar形式でバックアップします^^
MySQL移行後
change region rika_island
load oar rika_island で移行できると思います。
MySQLへの移行手順をメモします
ユーザーrootになります
$ su -
パスワード:
MySQLサーバーをyumでインストールします。
# yum -y install mysql-server
MySQLサーバーを起動します
# /etc/rc.d/init.d/mysqld start
自動起動の設定します。
# chkconfig mysqld on
自動起動設定の確認をします
# chkconfig --list mysqld
mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off
MySQL rootパスワードを設定します(例:パスワードhogehoge)
# mysql -u root
mysql> SET PASSWORD FOR root@localhost=password('hogehoge');
Query OK, 0 rows affected (0.00 sec)
いったん終了し、MySQL rootパスワードで起動
mysql> quit
# mysql -u root -p
Enter password:hogehoge
登録ユーザーを見る
mysql> select host,user,password from mysql.user;

ユーザー名のないものは削除する
mysql> DELETE FROM mysql.user WHERE user='';
ユーザーrootでパスワードの無いホストにルートパスワードを設定
mysql> grant all on *.* to root@127.0.0.1 identified by 'hogehoge';
mysql> grant all on *.* to root@pengin.centos.com identified by 'hogehoge';
変更内容を確認します
mysql> select host,user,password from mysql.user;

データテーブルを確認します
mysql> SHOW DATABASES;

データベースtestは不要なので削除
mysql> DROP DATABASE test;
OpenSimのデータベース作成(文字コードをutf8で設定)
ここでは
OpenSim用のデータベース名を opensim
ユーザー名をopensim_user
パスワードをhogehoge_opensim
として設定
データベース作成
mysql> create database opensim default character set utf8;
ユーザーとパスワード設定
mysql> grant all on opensim.* to opensim_user identified by 'hogehoge_opensim';
データテーブルを確認します
mysql> SHOW DATABASES;

MySQLデータベースの権限再読み込み
mysql> flush privileges;
終了します
mysql> quit
ユーザーに戻ります
# exit
logout
OpenSimのbin/config-includeに移動します
$ cd bin/config-include
StandaloneCommon.iniの設定で SQLiteからMySQLに設定変更します
$ vi StandaloneCommon.ini
Include-Storage = "config-include/storage/SQLiteStandalone.ini";
コメントアウトします。先頭に;を追加
;Include-Storage = "config-include/storage/SQLiteStandalone.ini";
;StorageProvider = "OpenSim.Data.MySQL.dll"
先頭のコメント ; をはずします。
StorageProvider = "OpenSim.Data.MySQL.dll"
;ConnectionString = "Data Source=localhost;Database=opensim;User ID=opensim;Password=***;Old Guids=true;"
先頭のコメント ; をはずします
MySQLで設定した データベース名、ユーザー名、パスワードを設定します
ConnectionString = "Data Source=localhost;Database=opensim;User ID=opensim_user;Password=hogehoge_opensim;Old Guids=true;"

保存します
binに戻り OpenSimを起動します。
途中で質問されます
・
New estate name [My Estate]: rika_sim ここでは rika_simとしました
・
・
Estate owner first name [Test]: rika ここでは rika
Estate owner last name [User]: kayama ここでは kayama
Password: ここではrika.kayamaのパスワード設定しました
Email []: 単にEnter
・
・
Region (root) #
これでMySQLへの移行ができました
MySQLで作成されたデータベースをのぞいてみます
# mysql -u root -p
Enter password:
データベースをopensimに切り替えます
mysql> use opensim;
テーブル内容を表示します
mysql> show tables;

ユーザー定義 UserAccountsのテーブル定義を確認します
mysql> desc UserAccounts;

登録されているアバタの名前を確認します
mysql> select FirstName,LastName from opensim.UserAccounts;

いろいろとどんな定義がなされているか調べるのも面白そうです^^
Posted by rikachann Aabye at 17:50│Comments(0)
│CentOS