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のインストール
ECS インスタンスに接続します。
詳細については、「パスワードまたはキーを使用したLinuxインスタンスへの接続」をご参照ください。
次のコマンドを実行して、Yellowdog Updater Modified (YUM) リポジトリを更新します。
この例では、MySQL 8.0がインストールされています。 他のMySQLバージョンのインストール方法については、MySQLの公式ドキュメントをご参照ください。
sudo rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm
オプションです。 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
次のコマンドを実行してMySQLをインストールします。
sudo yum -y install mysql-community-server --enablerepo=mysql80-community --nogpgcheck
次のコマンドを実行して、MySQLのバージョンを確認します。
mysql -V
次のコマンド出力は、MySQLがインストールされていることを示します。
mysql Ver 8.0.33 for Linux on x86_64 (MySQL Community Server - GPL)
ステップ2: MySQLの設定
次のコマンドを実行して、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のヘルスステータスを確認し、情報に基づいて問題の原因を特定できます。
次のコマンドを実行してMySQLを起動し、MySQLをシステム起動時に実行できるようにします。
sudo systemctl start mysqld sudo systemctl enable mysqld
次のコマンドを実行して、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のセキュリティ設定を構成するために必要な初期パスワードです。次のコマンドを実行して、MySQLのセキュリティ設定を構成します。
sudo mysql_secure_installation
プロンプトに従って、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.
匿名ユーザーを削除します。
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.
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.
テストデータベースを削除し、データベースのアクセス権限を取り消します。
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.
権限テーブルをリロードします。
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に接続するためのアカウントが作成されます。
ECS インスタンスに接続します。
接続方法の詳細については、「接続方法の概要」をご参照ください。
次のコマンドを実行し、rootユーザーのパスワードを入力してMySQLにログインします。
sudo mysql -uroot -p
次のコマンドを順番に実行してアカウントを作成し、そのアカウントを使用して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;
次のコマンドを実行してMySQLを終了します。
exit
を使用して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とは何ですか?