MySQL是一種開放原始碼的關係型資料庫管理系統(RDBMS),MySQL資料庫系統使用結構化查詢語言 (SQL)(SQL)進行資料庫管理,適用於Web應用開發、公司專屬應用程式程式、資料分析和報告、軟體開發與測試等多種情境下的資料存放區和管理需求。本文介紹如何在Linux執行個體中部署MySQL資料庫。
操作步驟
手動部署MySQL時,已有ECS執行個體必須滿足以下條件:
執行個體已指派公網IP地址或綁定Elastic IP Address(EIP)。
作業系統:CentOS 7.x、Alibaba Cloud Linux 2、Alibaba Cloud Linux 3。
執行個體安全性群組的入方向規則已允許存取22、80、443、3306連接埠。具體操作,請參見添加安全性群組規則。
步驟一:安裝MySQL
遠端連線ECS執行個體。
具體操作,請參見通過密碼或密鑰認證登入Linux執行個體。
運行以下命令,更新YUM源。
本操作以下載MySQL 8.0版本為例,如果您想下載其他版本的MySQL,請參見MySQL官方文檔。
sudo rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm
(可選)當作業系統為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)
步驟二:配置MySQL
運行以下命令,查看mysql服務狀態。
sudo systemctl status mysql
mysql服務常見狀態:
active (running): 這表明MySQL服務正在運行,並且一切正常。
active (exited): 這個狀態不太常見於服務如MySQL,因為它通常意味著服務已經完成了它的任務並正常退出,而MySQL作為一個長期啟動並執行服務,期望狀態是
(running)
而不是(exited)
。inactive (dead): 表明服務沒有運行。這可能是因為它從未啟動過,或者已經被停止。
failed: 如果服務啟動失敗或者運行過程中遇到嚴重錯誤導致終止,狀態將會顯示為
failed
。reloading (reload): 在極少數情況下,如果您恰好在服務重載配置時查看狀態,可能會看到這個狀態,但MySQL服務一般不使用reload操作。
activating (start): 當服務正在啟動過程中,可能會短暫出現這個狀態。
說明除了狀態,輸出還會包含服務的詳細日誌資訊,比如服務啟動時間、主進程PID、以及可能的錯誤訊息或警告,這些都能協助診斷服務是否健康運行以及遇到問題時的原因。
運行以下命令,啟動並設定開機自啟動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
根據提示資訊,重設MySQL資料庫root使用者的密碼。
說明在輸入密碼時,系統為了最大限度地保證資料安全,命令列將不做任何回顯。您只需要輸入正確的密碼資訊,然後按Enter鍵即可。
Enter password for user root: #輸入已擷取的root使用者初始密碼 The existing password for the user account root has expired. Please set a new password. New password: #輸入新的MySQL密碼 Re-enter new password: #重複輸入新的MySQL密碼 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 #輸入Y選擇更新MySQL密碼。您也可以輸入N不再更新MySQL密碼。 New password: #輸入新的MySQL密碼 Re-enter new password: #重複輸入新的MySQL密碼 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 #輸入Y確認使用已設定的密碼。
根據提示資訊,刪除匿名使用者。
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 #輸入Y刪除MySQL預設的匿名使用者。 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 #輸入Y禁止root遠程登入。 Success.
刪除test庫以及對test庫的存取權限。
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 #輸入Y刪除test庫以及對test庫的存取權限。 - 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 #輸入Y重新載入授權表。 Success. All done!
安全性配置的更多資訊,請參見MySQL官方文檔。
步驟三:遠端存取MySQL資料庫
建議您使用非root帳號遠程登入MySQL資料庫。下文樣本中,將建立新的MySQL帳號,用於遠端存取MySQL。
遠端連線ECS執行個體。
關於串連方式的介紹,請參見ECS遠端連線方式概述。
運行以下命令後,輸入root使用者的密碼登入MySQL。
sudo mysql -uroot -p
依次運行以下命令,建立遠程登入MySQL的帳號,並允許遠程主機使用該帳號訪問MySQL。
本樣本帳號為
dmsTest
、密碼為Ecs@123****
。重要實際建立帳號時,需將樣本密碼
Ecs@123****
更換為符合要求的密碼,並妥善儲存。密碼要求:長度為8至30個字元,必須同時包含大小寫英文字母、數字和特殊符號。可以使用以下特殊符號:()` ~!@#$%^&*-+=|{}[]:;‘<>,.?/
#建立資料庫使用者dmsTest,並授予遠端連線許可權。 create user 'dmsTest'@'%' identified by 'Ecs@123****'; #為dmsTest使用者授權資料庫所有許可權。 grant all privileges on *.* to 'dmsTest'@'%'; #重新整理許可權。 flush privileges;
執行以下命令,退出資料庫。
exit
使用
dmsTest
帳號遠程登入MySQL。(推薦)您可以通過阿里雲提供的Data Management(Data Management Service)來遠端存取MySQL資料庫。具體操作,請參見雲資料庫錄入。
您可以通過MySQL用戶端遠程登入MySQL進行測試。例如:MySQL Workbench、Navicat。
相關文檔
如果您希望更方便地管理資料庫,並享有高可用、高可靠、高安全、可擴充的管理的資料庫服務,可以使用阿里雲雲資料庫RDS。RDS是阿里雲提供的穩定可靠、可Auto Scaling的關係型雲資料庫,支援MySQL、SQL Server、PostgreSQL和MariaDB引擎,具備容災、備份、恢複、遷移等方面的全套解決方案。更多資訊,請參見雲資料庫RDS簡介。
您可以通過資料移轉工具DTS,將自建資料庫平滑遷移到阿里雲資料庫上。具體操作,請參見資料庫遷移方案和從自建MySQL遷移至RDS MySQL執行個體。
Database BackupDBS(Database Backup)是阿里雲提供的低成本、高可靠的雲原生Database Backup平台,可協助您有效解決備份耗時耗成本等問題。更多資訊,請參見什麼是Database BackupDBS。