UbuntuへのMariaDBインストール手順と設定

UbuntuMariaDBをインストールして利用する手順です。
コマンドなど、基本的にはMySQLと同じものが利用できます。

バージョン

  • Ubuntu(WSL) - 20.04.2 LTS
  • MySQL - 10.3.30(サーバ) / Ver 15.1 Distrib 10.3.30(クライアント)

MariaDBのインストール

sudo apt update
sudo apt install mariadb-server

サービスの開始と停止

サービスの開始

sudo service mysql start

サービスの停止

sudo service mysql stop

設定

sudo mysql_secure_installation

この時、サービスを開始してから実行しないと、次のようなエラーが発生します。

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

各確認項目は次のように進める。

Enter current password for root (enter for none):

エンター

rootのパスワードを設定するか? - n

Set root password? [Y/n]

デフォルトの匿名ユーザを削除するか? - Y

Remove anonymous users? [Y/n]

rootのリモートログインをブロックするか? - Y

Disallow root login remotely? [Y/n]

テストデータベースを削除するか? - Y

Remove test database and access to it? [Y/n]

今すぐユーザー権限テーブルを再読み込みするか? - Y

Reload privilege tables now? [Y/n]

MariaDBに接続する

次のいづれかのコマンドで接続可能です。(rootユーザ、パスワード無しの場合)

$ sudo mariadb -u root -p
$ sudo mariadb
$ sudo mysql -u root -p
$ sudo mysql

ユーザの追加

ユーザを確認する

MariaDB [(none)]> select user,host from mysql.user;
+------+-----------+
| user | host      |
+------+-----------+
| root | localhost |
+------+-----------+

ユーザを追加する

MariaDB [(none)]> CREATE USER '<ユーザー>'@<ホスト> IDENTIFIED BY '<パスワード>';

ユーザの権限を変更する

MariaDB [(none)]> GRANT ALL PRIVILEGES ON <データベース>.<テーブル> TO '<ユーザー>'@<ホスト>;
MariaDB [(none)]> FLUSH PRIVILEGES;

タイムゾーンを設定する

MariaDBに接続した状態で、次のコマンドを実行すると、現在のタイムゾーンを確認できます。

MariaDB [(none)]> show variables like '%time_zone%';
+------------------+--------+
| Variable_name    | Value  |
+------------------+--------+
| system_time_zone | JST    |
| time_zone        | SYSTEM |
+------------------+--------+

タイムゾーンを変更する

  1. 次のコマンドを実行し、タイムゾーンテーブルをロードする
    $ /usr/bin/mysql_tzinfo_to_sql /usr/share/zoneinfo > ~/timezone.sql
    $ sudo mysql -u root -p -Dmysql < ~/timezone.sql
    
  2. /etc/mysql/mariadb.conf.d/50-server.cnf[mysqld]に次の行を追加する
    default-time-zone = 'Asia/Tokyo'
    
    ※viエディタの場合、sudoで実行すること
  3. MariaDBを再起動する
  4. MariaDBに接続し、タイムゾーンが変更されたことを確認する
    MariaDB [(none)]> show variables like '%time_zone%';
    +------------------+------------+
    | Variable_name    | Value      |
    +------------------+------------+
    | system_time_zone | JST        |
    | time_zone        | Asia/Tokyo |
    +------------------+------------+
    

文字コードの確認

show variables like "chara%";

文字コードと照合順序を確認する

SELECT SCHEMA_NAME,DEFAULT_CHARACTER_SET_NAME,DEFAULT_COLLATION_NAME FROM INFORMATION_SCHEMA.SCHEMATA;
+--------------------+----------------------------+------------------------+
| SCHEMA_NAME        | DEFAULT_CHARACTER_SET_NAME | DEFAULT_COLLATION_NAME |
+--------------------+----------------------------+------------------------+
| information_schema | utf8                       | utf8_general_ci        |
| mysql              | utf8mb4                    | utf8mb4_general_ci     |
| performance_schema | utf8                       | utf8_general_ci        |
+--------------------+----------------------------+------------------------+

外部接続を許可する

  1. /etc/mysql/mariadb.conf.d/50-server.cnfの次の行をコメントアウトする
    • 変更前
      bind-address            = 127.0.0.1
      
    • 変更後
      #bind-address            = 127.0.0.1
      
  2. MariaDBを再起動する
このエントリーをはてなブックマークに追加
にほんブログ村 IT技術ブログへ

コメント

メールアドレスが公開されることはありません。 が付いている欄は必須項目です