MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用结构化查询语言(SQL)进行数据库管理,适用于Web应用开发、企业应用程序、数据分析和报告、软件开发和测试等多种场景下的数据存储和管理需求。本文介绍如何在Linux实例中部署MySQL数据库。
本文提供以下两种部署方式,您可以根据需要选择。 手动部署:适用于熟悉Linux操作系统,并且对所安装软件的版本及各软件兼容性有所了解的用户。 镜像部署:在云市场购买MySQL镜像直接创建ECS实例,创建完成后,即可使用MySQL数据库。 手动部署MySQL时,已有ECS实例必须满足以下条件: 实例已分配公网IP地址或绑定弹性公网IP(EIP)。 操作系统:CentOS 7.x、Alibaba Cloud Linux 2、Alibaba Cloud Linux 3。 实例安全组的入方向规则已放行22、80、443、3306端口。具体操作,请参见添加安全组规则。 远程连接ECS实例。 具体操作,请参见通过密码或密钥认证登录Linux实例。 运行以下命令,更新YUM源。 本操作以下载MySQL 8.0版本为例,如果您想下载其他版本的MySQL,请参见MySQL官方文档。 (可选)当操作系统为Alibaba Cloud Linux 3时,请执行如下命令,安装MySQL所需的库文件。 运行以下命令,安装MySQL。 运行以下命令,查看MySQL版本号。 返回结果如下,表示MySQL安装成功。 运行以下命令,启动并设置开机自启动MySQL服务。 运行以下命令,获取并记录root用户的初始密码。 执行命令结果示例如下。 说明 示例末尾的 运行以下命令,对MySQL进行安全性配置。 安全性配置的更多信息,请参见MySQL官方文档。 根据提示信息,重置MySQL数据库root用户的密码。 说明 在输入密码时,系统为了最大限度地保证数据安全,命令行将不做任何回显。您只需要输入正确的密码信息,然后按Enter键即可。 根据提示信息,删除匿名用户。 禁止root账号远程登录。 删除test库以及对test库的访问权限。 重新加载授权表。 建议您使用非root账号远程登录MySQL数据库。下文示例中,将创建新的MySQL账号,用于远程访问MySQL。 远程连接ECS实例。 关于连接方式的介绍,请参见连接方式概述。 运行以下命令后,输入root用户的密码登录MySQL。 依次运行以下命令,创建远程登录MySQL的账号,并允许远程主机使用该账号访问MySQL。 本示例账号为 重要 实际创建账号时,需将示例密码 执行以下命令,退出数据库。 使用 (推荐)您可以通过阿里云提供的数据管理服务DMS(Data Management Service)来远程访问MySQL数据库。具体操作,请参见云数据库录入。 您可以通过MySQL客户端远程登录MySQL进行测试。例如:MySQL Workbench、Navicat。 登录ECS管理控制台。 在左侧导航栏,选择 。 在页面左侧顶部,选择目标资源所在的资源组和地域。 在实例列表页面,单击创建实例。 在自定义购买页面的镜像区域,单击云市场镜像,然后单击从云市场获取更多选择(含操作系统)。 在镜像市场对话框,选择MySQL镜像。 在左侧导航栏单击 。 在搜索框,输入 选择您想要使用的MySQL镜像,单击使用。 您可以单击镜像标题进入镜像详情页,获取镜像信息与使用指南(包括账号密码及开放的安全组等)。 在自定义购买页,镜像区域已自动设置为您购买的镜像。根据页面提示,完成配置项并购买ECS实例。 配置时需注意: 为实例分配公网IPv4地址。 选择前提条件中已配置的安全组。 其他配置您可以按需选择。具体操作请参见自定义购买实例。 如果您希望更方便地管理数据库,并享有高可用、高可靠、高安全、可扩展的托管数据库服务,可以使用阿里云云数据库RDS。RDS是阿里云提供的稳定可靠、可弹性伸缩的关系型云数据库,支持MySQL、SQL Server、PostgreSQL和MariaDB引擎,具备容灾、备份、恢复、迁移等方面的全套解决方案。更多信息,请参见云数据库RDS简介。 您可以通过数据迁移工具DTS,将自建数据库平滑迁移到阿里云数据库上。具体操作,请参见数据库迁移方案和从自建MySQL迁移至RDS MySQL实例。 数据库备份DBS(Database Backup)是阿里云提供的低成本、高可靠的云原生数据库备份平台,可帮助您有效解决备份耗时耗成本等问题。更多信息,请参见什么是数据库备份DBS。背景信息
手动部署MySQL数据库(Alibaba Cloud Linux 3/2、CentOS 7.x)
步骤一:安装MySQL
sudo rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm
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
sudo yum -y install mysql-community-server --enablerepo=mysql80-community --nogpgcheck
mysql -V
mysql Ver 8.0.33 for Linux on x86_64 (MySQL Community Server - GPL)
步骤二:配置MySQL
sudo systemctl start mysqld
sudo systemctl enable mysqld
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进行安全性配置时,需要使用该初始密码。sudo mysql_secure_installation
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.
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.
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数据库
sudo mysql -uroot -p
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。使用云市场镜像部署MySQL数据库
mysql
,然后单击搜索。相关文档