すべてのプロダクト
Search
ドキュメントセンター

Elastic Compute Service:LinuxインスタンスへのMySQLのデプロイ

最終更新日:Apr 18, 2024

MySQLはオープンソースのリレーショナルデータベース管理システム (RDBMS) です。 MySQLデータベースシステムは、データベース管理にSQLを使用します。 MySQLは、webアプリケーション開発、エンタープライズアプリケーション開発、データ分析とレポート、ソフトウェア開発とテストなどのシナリオでのデータストレージと管理に適しています。 このトピックでは、LinuxインスタンスにMySQLをデプロイする方法について説明します。

手順

既存のElastic Compute Service (ECS) インスタンスにMySQLをデプロイする場合は、インスタンスが次の要件を満たしていることを確認してください。

  • ECSインスタンスは、自動割り当てパブリックIPアドレスまたはelastic IPアドレス (EIP) に関連付けられています。

  • ECSインスタンスは、CentOS 7.x、Alibaba Cloud Linux 2、またはAlibaba Cloud Linux 3を実行します。

  • オープンポート22、80、443、および3306にECSインスタンスが属するセキュリティグループにインバウンドルールが追加されます。 詳細については、「セキュリティグループルールの追加」をご参照ください。

ステップ1: MySQLのインストール

  1. ECS インスタンスに接続します。

    詳細については、「パスワードまたはキーを使用したLinuxインスタンスへの接続」をご参照ください。

  2. 次のコマンドを実行して、YUMリポジトリを更新します。

    sudo rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm
  3. オプションです。 ECSインスタンスがAlibaba Cloud Linux 3を実行している場合、次のコマンドを実行してMySQLに必要なパッケージをインストールします。

    sudo rpm -Uvh https://mirrors.aliyun.com/alinux/3/updates/x86_64/Packages/compat-openssl10-1.0.2o-4.0.1.al8.x86_64.rpm

  4. 次のコマンドを実行してMySQLをインストールします。

    sudo yum -y install mysql-community-server -- enableepo=mysql80-community -- nogpgcheck
  5. 次のコマンドを実行して、MySQLのバージョンを確認します。

    mysql -V

    次のコマンド出力は、MySQLがインストールされていることを示します。

    mysql Ver 8.0.33 for Linux on x86_64 (MySQLコミュニティサーバー-GPL)

ステップ2: MySQLの設定

  1. 次のコマンドを実行して、MySQLをシステム起動時に実行できるようにします。

    sudo systemctlスタートmysqld
    sudo systemctlを有効にするmysqld 
  2. 次のコマンドを実行して、rootユーザーの初期パスワードを取得して記録します。

    sudo grep 'temporary password' /var/log/mysqld.log

    次のコマンド出力が返されます。

    2022-02-14T09: 27,18. 470008Z 6 [注] [MY-010454] [サーバー] root @ localhost: r_V&f2wyu_vI
    の一時的なパスワードが生成されます
    説明

    コマンド出力の最後にあるr_V&f2wyu_vIは、MySQLのセキュリティ設定を構成するために必要な初期パスワードです。

  3. 次のコマンドを実行して、MySQLのセキュリティ設定を構成します。

    sudo mysql_secure_インストール
    1. コマンドのプロンプトに基づいて、rootユーザーのパスワードをリセットします。

      説明

      データセキュリティのため、パスワードを入力しても出力は返されません。 正しいパスワードを入力し、enterキーを押すだけです。

      ユーザーrootのパスワードを入力:# 取得したrootユーザーの初期パスワードを入力します。
      
      ユーザーアカウントのルートの既存のパスワードの有効期限が切れています。 新しいパスワードを設定してください。
      
      新しいパスワード:# 新しいパスワードを入力します。
      
      新しいパスワードを再入力する:# 新しいパスワードを再度入力します。
      'validate_password' コンポーネントがサーバーにインストールされています。
      後続のステップは、既存の構成で実行されます
      コンポーネントの
      Using existing password for root.
      rootのパスワードを変更しますか? (y | Yを押してはい、他のキーを押していいえ) : Y# Yを入力してパスワードを更新します。 Nを入力してパスワードの更新をスキップすることもできます。 
      
      新しいパスワード:# 新しいパスワードを入力します。
      
      新しいパスワードを再入力する:# 新しいパスワードを再度入力します。
      
      パスワードの推定強度: 100
      提供されたパスワードで続行しますか (y | Yを押してはい、他のキーはいいえ) :Y# を入力して新しいパスワードを使用します。
    2. 匿名ユーザーを削除します。

      デフォルトでは、MySQLインストールに匿名ユーザーがいます。持っていなくても誰でもMySQLにログインできるようにする
      それらのために作成されたユーザーアカウント。 これは、テストし、インストールを少しスムーズにする。
      プロダクションに移行する前にそれらを削除する必要があります
      環境。
      
      匿名ユーザーを削除しますか? (y | Yを押してはい、他のキーを押していいえ) :Y# Yを入力して、デフォルトの匿名ユーザーを削除します。 
      成功。
    3. rootユーザーによるリモートアクセスを拒否します。

      通常、rootはからのみ接続できるようにしてください。'localhost' 。 これにより、誰かが推測できないことが保証されます
      ネットワークからのルートパスワード。
      
      リモートからのrootログインを拒否しますか? (Yesの場合はy | Yを押し、Noの場合は他のキーを押します) : Y# Yを入力して、rootユーザーによるリモートアクセスを拒否します。 
      成功。
    4. テストデータベースとデータベースのアクセス権限を削除します。

      デフォルトでは、MySQLには 'test' という名前のデータベースが付属しています。誰でもアクセスできます。 これもテストのみを目的としていますが、プロダクションに移行する前に削除する必要があります
      環境。
      
      
      テストデータベースを削除してアクセスしますか? (y | Yを押してはい、他のキーを押していいえ) : Y# Yを入力して、テストデータベースとデータベースのアクセス許可を削除します。 
       - テストデータベースを削除しています...
      成功
      
       - テストデータベースの権限を削除しています...
      成功。
    5. 権限テーブルをリロードします。

      特権テーブルをリロードすると、すべての変更
      これまでに作られてすぐに有効になります。
      
      今すぐ特権テーブルを再ロードしますか? (Yesの場合はy | Yを押し、Noの場合は他のキーを押します) : Y# Yを入力して特権テーブルをリロードします。 
      成功
      
      すべて完了! 

    MySQLのセキュリティ設定については、「MySQLドキュメント」をご参照ください。

ステップ3: MySQLに接続

MySQLに接続するには、root以外のユーザーを使用することを推奨します。 この例では、MySQLに接続するためのアカウントが作成されます。

  1. ECS インスタンスに接続します。

    接続方法の詳細については、「接続方法の概要」をご参照ください。

  2. 次のコマンドを実行し、rootユーザーがMySQLにログインするためのパスワードを入力します。

    sudo mysql -uroot -p
  3. 次のコマンドを順番に実行してアカウントを作成し、そのアカウントを使用してMySQLへのリモートアクセスを許可します。

    この例では、dmsTestユーザー名とEcs @ 123 **** パスワードが使用されます。

    重要

    アカウントを作成するときは、Ecs @ 123 **** パスワードを有効なパスワードに置き換え、パスワードを秘密にしておきます。 パスワードの長さは8 ~ 30文字で、大文字、小文字、数字、および特殊文字を使用する必要があります。 次の特殊文字がサポートされています。

    ( ) ` ~ ! @ # $ % ^ & * - + = | { } [ ] : ; ' < > , . ? /

    # dmsTestという名前のアカウントを作成し、そのアカウントにリモート接続権限を付与します。 
    'Ecs @ 123 **** 'で識別されるユーザー 'dmsTest' @' % 'を作成します。# MySQLのすべての権限をdmsTestアカウントに付与します。 
    *.* のすべての権限を 'dmsTest' @ '%' に付与します。# 権限を更新します。 
    フラッシュ特権; 
  4. 次のコマンドを実行してMySQLを終了します。

    exit
  5. dmsTestユーザーを使用してMySQLに接続します。

    • Alibaba Cloud Data Management (DMS) を使用してMySQLデータベースにアクセスすることを推奨します。 詳細については、「Alibaba Cloudデータベースインスタンスの登録」をご参照ください。

    • MySQLクライアントを使用してMySQLにログインし、テストを実行できます。 MySQLクライアントは、MySQL WorkbenchまたはNavicatです。

参考資料

  • ApsaraDB RDSを使用すると、効率的な方法でデータベースを管理し、高可用性、信頼性、セキュリティ、およびスケーラビリティを提供するマネージドデータベースサービスを構築できます。 ApsaraDB RDSは、Alibaba Cloudが提供する安定性、信頼性、スケーラブルなデータベースサービスです。 ApsaraDB RDSは、MySQL、SQL Server、PostgreSQL、およびMariaDBデータベースエンジンをサポートし、ディザスタリカバリ、バックアップ、復元、移行などのシナリオに対応するソリューションを提供します。 詳細については、「ApsaraDB RDS の概要」をご参照ください。

  • Alibaba Cloud Data Transmission Service (DTS) を使用して、自己管理データベースからAlibaba Cloudデータベースにデータをスムーズに移行できます。 詳細については、「データ移行シナリオの概要」および「自己管理型MySQLデータベースからApsaraDB RDS For MySQLインスタンスへのデータ移行」をご参照ください。

  • データベースバックアップ (DBS) は、Alibaba cloudが提供するコスト効率と信頼性の高いクラウドネイティブデータベースバックアッププラットフォームです。 DBSは、時間やコストのかかるバックアップなどの問題を解決するのに役立ちます。 詳細については、「」をご参照ください。DBSとは何ですか?