在服务器上添加MySQL数据库,核心动作是登录MySQL后执行CREATE DATABASE建库、CREATE USER建专用账号并用GRANT授权,再用SHOW DATABASES和客户端连接做验证。
不同服务器的入口不一样,命令行、宝塔面板、云数据库控制台的操作路径有差别,但底层逻辑一致:先有库,再有账号,最后把权限和网络通路上打通。
先判断服务器环境:命令行、面板还是云托管
Linux服务器安装MySQL后如何创建数据库
登录服务器后先确认MySQL服务在运行,以常见发行版为例:
systemctl status mysql # 或 systemctl status mysqld
服务正常后,用root或有建库权限的账号登录:
mysql -u root -p
进入MySQL提示符后,先看版本和当前库:
SELECT VERSION(); SHOW DATABASES;
创建数据库时把字符集一次指定好,避免后期迁移:
CREATE DATABASE app_db DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
MySQL 8环境下也可以使用utf8mb4_0900_ai_ci,排序规则影响比较和排序行为,新项目优先用utf8mb4,不要再用MySQL里名为utf8的字符集。
云服务器MySQL新建数据库和用户授权怎么做
云服务器上装MySQL,和普通Linux服务器步骤接近,多出来的是安全组和远程连接,建议把建库、建用户、授权放在同一次维护窗口完成:
CREATE DATABASE app_db DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER 'app_user'@'10.0.0.%' IDENTIFIED BY '替换为强密码'; GRANT SELECT, INSERT, UPDATE, DELETE ON app_db. TO 'app_user'@'10.0.0.%';
应用需要建表时,再补CREATE、ALTER、INDEX权限,生产环境不建议直接给ALL PRIVILEGES。app_user后面的主机位要按实际来源写,内网应用写内网网段,固定公网IP写固定IP,不要图省事写成。
宝塔面板怎么在服务器添加MySQL数据库
宝塔面板适合不想手写SQL的运维场景,操作路径通常是:登录宝塔面板,进入“数据库”,点击“添加数据库”,填写数据库名、用户名、密码,字符集选utf8mb4,访问权限按需选择“本地服务器”或“指定IP”。
提交后重点检查三处:
- 数据库列表里是否出现新库。
- 用户名和库名是否对应,不要用root账号给应用直连。
- 面板安全入口、服务器防火墙、云安全组是否放行对应端口,MySQL默认端口是3306,能不改公网暴露就不暴露。
面板创建的本质仍然是执行建库和授权SQL,后续迁移时,可以用面板导出SQL,也可以用mysqldump备份。
服务器上创建MySQL数据库的完整步骤:从登录到验证
登录与确认权限
先用管理账号登录,确认自己有CREATE权限,没有权限时,CREATE DATABASE会直接报错,不要急着改root密码,先看当前账号:
SELECT USER(), CURRENT_USER();
创建数据库并指定字符集
建库命令不复杂,关键是字符集和排序规则一次定好:
CREATE DATABASE app_db DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
如果库已经存在,CREATE DATABASE会报错,需要重复执行时可用CREATE DATABASE IF NOT EXISTS app_db ...,但生产环境更建议先确认库名,避免误建。
创建专用用户并授权
应用账号和数据库账号要分开,示例:
CREATE USER 'app_user'@'192.168.1.%' IDENTIFIED BY '替换为强密码'; GRANT SELECT, INSERT, UPDATE, DELETE ON app_db. TO 'app_user'@'192.168.1.%'; GRANT CREATE, ALTER, INDEX ON app_db. TO 'app_user'@'192.168.1.%';
授权后一般可直接验证,只有手工改过权限表时,才需要执行FLUSH PRIVILEGES。
验证连接与备份
在本机测试:
mysql -u app_user -p -h 127.0.0.1 -P 3306 app_db
远程测试把0.0.1换成服务器内网IP或公网IP,进入后执行:
SHOW DATABASES; SELECT DATABASE();
能看到的库和当前库正确,才算完成,建库后立刻做一次备份策略确认,比事后补更稳:
mysqldump -u root -p --single-transaction app_db > app_db_backup.sql
MySQL数据库创建时字符集怎么选:utf8mb4与latin1对比
字符集选错,后面会出现乱码、emoji存不进、索引长度变化等问题,行业共识认为,新业务库优先使用utf8mb4,据MySQL官方文档,utf8mb4是完整的UTF-8实现,而MySQL中名为utf8的字符集在较新版本里通常对应utf8mb3。
| 字符集 | 最大字节 | 适用场景 | 建议 |
|---|---|---|---|
| utf8mb4 | 4字节 | 新应用、中文、emoji、多语言 | 优先选 |
| utf8/utf8mb3 | 3字节 | 旧系统兼容 | 新库不选 |
| latin1 | 1字节 | 历史数据、特定遗留系统 | 非兼容需求不选 |
排序规则也要顺手确认。utf8mb4_unicode_ci兼容性较好,utf8mb4_0900_ai_ci是MySQL 8常见默认值,已有库不要随意改排序规则,先评估索引和查询影响。
服务器MySQL数据库创建需要多少钱:自建与云托管价格对比
价格不能只看“建库”这个动作,自建MySQL的软件本身不收费,成本在服务器、磁盘、备份和人力,云数据库把运维托管掉,费用体现在实例规格、存储、备份和网络,不同地域、不同规格差异较大,入门规格常见按月计费,高可用和更大存储会更高。
| 成本项 | 自建MySQL | 云数据库MySQL |
|---|---|---|
| 软件授权 | 社区版免费 | 按实例规格计费 |
| 服务器 | 需单独购买 | 通常包含在实例中 |
| 备份 | 自己写脚本、自己校验 | 控制台配置备份策略 |
| 运维 | 升级、慢查询、故障自己处理 | 平台承担较多基础运维 |
| 适合场景 | 学习、测试、可控内网业务 | 生产、团队协作、要求高可用 |
预算紧、数据量小、能接受自己维护,自建更灵活,业务不能停、缺少专职DBA,云托管更省心,价格比较要把备份和故障处理算进去,不能只比月费。
北京云服务器MySQL数据库添加流程
北京地域的云服务器添加MySQL,流程可以拆成五步:
- 购买北京地域的云服务器或云数据库实例。
- 安装MySQL,或直接在云数据库控制台创建实例。
- 在安全组中放行3306,来源限制为办公IP或应用服务器内网IP。
- 创建数据库、专用账号,并按最小权限授权。
- 用内网地址连接验证,公网地址非必要不开放。
如果应用和数据库都在北京地域,优先走内网连接,延迟和流量成本更可控,需要公网访问时,先确认域名备案和安全组规则,再考虑加白名单或跳板机,直接对0.0.0/0开放3306,风险很高。
常见坑:权限、防火墙、字符集
- 用户主机位写成
localhost,远程连接必然失败,远程账号要匹配来源IP或网段。 - 云安全组放行了,服务器防火墙没放行,CentOS可检查
firewall-cmd --list-ports,Ubuntu可检查ufw status。 - MySQL配置里
bind-address仍为0.0.1,只监听本机,需要远程时改配置并重启服务。 - 建库用了
utf8,emoji和四字节字符写入失败,新库直接用utf8mb4。 - 应用直接用root连接,应建专用账号,按库授权,限制来源IP。
- 只建库不备份,建库当天就把备份脚本和恢复演练排上。
收束一句:服务器上添加MySQL数据库并不难,难的是把字符集、专用账号、最小权限和网络访问范围一次做对,按“建库、建用户、授权、验证、备份”的顺序走,后面迁移和排错会省很多事。
关于怎么在服务器上添加MySQL数据库的常见问题
创建数据库后客户端连不上,先查什么?
先查MySQL服务是否运行,再查端口是否监听,然后看云安全组和服务器防火墙,最后确认用户的主机位、密码和认证插件,命令层面可用ss -lntp | grep 3306看监听地址,用mysql -u 用户 -p -h 地址 -P 3306复现连接过程。
能不能直接用root远程连接MySQL?
不建议,root应限制在本机或跳板机,应用使用专用账号,并按库授予SELECT、INSERT、UPDATE、DELETE等必要权限,需要远程管理时,用SSH隧道或跳板机,比直接开放root远程更稳妥。
建库时字符集选utf8还是utf8mb4?
新库选utf8mb4,MySQL中的utf8在较新版本里通常是utf8mb3,最多3字节,遇到四字节字符会出问题,据MySQL官方文档,新应用应优先使用utf8mb4作为默认字符集。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/774675.html


