GNU/Linux >> Linux の 問題 >  >> Linux

CentOSにMariaDBサーバーをインストールする

CentOS 7のリリースにより、MariaDBはデフォルトのデータベースシステムとしてMySQLに取って代わりました。 MariaDBは、MySQLの最初の開発者によって作成され、ライブラリバイナリと同等であり、MySQLAPIおよびコマンドと完全に一致するMySQLの拡張されたドロップイン置換です。

この記事では、CentOSLinuxへのMariaDBデータベースサーバーの基本的なインストールについて説明します。 PHPの拡張機能など、アプリケーションでMariaDBを使用できるようにするには、他のパッケージをインストールする必要がある場合があります。詳細については、アプリケーションのドキュメントを確認してください。

データベースサーバーをインストールします

このセクションの手順に従って、コアデータベースサーバーをインストールします。

MariaDBをインストール

コマンドプロンプトで次のコマンドを実行して、CentOSパッケージマネージャー(yum)からMariaDBサーバーをインストールします。

sudo yum install mariadb-server
リモートアクセスを許可する

次のコマンドを実行して、リモートアクセスを許可します。

firewall-cmd --zone=public --add-service=mysql --permanent
ルートパスワードを設定する

MariaDBデータベースサーバーをインストールしたばかりなので、rootaccountにはパスワードが設定されていません。次のコマンドを使用して、rootパスワードおよびその他の重要な設定を設定します。

/usr/bin/mysql_secure_installation
データベースサービスを開始および停止します

インストールが完了したら、このセクションのコマンドを使用してデータベースサービスを開始できます。システムがすでに起動している場合は、サービスがすでに実行されていることを通知するメッセージが表示されます。

次のコマンドを使用してMariaDBを起動します:

sudo systemctl start mariadb.service

次のコマンドを使用して、MariaDBを停止します。

sudo systemctl stop mariadb.service
再起動時に起動

再起動後にデータベースサーバーを確実に起動するには、 chkconfigを有効にする必要があります 効用。これを行うには、次のコマンドを使用します。

sudo systemctl enable mariadb.service

MariaDBシェルを開始します

MariaDBサーバーを操作する方法は複数ありますが、この記事では、最も基本的で互換性のあるアプローチである mariadbに焦点を当てています。 シェル。

  1. コマンドプロンプトで、次のコマンドを実行してシェルを起動し、rootユーザーとして入力します。

     /usr/bin/mysql -u root -p
    
  2. パスワードの入力を求められたら、インストール時に設定したパスワードを入力します。パスワードを設定していない場合は、 Enterを押します。 パスワードなしを送信します。

    次のシェルプロンプトが表示されます。

    MariaDB [(none)]>
    
ユーザーを表示

MariaDBとMySQLは、ユーザー情報を独自のデータベースに保存します。データベースの名前はmysqlです。 。そのデータベース内のユーザー情報は、 userという名前のデータセットであるテーブルにあります。 。 MySQLユーザーテーブルに設定されているユーザーを確認するには、次のコマンドを実行します。

SELECT User, Host, Password FROM mysql.user;

次のリストは、そのコマンドの部分を説明しています。

  • 選択 データを要求していることをMySQLに通知します。
  • ユーザー、ホスト、パスワード 調べたいフィールドをMySQLに指示します。フィールドはテーブル内のデータのカテゴリです。この場合、ユーザー名、ユーザー名に関連付けられているホスト、および暗号化されたパスワードエントリを探しています。
  • FROM mysql.user mysqlからデータを取得するようにMySQLに指示します データベースとユーザー テーブル。
  • セミコロン(;) コマンドを終了します。
ユーザーホスト

次の例は、前のクエリの出力です。

SELECT User, Host, Password FROM mysql.user;
+------------------+-----------+-------------------------------------------+
| User             | Host      | Password                                  |
+------------------+-----------+-------------------------------------------+
| root             | localhost | *756FEC25AC0E1823C9838EE1A9A6730A20ACDA21 |
| root             | 127.0.0.1 | *756FEC25AC0E1823C9838EE1A9A6730A20ACDA21 |
| root             | ::1       | *756FEC25AC0E1823C9838EE1A9A6730A20ACDA21 |
+------------------+-----------+-------------------------------------------+

ユーザーは、ホスト、特にユーザーが接続するホストに関連付けられています。この例のrootユーザーは、 localhostに対して定義されています。 、 localhostのIPアドレスの場合 、およびサーバーのホスト名。通常、接続元のホストのみにユーザーを設定する必要があります。

MariaDBサーバーと同じコンピューターでアプリケーションを実行している場合、アプリケーションがデフォルトで接続するホストは localhostです。 。作成する新しいユーザーには、 localhostが必要です。 彼らのホストで フィールド。

アプリケーションがリモートで接続する場合は、ホスト MariaDBが検索するエントリは、リモートコンピューター(クライアントの送信元のコンピューター)のIPアドレスまたはDNSホスト名です。

データベースを作成する

データベースサーバーには違いがあります およびデータベース とはいえ、これらの用語はしばしば同じ意味で使用されます。 MariaDBはデータベースサーバーです。つまり、データベースを追跡し、データベースへのアクセスを制御します。データベースにはデータが格納されており、アプリケーションがMariaDBと対話するときにアクセスしようとしているのはデータベースです。

セットアッププロセスの一部としてデータベースを作成するアプリケーションもありますが、データベースを作成してアプリケーションに通知する必要があるアプリケーションもあります。

データベースを作成するには、 mariadbにログインします シェルを作成して次のコマンドを実行し、 demodbを置き換えます 作成するデータベースの名前:

CREATE DATABASE demodb;

データベースが作成されます。クエリを実行してすべてのデータベースを一覧表示することにより、作成を確認できます。次の例は、クエリと出力例を示しています。

SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| demodb             |
| mysql              |
+--------------------+
3 rows in set (0.00 sec)
ユーザーと特権を管理する

このセクションの手順を使用して、データベースのユーザーを追加し、特権を付与および取り消します。

ユーザーと権限を追加する

アプリケーションがrootユーザーを使用してデータベースに接続する場合、通常、必要以上の特権があります。アプリケーションが新しいデータベースに接続するために使用できる新しいユーザーを作成できます。次の例では、 demouserという名前のユーザー 作成されます。

新しいユーザーを作成するには、 mariadbで次のコマンドを実行します シェル:

CREATE USER 'demouser'@'localhost' IDENTIFIED BY 'demopassword';

SELECTクエリを再度実行すると、ユーザーが作成されたことを確認できます。

SELECT User, Host, Password FROM mysql.user;
+----------+-----------+------------------------------------------+
| User     | Host      | Password                                 |
+----------+-----------+------------------------------------------+
| root     | localhost | 2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19 |
| root     | demohost  | 2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19 |
| root     | 127.0.0.1 | 2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19 |
| demouser | localhost | 0756A562377EDF6ED3AC45A00B356AAE6D3C6BB6 |
+----------+-----------+------------------------------------------+
データベースユーザー権限を付与する

新しいユーザーを作成した直後は、特権はありません。ユーザーはMariaDBへのログインに使用できますが、データベースの変更には使用できません。

  1. 次のコマンドを実行して、新しいデータベースに対する完全な権限をユーザーに付与します。

    GRANT ALL PRIVILEGES ON demodb.* to demouser@localhost;
    
  2. 権限をフラッシュして、変更を有効にします。

    FLUSH PRIVILEGES;
    
  3. 特権が設定されていることを確認するには、次のコマンドを実行します。

    SHOW GRANTS FOR 'demouser'@'localhost';
    

    サーバーを再構築する場合、MariaDBはそのユーザーの権限を再現するために必要なコマンドを返します。 USAGE on\*。\* これは、ユーザーがデフォルトで何に対しても特権を取得しないことを意味します。そのコマンドは、新しいデータベースに対して実行した許可である2番目のコマンドによって上書きされます。

     +-----------------------------------------------------------------------------------------------------------------+
     | Grants for demouser@localhost                                                                                   |
     +-----------------------------------------------------------------------------------------------------------------+
     | GRANT USAGE ON *.* TO 'demouser'@'localhost' IDENTIFIED BY PASSWORD '*0756A562377EDF6ED3AC45A00B356AAE6D3C6BB6' |
     | GRANT ALL PRIVILEGES ON `demodb`.* TO 'demouser'@'localhost'                                                    |
     +-----------------------------------------------------------------------------------------------------------------+
     2 rows in set (0.00 sec)
    
特権を取り消す

ユーザーから特権を取り消す(削除する)必要がある場合があります。たとえば、 ALLを付与したとします。 次のコマンドに示すように、「demouser」@「localhost」に対する権限が、他のすべてのデータベースにも誤って付与されました。

+-----------------------------------------------------------------------------------------------------------------+
| Grants for demouser@localhost                                                                                   |
+-----------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'demouser'@'localhost' IDENTIFIED BY PASSWORD '*0756A562377EDF6ED3AC45A00B356AAE6D3C6BB6' |
| GRANT ALL PRIVILEGES ON *.* TO 'demouser'@'localhost'                                                           |
+-----------------------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)

間違いを修正するには、 REVOKEを使用できます ステートメントの後にGRANTが続きます 正しい特権を適用するためのステートメント。

REVOKE ALL ON *.* FROM demouser@localhost;
GRANT ALL PRIVILEGES ON demodb.* to demouser@localhost;
SHOW GRANTS FOR 'demouser'@'localhost';

+-----------------------------------------------------------------------------------------------------------------+
| Grants for demouser@localhost                                                                                   |
+-----------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'demouser'@'localhost' IDENTIFIED BY PASSWORD '*0756A562377EDF6ED3AC45A00B356AAE6D3C6BB6' |
| GRANT ALL PRIVILEGES ON 'demodb'TO 'demouser'@'localhost'                                                           |
+-----------------------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)

これで、ユーザーは適切な権限を持ち、データベースサーバーは少し安全になります(*。* でALLのような権限を付与します) 非常に悪い習慣と見なされます)。 ALL を使用するのではなく、本当に必要な特権のみを付与するために、可能な特権の選択に関する公式のMariaDBドキュメントも読む必要があります。 。

概要

データベースとユーザーを作成するだけであれば、これで完了です。この記事で取り上げる概念は、詳細を学ぶための確実な出発点となるはずです。


Linux
  1. CentOS6.4にMariaDBをインストールします

  2. CentOS7にSentoraをインストールします

  3. CentOS7にBigTreeをインストールする

  1. CentOSにMySQLServer5.6をインストールします

  2. CentOS6にMariaDB10.0をインストールします

  3. CentOSでMariaDBサーバーを構成する

  1. CentOS 7サーバーにMariaDBをインストールする-ステップバイステップのプロセス?

  2. 新しいCentos8サーバーのインストールで行うこと

  3. CentOSにAdminerをインストールする