manekineko倉金家ホームページ

趣味の部屋/LinuxMintサーバー化

データベースソフトの設定・調整

2022年11月20日 2022年11月23日更新


ソフトの設定および調整をツールソフトから先にやっていきます。
データベース(SQL)の確認や修正用に入れたソフトをまず試してみます。

phpmyadmin
今まで長い間使っており、特に問題ありません。
私の場合はほんとうに基本的な機能しか使いませんので、あえて言えばバージョンが上がるごとに機能が強化されてその分使いにくくなってきている気はします。

phpliteadmin
/usr/share/phpliteadmin にインストールされています。いちおうメニューに起動ボタンがあります。
で、試しに使ってみようとしましたが、のっけからよくわかりません。
初期パスワードすら説明されていません。

起動したらまず英語でデータベースがないのでつくれとかなんたらかんたら言っているようです。
すでにあるデータベースには画面からアクセスできずアクセスしたければphpliteadminの取扱いディレクトリにもってこなくてはならないようです。
日本語化もできるようですが、とにかくまともに動かすにはいろいろやらなくてはならないようです。

どっちにしろめんどそうだったりすぐににわからないソフトは、他にないならともかく、あまり使いたくないのであきらめます。
アンインストールしました。

sqlitebrowser
起動メニューから起動するとすぐにデータベースの新規作成あるいは既存のものを開いてデータを見たり作成したり書き換えたりする画面がとてもわかりやすいレイアウトで出現。
ファイル操作部分とSQLデータ操作部分が使いやすそうに統合されています。
表示はすべて英語ですが全く問題なく理解でき、使えそう。
SQLiteのツールとしてはphpliteadminよりこちらの方がよさそうです。

adminer
/usr/share/adminer にインストールされています。
これをそっくりadminerフォルダごとweb表示場所に置くかリンクすればいいです。
MySQL、MariaDB、PostgreSQL、SQLite、MS SQL、Oracle、その他いろんなSQLデータベースを取り扱えるとのことですので、使えるようにしておく価値はありそうです。

ただしWEBベースですので、SQLiteなどパスワードのないデータベースについてはセキュリティー上そのままでは動かせないようになっています。adminer設置者がadminer動作用のパスワードを入力するようにするか、あるいはアクセスできるIPアドレスを制限するなどの変更が必要です。

パスワード方式とIP方式両方をやってみます。
ただし Linux Mint(ubuntu)のレポジトリのadminerについての話で他のディストリビューションでは構成などがちがうかもしれません。

(1)まずトップに.htaccessを設置します。
/usr/share/adminer/.htaccess
Options -Indexes +FollowSymLinks
DirectoryIndex index.php

<RequireAny>
  Require all denied
  Require local
  Require ip 127. 192.168.
</RequireAny>

(2)やはりトップにパスワード方式の起動ファイル index.php を設置します。
/usr/share/adminer/index.php
<?php

function adminer_object() {

    /* SET HERE ! */ $PASSWORD = "PASSWORD";

    include_once "./plugins/plugin.php";
    include_once "./plugins/login-password-less.php";
    return new AdminerPlugin(array(
        // TODO: inline the result of password_hash() so that the password is not visible in source codes
        new AdminerLoginPasswordLess(password_hash($PASSWORD, PASSWORD_DEFAULT)),
    ));
}

include "./adminer.php";

(3)あるいはトップにIP制限方式の起動ファイル index.php を設置します。
/usr/share/adminer/index.php
<?php

function adminer_object() {

    /* SET HERE ! */ $AllowIPs = ["127.", "192.168."];

    include_once "./plugins/plugin.php";
    include_once "./plugins/login-ip.php";
    return new AdminerPlugin(array(
        new AdminerLoginIp($AllowIPs, NULL),
    ));
}

include "./adminer.php";

ローカルからのみの操作であれば、IP方式の方が汎用性もあり、パスワードを覚える必要も打ち込む必要もないのでお薦めです。
実質的には.htaccessでもIP制限はかけてありますが。

インストールで特に起動アイコン等が作られなかったので、メニューとデスクトップに作って追加しておいた。

というわけで、データベース用ソフトとしてphpMyAdmin、sqlitebrowser、adminerの3つが準備されました。
どれも特に問題なく動きそうなのでしばらく使ってみます。