MariaDBは無料でオープンソースであり、世界で最も人気のあるデータベースサーバーの1つです。これは、非常に人気のあるMySQLデータベース管理システムのコミュニティ開発フォークです。 MariaDBはPHPのサポートを提供し、標準的で一般的なクエリ言語を使用します。 MariaDBには、データベースのパフォーマンスを向上させるために使用できるさまざまなストレージエンジンといくつかの最適化が付属しています。
このチュートリアルでは、Ubuntu18.04上のMariaDBでデータベースを管理する方法を紹介します。
前提条件
- Atlantic.Netクラウドプラットフォーム上の新しいUbuntu18.04VPS。
- 両方のサーバーで構成されたルートパスワード。
ステップ1–Atlantic.Netクラウドサーバーを作成する
まず、Atlantic.Netクラウドサーバーにログインします。 2GB以上のRAMを搭載したオペレーティングシステムとしてUbuntu18.04を選択して、新しいサーバーを作成します。 SSH経由でクラウドサーバーに接続し、ページの上部で強調表示されているクレデンシャルを使用してログインします。
Ubuntu 18.04サーバーにログインしたら、次のコマンドを実行して、ベースシステムを最新の利用可能なパッケージで更新します。
apt-get update -y apt-get upgrade -y
ステップ2–MariaDBをインストールする
まず、次のコマンドを使用して、MariaDBGPGキーをダウンロードしてシステムに追加します。
apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
次に、次のコマンドを使用してMariaDBリポジトリを追加します。
add-apt-repository 'deb [arch=amd64,arm64,ppc64el] http://ftp.utexas.edu/mariadb/repo/10.3/ubuntu bionic main'
次に、リポジトリを更新し、次のコマンドを使用してMariaDBをインストールします。
apt-get update -y apt-get install mariadb-server -y
MariaDBをインストールした後、次のコマンドでMariaDBのステータスを確認します。
systemctl status mariadb
次の出力が表示されます。
● mariadb.service - MariaDB 10.3.19 database server Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled) Drop-In: /etc/systemd/system/mariadb.service.d └─migrated-from-my.cnf-settings.conf Active: active (running) since Wed 2019-11-06 04:25:01 UTC; 24s ago Docs: man:mysqld(8) https://mariadb.com/kb/en/library/systemd/ Main PID: 4538 (mysqld) Status: "Taking your SQL requests now..." Tasks: 32 (limit: 1114) CGroup: /system.slice/mariadb.service └─4538 /usr/sbin/mysqld Nov 06 04:25:03 ubuntu1804 /etc/mysql/debian-start[4584]: Phase 6/7: Checking and upgrading tables Nov 06 04:25:03 ubuntu1804 /etc/mysql/debian-start[4584]: Running 'mysqlcheck' with connection arguments: --port='3306' --socket='/var/run/mysq Nov 06 04:25:03 ubuntu1804 /etc/mysql/debian-start[4584]: # Connecting to localhost... Nov 06 04:25:03 ubuntu1804 /etc/mysql/debian-start[4584]: # Disconnecting from localhost... Nov 06 04:25:03 ubuntu1804 /etc/mysql/debian-start[4584]: Processing databases Nov 06 04:25:03 ubuntu1804 /etc/mysql/debian-start[4584]: information_schema Nov 06 04:25:03 ubuntu1804 /etc/mysql/debian-start[4584]: performance_schema
ステップ3–新しいデータベースを作成する
新しいデータベースを作成するには、最初に次のコマンドを使用してMariaDBシェルにログインします。
mysql -u root -p
プロンプトが表示されたらrootパスワードを入力し、次のコマンドでデータベースを作成します。
CREATE DATABASE db1;
新しいデータベースを作成した後、次のコマンドを使用してすべてのデータベースを一覧表示できます。
SHOW DATABASES;
次の出力が表示されます。
+--------------------+ | Database | +--------------------+ | db1 | | information_schema | | mysql | | performance_schema | +--------------------+ 4 rows in set (0.002 sec)
ステップ4–新しいユーザーアカウントを作成する
次のコマンドを実行して、新しいMariaDBユーザーアカウントを作成できます。
CREATE USER 'dbuser'@'localhost' IDENTIFIED BY 'yourpassword';
この行では、変数は次のように定義されています。
dbuser :MariaDBユーザーの名前。
ローカルホスト :このオプションは、ユーザーがローカルホストからのみMariaDBサーバーに接続できることを指定します。
あなたのパスワード :MariaDBユーザーのパスワード。
MariaDBユーザーアカウントのパスワードを変更する場合は、次のコマンドを実行します。
ALTER USER 'dbuser'@'localhost' IDENTIFIED BY 'yournewpassword';
すべてのMariaDBユーザーアカウントを一覧表示するには、次のコマンドを実行します。
SELECT user, host FROM mysql.user;
次の出力が得られるはずです:
+------------------+-----------+ | user | host | +------------------+-----------+ | root | 127.0.0.1 | | root | ::1 | | dbuser | localhost | | debian-sys-maint | localhost | | root | localhost | +------------------+-----------+ 5 rows in set (0.003 sec)
ステップ5–ユーザーアカウントに権限を付与する
MariaDBユーザーアカウントに複数の種類の権限を付与できます。
特定のデータベース(db1)に対するすべての特権をユーザー(dbuser)に付与するには、次のコマンドを実行します。
GRANT ALL PRIVILEGES ON db1.* TO 'dbuser'@'localhost';
すべてのデータベースに対するすべての特権をユーザー(dbuser)に付与するには、次のコマンドを実行します。
GRANT ALL PRIVILEGES ON *.* TO 'dbuser'@'localhost';
特定のデータベース(db1)に対する特定の特権のみをユーザー(dbuser)に付与するには、次のコマンドを実行します。
GRANT SELECT, INSERT, DELETE ON db1.* TO [email protected]'localhost';
次のコマンドを使用して、特定のユーザーアカウントに付与されているすべての権限を確認できます。
SHOW GRANTS FOR 'dbuser'@'localhost';
次の出力が表示されます。
+------------------------------------------------------------------------------------------------------------------------+ | Grants for [email protected] | +------------------------------------------------------------------------------------------------------------------------+ | GRANT ALL PRIVILEGES ON *.* TO 'dbuser'@'localhost' IDENTIFIED BY PASSWORD '*7F99F4477B835ED95816BC01E9823771AE2A3F1C' | | GRANT ALL PRIVILEGES ON `db1`.* TO 'dbuser'@'localhost' | +------------------------------------------------------------------------------------------------------------------------+ 2 rows in set (0.000 sec)
ステップ6–データベースとユーザーの削除
次のコマンドでデータベースを削除できます:
DROP DATABASE db1;
ユーザーアカウントを削除するには、次のコマンドを実行します。
DROP USER 'dbuser'@'localhost';
ステップ7–MariaDBルートパスワードをリセットする
MariaDBのrootパスワードを忘れた場合は、以下の手順に従って簡単に回復できます。
まず、次のコマンドを使用して、実行中のMariaDBサービスを停止します。
systemctl stop mariadb
次に、–skip-grant-tablesオプションを使用してMariaDBサービスを開始する必要があります。これにより、パスワードなしでデータベースサーバーに接続できるようになります:
次のコマンドを実行すると、付与テーブルをロードせずにMariaDBサービスを開始できます。
mysqld_safe --skip-grant-tables &
これで、以下に示すように、パスワードなしでrootユーザーとしてMariaDBサーバーに接続できます。
mysql -u root
ログインに成功したら、次のコマンドを実行してルートパスワードをリセットします。
ALTER USER 'root'@'localhost' IDENTIFIED BY 'your-new-password'; FLUSH PRIVILEGES;
上記のコマンドが機能しない場合は、次のコマンドを実行します。
UPDATE mysql.user SET authentication_string = PASSWORD('your-new-password') WHERE User = 'root' AND Host = 'localhost'; FLUSH PRIVILEGES;
次に、MariaDBサービスを停止し、次のコマンドを使用して通常どおりに開始します。
mysqladmin -u root -p shutdown
MariaDBサービスを停止するように求められたら、rootパスワードを入力します。
次に、次のコマンドを使用して、MariaDBサービスを通常どおりに開始します。
systemctl start mariadb
結論
上記のチュートリアルでは、MariaDBでデータベースとユーザーアカウントを作成および管理する方法を学びました。また、MariaDBのrootパスワードをリセットする方法も学びました。詳細については、MariaDBDocのMariaDB公式ドキュメントをご覧ください。