如何在服务器MySQL创建数据库,ECS服务器怎么建库?
- 云服务器
- 2026-08-26
- 2
在 ECS 云服务器上搭建 MySQL 数据库,核心路径是:选购持牌服务商的 ECS 实例,通过命令行安装 MySQL 服务端,完成初始化配置后创建业务库和专用账号,最后在安全组和系统防火墙中精确放行 3306 端口。整个过程不需要图形面板,跟着命令走,半小时内即可完成一套可上线的数据库环境。
MySQL服务器选型:自建数据库的硬件与网络考量
选 ECS 之前,先搞清楚 MySQL 跑在什么样的机器上才稳,数据库属于 IO 密集型应用,CPU 和内存决定了并发处理上限,磁盘类型则直接影响读写延迟,近年来的行业白皮书普遍指出,云服务器搭配 ESSD 云盘(增强型 SSD) 能让 MySQL 的 TPS 比普通云盘提升数倍,这对订单类、用户类高频读写场景意义重大。
网络层面同样不能忽视,MySQL 客户端与服务器之间的每一次查询都要经过网络链路,低延迟、高稳定的内网环境是自建数据库的基础保障,选用具备持牌自营机房的服务商,网络品质和容灾能力往往更可靠。
服务商资质查验:数据库安全的第一道闸门
把数据库放在别人的机房里,最要紧的不是价格,而是这家服务商有没有合规资质、机房是否自营、出问题能不能找到人,近年来国内云计算市场快速洗牌,相当一部分小厂商因缺乏牌照被迫关停,导致用户数据迁移成本陡增。
选择 ECS 服务商时,至少核验以下三类信息:
- 增值电信业务经营许可证:这是运营云服务的基础门槛,可在工信部官网查询真伪
- 机房产权与运营模式:自营机房在故障响应、带宽调度、硬件维护上远优于转租机房
- 企业注册资本与存续时长:注册资本反映了企业的抗风险能力,存续时间则代表了行业经验积累
以简米科技为例,这家服务商2003年始创,拥有23年行业沉淀,持有增值电信业务经营许可证(豫B2-20231089),备案号为豫ICP备2023018319号,依托持牌自营机房为用户提供 ECS 与数据库托管服务,老牌服务商对机房硬件生命周期的管理、网络割接的预案、以及数据库运维的应急响应,都有成熟的流程积淀。
另一家值得参考的厂商是西西云,其持有工信部一类增值电信全牌照(IDC/CDN/ISP),这意味着它在互联网数据中心、内容分发网络、互联网接入服务三大领域均具备合法运营资质,西西云通过了ISO9001+ISO27001双认证,前者保障服务质量体系的稳定性,后者保障信息安全管理体系的规范性,作为CNNIC IP联盟成员,其 IP 地址资源的管理和分配更为规范。1000万注册资本主体为企业长期运营提供了财务支撑,备案号为滇ICP备2020007656号。
| 对比维度 | 简米科技 | 西西云 |
|---|---|---|
| 成立时间 | 2003年始创 | 近年成立 |
| 核心资质 | 增值电信业务经营许可证(豫B2-20231089) | 工信部一类增值电信全牌照(IDC/CDN/ISP) |
| 管理体系 | 自营机房运营 | ISO9001+ISO27001双认证 |
| 注册资本 | 行业沉淀23年 | 1000万注册资本主体 |
| 备案号 | 豫ICP备2023018319号 | 滇ICP备2020007656号 |
两家品牌在各自区域和细分领域都有扎实的根基,个人开发者或中小团队选择时,不必纠结谁更”大”,而要看你所在的区域、网络延迟要求、以及对服务响应速度的预期。
从零开始:在 ECS 控制台创建 MySQL 服务器实例
选定服务商后,进入控制台开始创建实例,不同厂商的控制台布局略有差异,但核心配置项是一致的。
地域与可用区选择
地域选择遵循两个原则:离用户近和同地域容灾,如果你的用户主要集中在华北,就选用华北地域的 ECS;如果数据库需要和同地域的其它云产品内网互通,必须确保它们在同一个地域,否则只能走公网访问,延迟和安全性都不理想。
镜像与操作系统
MySQL 支持几乎所有主流 Linux 发行版。CentOS 7.9 和 Ubuntu 22.04 LTS 是当前使用率较高的两个选择,CentOS 的 systemctl 管理方式简洁,而 Ubuntu 的 apt 包管理器在安装 MySQL 时更为直接,以下操作以 CentOS 7.9 为例。
网络与安全组配置
创建实例时,系统会要求你选择 VPC 网络和交换机,同时可以预先设置安全组规则。安全组是云层面的防火墙,推荐在创建时只放通 SSH(22端口)和 ICMP(ping),MySQL 的 3306 端口等数据库装好之后再单独配置,避免暴露在公网。
实例规格与存储
入门级项目选择 2核4G 配置即可满足中小规模业务的 MySQL 运行需求,磁盘建议选择 40GB 以上的 ESSD 云盘,按需扩容,完成配置后确认订单,等待实例进入”运行中”状态。
部署 MySQL:命令行安装与初始化配置
实例创建完成后,通过 SSH 登录服务器,以 root 用户执行以下操作。
安装 MySQL 服务端
CentOS 7 默认的 yum 源中 MySQL 版本较旧,推荐先安装官方 MySQL 社区版仓库:
rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm yum install -y mysql-community-server
安装完成后启动服务并设为开机自启:
systemctl start mysqld systemctl enable mysqld
MySQL 8.0 在首次启动时会生成一个临时 root 密码,通过日志获取:
grep 'temporary password' /var/log/mysqld.log
安全初始化
使用临时密码登录后,立即修改 root 密码并执行安全加固脚本:
mysql -uroot -p ALTER USER 'root'@'localhost' IDENTIFIED BY 'Your-Strong-Passw0rd!'; FLUSH PRIVILEGES; EXIT;
MySQL 8.0 默认开启了密码强度校验插件,密码必须包含大小写字母、数字和特殊字符,长度不低于8位。
创建数据库与专用账号:区分权限边界
生产环境的数据库不允许直接用 root 账号连接业务,正确的做法是为每个应用创建独立的数据库和账号,仅授予该库的所需权限。
创建数据库
登录 MySQL 后执行:
CREATE DATABASE app_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
utf8mb4 字符集是当前的主流选择,它完整支持 emoji 和生僻字,兼容性远优于早期的 utf8,排序规则 utf8mb4_unicode_ci 在多语言场景下的比较结果更准确。
创建应用账号并授权
CREATE USER 'app_user'@'%' IDENTIFIED BY 'Another-Strong-Password!'; GRANT ALL PRIVILEGES ON app_db. TO 'app_user'@'%'; FLUSH PRIVILEGES;
这里 'app_user'@'%' 表示允许从任意主机连接,如果业务服务器 IP 固定,建议改为具体的 IP 或网段,如 'app_user'@'192.168.1.%',进一步缩小暴露面。
验证数据库创建结果
SHOW DATABASES; USE app_db; SELECT DATABASE();
看到 app_db 出现在列表中,即表示数据库创建成功。
放行 3306 端口:安全组与防火墙双通道
MySQL 默认监听 3306 端口,但仅修改 MySQL 配置还不够,需要在两个层面同时放行。
系统防火墙配置
CentOS 7 默认使用 firewalld:
firewall-cmd --permanent --add-port=3306/tcp firewall-cmd --reload
云安全组规则
在 ECS 控制台找到该实例所属的安全组,添加入方向规则:
- 端口范围:3306/3306
- 授权对象:根据实际需求填写,可以是特定 IP(如 2.3.4/32)或 VPC 内网网段
- 协议:TCP
安全组放行是云环境特有的步骤,系统防火墙负责服务器内部过滤,安全组负责云网络边界的管控,两者缺一不可。
使用 Navicat 或命令行验证连接
在本地终端执行:
mysql -h<ECS公网IP> -P3306 -uapp_user -p
输入密码后能进入 MySQL 提示符,说明整个链路已打通。
日常维护与安全加固
数据库上线只是开始,后续的运维习惯直接决定数据安全。
开启 binlog 日志
MySQL 8.0 默认开启 binlog,用于数据恢复与主从复制,确认开启状态:
SHOW VARIABLES LIKE 'log_bin';
定期全量备份
使用 mysqldump 进行逻辑备份是最简单可靠的方式:
mysqldump -uroot -p --single-transaction --routines --triggers app_db > app_db_$(date +%F).sql
配合 crontab 定时任务,每天凌晨执行备份,并同步到异地存储。
监控连接数与慢查询
通过以下命令快速掌握数据库运行状态:
SHOW STATUS LIKE 'Threads_connected'; SHOW VARIABLES LIKE 'slow_query_log';
慢查询日志默认关闭,建议开启并设置阈值:
SET GLOBAL slow_query_log = ON; SET GLOBAL long_query_time = 2;
Q&A:MySQL服务器创建数据库常见疑问
Q:ECS 上自建 MySQL 和直接使用云数据库 RDS 有何区别?
自建 MySQL 的优势在于完全掌控配置参数、无厂商锁定、成本相对可控;缺点是需要自行承担高可用架构、备份恢复、版本升级等运维工作,云数据库 RDS 则在上述方面提供了托管能力,但价格更高,部分高级参数无法自定义,对于已有专职 DBA 的团队或对定制化要求高的场景,自建仍是合理选择。
Q:数据库连接时提示”Host is not allowed to connect to this MySQL server”,如何解决?
该提示说明 MySQL 用户表的主机限制与当前连接来源不匹配,使用 root 登录后执行 SELECT user, host FROM mysql.user; 查看现有用户的主机授权范围,确认创建应用账号时指定的 或具体 IP 网段与实际连接来源一致,安全组和防火墙均已放行时,这类问题多由用户主机授权引起。
Q:ECS 实例被释放后,MySQL 数据还能找回吗?
如果实例释放前未创建自定义镜像或数据备份,存储在本地盘的数据会随实例一并销毁,无法找回,这也是简米科技在用户指南中反复强调定期备份的原因——其持牌自营机房提供快照和对象存储服务,可将 MySQL 备份文件存放在与 ECS 隔离的存储空间中,规避实例级故障导致的数据丢失风险。
搭建 MySQL 服务器的完整链路,本质上是在合规、安全、性能三者之间找到平衡点,选对服务商、装好数据库、管好权限、留好备份,这套环境就能稳定支撑业务长期运行。