投稿

ラベル(MariaDB)が付いた投稿を表示しています

OpenWrt で MariaDB を使えるようにする

イメージ
WordPress をインストールする ために、MySQL 互換で MySQL よりは軽量の(とはいってもそれなりに ROM 容量は食うが)MariaDB を使えるようにする。 前提状況:USB フラッシュドライブ データ領域として USB フラッシュの外部ドライブを用意(👉 OpenWrt での USB フラッシュドライブ )し、/mnt/data にマウントしていることを前提としている。 アプリケーション自体(MariaDB)のインストール opkg install mariadb-server 設定は /etc/mysql にある my.cnf はサーバー・クライアントに共通のグローバル設定用 conf.d/50-server.cnf はサーバー専用のグローバル設定 conf.d/60-galera.cnf は Galera Cluster 用のグローバル設定(Galera Cluster を使わない限り無関係) ユーザー別のローカル設定用は ~/.my.cnf を作成する ということなので、基本的に /etc/mysql/conf.d/50-server.cnf を編集して設定を調整することになる。 MariaDB の設定 デフォルトの /etc/mysql/conf.d/50-server.cnf(抜粋) # # * Basic Settings # user = mariadb pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock port = 3306 basedir = /usr # Don't put this on flash memory # Figure out where you are going to put the databases and run # mysql_install_db --force datadir = /mnt/data/mysql # tmpdir should also not go on flash memory tmpdir = /tmp lc-messages-dir = /usr/share/mariadb skip-extern

MySQL データベースのバックアップ

表のエクスポート MySQL で表を丸ごとファイルにエクスポートする場合は、SELECT * FROM table を応用した INTO OUTFILE file による指定が基本となる: SELECT * INTO OUTFILE '/mnt/data/tmp/sampletable.tsv' FROM Sample_Table; ファイル形式は TSV(TAB 区切りでエスケープ方式が TAB 区切り特有のルールとなっている。CSV よりも遥かにスマートなフォーマット) ファイルは上書き不可なので、既存の同名ファイルが存在してはならない。 参考: MySQL 8.0 リファレンス (出力先ファイル名や、表名などは一例) エクスポートした表のインポート 反対にエクスポートした表をデータベースにインポートして書き戻す場合は次の命令が対応する: LOAD DATA LOCAL INFILE '/mnt/data/tmp/sampletable.tsv' INTO TABLE Sample_Table; エクスポートしたファイルを編集してデータエントリーを付け加えてインポートし直すと、元から存在したエントリーについては warning となり skip されるだけなので、気にせずにエントリーの追加用途に利用できる。 また、一部エントリーを元のデータに追加するのではなく、元のデータを修正して上書き更新したい場合であれば、TRUNCATE 命令を使って一旦消去してから全体丸ごと LOAD し直せばよい: TRUNCATE TABLE Sample_Table; LOAD DATA LOCAL INFILE '/mnt/data/tmp/sampletable.tsv' INTO TABLE Sample_Table; 参考:SHOW WARNINGS LOAD の結果、追加したデータに何らかの不備があって WARNING が発生した場合は、直後に SHOW WARNINGS すれば WARNING 内容を確認することができる。 SHOW WARNINGS; データベースのバックアップ 表の定義を含めたデータベースのバックアップは mysqldump コマンドを使う。こ