【構築環境】LinuxにMySQLをインストールする

目次

一つ、環境

2、インストール手順

1. パッケージマネージャーを使用して MySQL をインストールする

2. MySQL セキュリティ オプションを構成する

3. パスワードで認証するように root ユーザーを設定します (オプション)

第三に、知識を広げる

1. MySQL パスワード ポリシーを変更するにはどうすればよいですか?

2. MySQL データベースに接続するためのテスト コードを実装します。


一つ環境

  • VMware® Workstation 16 Pro (バージョン: 16.1.2 ビルド-17966106)
  • ubuntu-22.04.2-デスクトップ-amd64

2 つインストール手順

1. パッケージマネージャーを使用して MySQL をインストールする

  • Ubuntu/Debian システムの場合、apt-get コマンドを使用してインストールします。
    • sudo apt-get アップデート
    • sudo apt-get install mysql-server
  • CentOS/RHEL システムの場合は、yum コマンドを使用してインストールします。
    • sudo yum アップデート
    • sudo yum install mysql-server
  • インストールが完了すると、MySQL サービスが自動的に開始されます。次のコマンドを使用して、MySQL サービスのステータスを確認します。
    • sudo systemctlステータスmysql
  • MySQL サービスが自動的に開始しない場合は、MySQL サービスを手動で開始できます。
    • Ubuntu/Debian システムの場合は、次のコマンドを使用します。
      • sudoサービスmysqlの開始
    • CentOS/RHEL システムの場合は、次のコマンドを使用します。
      • sudo systemctl mysqlを開始
  • 次のコマンドを使用して、MySQL サービスが実行されているかどうかを確認できます。
    • sudo systemctl is-active mysql
  • MySQL サービスを停止するコマンドは次のとおりです。
    • sudo systemctl mysqlを停止します

2. MySQL セキュリティ オプションを構成する

  • MySQL 5.7 以降の場合は、次のコマンドを実行して初期設定を行います (このコマンドでは、MySQL root ユーザーのパスワードとその他のセキュリティ オプションを設定するように求められます)。
    • sudo mysql_secure_installation
  • 次に、パスワード検証コンポーネントを構成するかどうかを尋ねるプロンプトが表示され、「y」と入力します。
  • 次に、パスワードの設定を選択する強度が表示されるので、0を入力します
  • 匿名ユーザーを削除するかどうかを尋ねられ、「y」を入力します (前の手順でパスワードの強度を選択した後、設定するパスワードを入力するプロセスがありますが、直接スキップします。理由については次のセクションを参照してください)
  • リモート ログインに対して root ユーザーを無効にするかどうかを尋ねる場合は、「y」と入力します
  • テスト データベースを削除してアクセスするかどうかを尋ねる場合は、「y」と入力します
  • 権限テーブルを再ロードするかどうかを尋ねるということは、これまでに行った設定がすぐに有効になることを意味します。「y」を入力してください
  • 最後に「Allned!」と表示され、設定は完了です。
  • インストールが完了したら、次のコマンドで MySQL サーバーにログインできます (このとき、認証は auth_socket プラグインによって実行されます)。
    • sudomysql

3. パスワードで認証するように root ユーザーを設定します (オプション)

  • MySQL のセキュリティ オプションを構成する場合、パスワードの強度を設定することを選択した後、パスワードを入力する手順は直接スキップされ、赤枠内の内容が次のように表示されます。
  • これは、MySQL ではデフォルトで、root ユーザーがパスワードの代わりに auth_socket プラグインを使用して認証されるためです。auth_socket プラグインは、Unix ソケット ファイルを介してユーザーの資格情報を認証します。したがって、認証に auth_socket プラグインを使用する場合は、root ユーザーのパスワードを設定する必要はありません。

root ユーザーのパスワードを使用して認証する場合は、次の手順に従います。

  • root ユーザーとして MySQL にログインします (この時点では auth_socket プラグインによる認証)。
    • sudomysql
  • ログイン後、MySQL システム データベースに切り替えます。
    • mysqlを使用します。
  • mysql_native_password プラグインを使用するように root ユーザーの認証方法を更新します: (your_password を root ユーザーのパスワードに置き換えます。長さは 8 文字以上である必要があります)
    • ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_password';
  • 変更を有効にするには、権限テーブルを更新します。
    • フラッシュ特権;
  • これらの手順を完了すると、root ユーザーは auth_socket プラグインではなくパスワードで認証できるようになります。
  • 最後に、次のコマンドを使用して、前に設定した MySQL root ユーザーのパスワードを入力して、MySQL サーバーにログインします。
    • mysql -u root -p

第三に知識を広げる

1. MySQL パスワード ポリシーを変更するにはどうすればよいですか?

  • MySQL ログイン パスワードを設定すると、次のエラー メッセージが表示されます。
  • このエラーは、パスワードのセキュリティを確保するために MySQL のパスワード ポリシーがデフォルトで有効になっているために発生します。パスワード ポリシーによれば、パスワードは受け入れられる前に特定の要件を満たす必要があり、要件は次の赤枠のとおりです。
  • ただし、MySQL では、パスワード ポリシー変数を変更することでパスワード ポリシー要件を調整できます。具体的には、次の 2 つの関連変数を変更できます。
    • validate_password.policy:この変数はパスワード ポリシー要件を定義します。その値は、次のポリシーの 1 つ以上を組み合わせたものになります。
      • LOW:パスワードは長さを満たす必要があるだけです。
      • 中:パスワードには少なくとも数字、文字、特殊文字が含まれている必要があります。
      • 強力:パスワードには少なくとも数字、文字、特殊文字、その他の文字が含まれている必要があります。
    • validate_password.length:この変数はパスワードの最小長要件を定義します。デフォルトは 8 で、必要に応じて調整できます。

次の手順に従って、MySQL でパスワード ポリシーを調整できます。

  • MySQL に root としてログインします。
    • sudomysql
  • 次のコマンドを実行して、パスワード ポリシーを変更します: (パスワード ポリシーを LOW に設定し、パスワードの最小長を 4 に設定します)
    • SET GLOBAL validate_password.policy='LOW';
    • SET GLOBAL validate_password.length=4;
  • 変更を有効にするには、権限テーブルを更新します。
    • フラッシュ特権;
  • MySQL コマンドライン インターフェイスを終了します。
    • やめる;

2. MySQL データベースに接続するためのテスト コードを実装します。

#include <mysql/mysql.h>
#include <stdio.h>

int main() {
    MYSQL *conn;
    MYSQL_RES *res;
    MYSQL_ROW row;

    char *server = "localhost";
    char *user = "username";
    char *password = "password";
    char *database = "database_name";

    conn = mysql_init(NULL);

    // 连接数据库
    if (!mysql_real_connect(conn, server, user, password, database, 0, NULL, 0)) {
        fprintf(stderr, "%s\n", mysql_error(conn));
        mysql_close(conn);
        return 1;
    }

    // 执行SQL查询
    if (mysql_query(conn, "SELECT * FROM table_name")) {
        fprintf(stderr, "%s\n", mysql_error(conn));
        return 1;
    }

    res = mysql_use_result(conn);

    // 处理查询结果
    while ((row = mysql_fetch_row(res)) != NULL) {
        for(int i = 0; i < mysql_num_fields(res); i++) {
            printf("%s ", row[i] ? row[i] : "NULL");
        }
        printf("\n");
    }

    // 释放结果集和关闭连接
    mysql_free_result(res);
    mysql_close(conn);

    return 0;
}
  • ライブラリがインストールされていることを確認してください libmysqlclient-dev 。インストールされていない場合は、次のコマンドを使用してインストールできます。
    • sudo apt-get インストール libmysqlclient-dev
  • コンパイルコマンドでは、MySQL C API ライブラリをリンクする必要があります。次のコマンドでコンパイルできます。
    • gcc -o my_program main.c -lmysqlclient
  • それでも問題が解決しない場合は、コンパイラが MySQL ライブラリ ファイルへのパスを正しく検出できることを確認してください。MySQL ライブラリ ファイルがデフォルトのパスにない場合は、 -L フラグを使用してライブラリ ファイルのパスを指定する必要がある場合があります。

おすすめ

転載: blog.csdn.net/weixin_43729127/article/details/132251704