阿里云百科分享在阿里云Linux服務器上部署MySQL數據庫流程,MySQL是一個關系型數據庫管理系統,常用于LAMP和LNMP等網站場景中。本教程介紹如何在Linux系統ECS實例上安裝、配置以及遠程訪問MySQL數據庫。
目錄
背景信息
Alibaba Cloud Linux 2/3、CentOS 7.x
步驟一:安裝MySQL
步驟二:配置MySQL
步驟三:遠程訪問MySQL數據庫
背景信息
本教程中的MySQL版本僅為示例,您在實際操作時,MySQL的版本可能因軟件源的更新而有所不同。關于MySQL相關安裝路徑說明如下:
-
配置文件:/etc/my.cnf
-
數據存儲:/var/lib/mysql
-
命令文件:/usr/bin和/usr/sbin
-
ECS云服務器:aliyunbaike.com/go/ecs
-
操作系統:CentOS 7.x、Alibaba Cloud Linux 2、Alibaba Cloud Linux 3。
-
實例安全組的入方向規則已放行22、80、443、3306端口。具體操作,請參見添加安全組規則。
Alibaba Cloud Linux 2/3、CentOS 7.x
步驟一:安裝MySQL
- 遠程連接ECS實例。
具體操作,請參見使用VNC登錄實例。
-
運行以下命令,更新YUM源。
sudo rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.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 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數據庫
建議您使用非root賬號遠程登錄MySQL數據庫。下文示例中,將創建新的MySQL用戶賬戶,用于遠程訪問MySQL。
- 遠程連接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。-
(推薦)您可以通過阿里云提供的數據管理服務DMS(Data Management Service)來遠程訪問MySQL數據庫。具體操作,請參見云數據庫錄入。
-
您可以通過MySQL客戶端遠程登錄MySQL進行測試。例如:MySQL Workbench、Navicat。
-
? 本文源自阿里云官方文檔。