2025年7月28日月曜日

VPS引っ越し - その4 ウェブアプリのデータベースの引越し

今回はデータベースの引っ越しです。
私はVPSでウェブアプリをいくつか運用していますが、
データの管理はRDBSのMySQLを使用しています。
ということでこれのデータ等の引越しを行います。

まずは旧VPSにログインして
# mysql -u root -p
mysql> SHOW DATABASES;
でデータベース名一覧を取得し、移すべきデータベース名を憶えておきます。
以下ではその対象データベースを"mydb"(1つだけ)として話を進めます。
mydbをバックアップするため以下を実行します。
# mysqldump --single-transaction -u root -p mydb > mydb.sql
作成したバックアップファイル"mydb.sql"は新VPSへコピーしておきます。

次に新VPSにログインし以下を実行してサーバ群をセットアップします。
# apt update
# apt install mysql-server
# apt install mysql-client
# apt install php-mysql
# /etc/init.d/apache2 reload
また以下を実行してmysqlを設定します。
# mysql -u root -p
mysql> set character_set_client=utf8;
mysql> set character_set_connection=utf8;
mysql> set character_set_database=utf8;
mysql> set character_set_results=utf8;
mysql> set character_set_server=utf8;
mysql> CREATE USER 'web'@'localhost' IDENTIFIED BY 'password';
さらに以下を実行して空のmydbデータベースの作成と設定をします。
mysql> CREATE DATABASE mydb;
mysql> GRANT all ON mydb.* TO 'web'@'localhost';
mysql> USE mybd;
mysql> set character_set_database=utf8;
mysql> show variables like "chara%";
mysql> exit
最後に以下を実行してmydbデータベースを復元します。
# mysql -u root -p mydb < mydb.sql
一応mydbデータベースが復元できたことを確認しておきます。
# mysql -u root -p
mysql> USE mybd;
mysql> SHOW TABLES;
ところでMySQLってメモリ食うので安いVPSだときついんですよね。
そういうところではPostgreSQLの方が軽いのですが、
今回は歴史的経緯もあってMySQLをそのまま使いました。
で、焼け石に水と思いながらも
設定ファイル"mysql.conf.d/mysqld.cnf"を以下のような感じにしてみました。
key_buffer_size         = 1M
max_allowed_packet	= 8M 
max_connections         = 16
table_open_cache        = 1000
でメモリ使用量はどうなったかというと、
変更前は
# free
               total        used        free      shared  buff/cache   available
Mem:          979684      741000       89024        1144      305968      238684
Swap:              0           0           0
MySQL停止中は # /etc/init.d/mysql stop # free total used free shared buff/cache available Mem: 979684 397920 458728 1136 279352 581764 Swap: 0 0 0 変更後は
# /etc/init.d/mysql start
# free
               total        used        free      shared  buff/cache   available
Mem:          979684      728472      105128        1144      302520      251212
Swap:              0           0           0
ということで、やらないよりはまし、ですね。
時間があればPosgreSQLに全面移行します。
さて、いつになることか。

0 件のコメント:

コメントを投稿