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

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

最終更新日:Sep 12, 2024

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

手順

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

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

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

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

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

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

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

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

    この例では、MySQL 8.0がインストールされています。 他のMySQLバージョンのインストール方法については、MySQLの公式ドキュメントをご参照ください。

    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 --enablerepo=mysql80-community --nogpgcheck

    次のエラーメッセージが表示されます。Unknown repo: 'mysql80-community'

    次のコマンドを実行してYUMキャッシュをクリアし、YUMキャッシュを作成してから、MySQLをインストールします。

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

    mysql -V

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

    mysql Ver 8.0.33 for Linux on x86_64 (MySQL Community Server - GPL)

ステップ2: MySQLの設定

  1. 次のコマンドを実行して、MySQLのステータスを確認します。

    sudo systemctl status mysql

    MySQLの一般的な状態:

    • active (running): MySQLは稼働中です。

    • active (exited): MySQLはタスクを完了し、正常に終了しました。 MySQLがアクティブ (終了) 状態になるのはまれです。 長時間実行されるサービスとして、MySQLはアクティブ (終了) 状態ではなくアクティブ (実行) 状態にあることが予想されます。

    • inactive (dead): MySQLが実行されていません。 MySQLが起動されていないか、すでに停止されている場合、MySQLはこの状態です。

    • failed: MySQLの起動に失敗したか、実行時に発生した致命的なエラーのために終了しました。

    • reloading (reload): まれに、MySQLのステータスを確認し、MySQLが設定をリロードしているときに、MySQLがこの状態になることがあります。 ただし、ほとんどの場合、MySQLはリロード操作を実行しません。

    • activating (start): MySQLは起動中の短期間この状態にあります。

    説明

    コマンド出力には、サービスの起動時間、プライマリプロセスID、エラーメッセージ、アラートなど、MySQLに関する詳細なログ情報も表示されます。 MySQLのヘルスステータスを確認し、情報に基づいて問題の原因を特定できます。

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

    sudo systemctl start mysqld
    sudo systemctl enable mysqld
  3. 次のコマンドを実行して、rootユーザーの初期パスワードを取得して記録します。

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

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

    2022-02-14T09:27:18.470008Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: r_V&f2wyu_vI

    の一時的なパスワードが生成されます

    説明

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

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

    sudo mysql_secure_installation
    1. プロンプトに従って、rootユーザーのパスワードをリセットします。

      説明

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

      Enter password for user root: # Enter the initial password that you obtained for the root user.
      
      The existing password for the user account root has expired. Please set a new password.
      
      New password: # Enter a new password.
      
      Re-enter new password: # Re-enter the new password.
      The 'validate_password' component is installed on the server.
      The subsequent steps will run with the existing configuration
      of the component.
      Using existing password for root.
      Change the password for root ?  (Press y|Y for Yes, any other key for No) :Y # Enter Y to update the password. You can also enter N to skip the password update. 
      
      New password: # Enter a new password.
      
      Re-enter new password: # Re-enter the new password.
      
      Estimated strength of the password: 100
      Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) :Y # Enter Y to use the new password.

    2. 匿名ユーザーを削除します。

      By default, a MySQL installation has an anonymous user,
      allowing anyone to log into MySQL without having to have
      a user account created for them. This is intended only for
      testing, and to make the installation go a bit smoother.
      You should remove them before moving into a production
      environment.
      
      Remove anonymous users?  (Press y | Y for Yes, any other key for No) :Y # Enter Y to delete the default anonymous user. 
      Success.
    3. rootユーザーによるリモートアクセスを拒否します。

      Normally, root should only be allowed to connect from
      'localhost'. This ensures that someone cannot guess at
      the root password from the network.
      
      Disallow root login remotely?  (Press y|Y for Yes, any other key for No) : Y # Enter Y to deny remote access by the root user. 
      Success.
    4. テストデータベースを削除し、データベースのアクセス権限を取り消します。

      By default, MySQL comes with a database named 'test' that
      anyone can access. This is also intended only for testing,
      and should be removed before moving into a production
      environment.
      
      
      Remove test database and access to it?  (Press y|Y for Yes, any other key for No) : Y # Enter Y to delete the test database and revoke the access permissions on the database. 
       - Dropping test database...
      Success.
      
       - Removing privileges on test database...
      Success.
    5. 権限テーブルをリロードします。

      Reloading the privilege tables will ensure that all changes
      made so far will take effect immediately.
      
      Reload privilege tables now?  (Press y|Y for Yes, any other key for No) : Y # Enter Y to reload privilege tables. 
      Success.
      
      All done!

    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文字で、大文字、小文字、数字、および特殊文字を含める必要があります。 次の特殊文字がサポートされています。

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

    # Create an account named dmsTest and grant the remote connection permissions to the account. 
    create user 'dmsTest'@'%' identified by 'Ecs@123****'; 
    # Grant all permissions on MySQL to the dmsTest account. 
    grant all privileges on *.* to 'dmsTest'@'%'; 
    # Refresh the permissions. 
    flush privileges; 
  4. 次のコマンドを実行してMySQLを終了します。

    exit
  5. を使用してMySQLに接続します。dmsTestアカウントを使用します。

    • 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とは何ですか?