)
目录MySQL什么是MySQL?安装MySQL什么是云服务器安装 MySQLMySQL 云服务器安装的好处包管理器安装 MySQL 详细步骤CentOS/RHEL 系统安装 MySQL启动和启用 MySQL 服务安全配置 MySQL验证安装基本配置调整创建学习用数据库和用户验证完整安装MySQL什么是MySQL?MySQL 是一个目前最流行、应用最广泛的开源关系型数据库管理系统。 我们日常使用的许多网站、App如淘宝、微信、Facebook、YouTube的后台数据都存储在 MySQL 这样的数据库中。你可以把 MySQL 想象成一个能力超强、且免费的“数据管家”。 • 你的数据就是它的“货物”。 • 表就是它用来分门别类存放货物的“货架”。 • SQL 就是你向它下达的“指令”比如“把某个货物存进去”、“把某个货物找出来”。 • 而它的管理系统则确保了仓库的运作安全、高效、有序即使有成千上万人同时来存取货物也不会出错和混乱。安装MySQL路径一本地原生安装最传统这种方式直接在您的物理机操作系统上安装 MySQL。方式适用平台特点推荐场景操作系统包管理器Linux/macOS- 最简单、最集成- 自动服务管理- 通过系统仓库更新 生产环境、新手学习官方安装包Windows/macOS- 图形化向导- 自动配置- 包含官方工具集Windows/macOS 用户、新手源码编译安装所有平台- 极度灵活- 可深度定制- 过程复杂、耗时高级用户、特定优化需求、学习原理核心价值完全控制、性能直接、符合传统习惯。路径二容器化安装最现代、最推荐这种方式在隔离的容器环境中运行 MySQL是目前开发和测试的首选。方式核心技术特点推荐场景DockerRunDocker- 一行命令启动 - 环境隔离- 快速清理Docker ComposeDocker- 声明式配置- 可定义数据卷、网络- 易于复现环境开发环境、微服务架构、团队协作PodmanPodman- 兼容 Docker 命令- 无需守护进程- 更安全寻求 Docker 替代品的用户核心价值环境隔离、快速部署、一致性、易于管理。路径三集成化安装最便捷这种方式将 MySQL 与其他必要的开发工具打包在一起一键安装。方式包含组件特点推荐场景XAMPP / WAMP / MAMPApache, MySQL, PHP- 真正的一键安装- 开箱即用- 配置预优化PHP全栈初学者、快速搭建本地网站Laravel HomesteadVagrant Box- 预配置的完整Linux开发环境- 与生产环境高度一致Laravel 框架开发者什么是云服务器安装 MySQL这指的是在一台由云服务商提供的远程虚拟服务器上手动安装和配置 MySQL。• 底层云服务商阿里云、腾讯云、AWS等提供硬件和虚拟化• 上层你拥有完整的操作系统权限像管理物理服务器一样安装和管理 MySQL简单来说云服务器安装 MySQL指的是在一台远程的、由云服务商提供的虚拟计算机上手动安装和配置 MySQL 数据库软件。MySQL 云服务器安装的好处在云服务器上安装 MySQL意味着你拥有一个在云环境中的、完整的、可远程访问的虚拟服务器并在其上手动安装和配置 MySQL。这种方式的好处主要体现在 灵活性、控制力和成本效益上。完全的掌控权和灵活性版本选择自由你可以安装任何版本的 MySQL社区版、企业版甚至是 MariaDB、Percona Server 等分支版本不受云服务商提供的托管数据库版本限制。深度自定义配置可以完全控制 my.cnf 配置文件根据具体业务需求对数据库进行极致的性能调优如缓冲池大小、连接数、日志设置等。安装任意软件你可以在同一台服务器上安装与 MySQL 配套的其他应用如 Web 服务器、缓存Redis、监控代理等架构设计更灵活。成本优化对于特定场景如果你的数据库资源利用率很高并且能长期稳定运行那么购买一台配置合适的云服务器可能比使用按小时计费的云数据库如 AWS RDS更便宜。你无需为云数据库服务附带的“管理费”买单。技能复用和迁移便利对于熟悉传统服务器运维的 DBA 和开发人员来说管理云服务器上的 MySQL 与管理物理机或虚拟机上的几乎没有区别学习成本低。数据库文件和配置方式都是标准的可以相对容易地在不同云平台甚至本地环境之间进行迁移避免了云厂商的“锁定”。网络和性能控制你可以将云服务器和应用服务器放置在同一个虚拟私有云VPC内通过内网通信获得低延迟、高带宽、安全的网络环境。可以选择 SSD 云盘或本地 SSD 盘针对 I/O 密集型业务进行优化。适用场景需要高度自定义配置、有特定的版本需求、希望节省成本且拥有专业运维团队的公司。在云服务器上最推荐 包管理器安装最推荐# CentOS/RHELsudoyuminstallmysql-server# 或sudodnfinstallmysql-server# Ubuntu/Debiansudoaptupdatesudoaptinstallmysql-server包管理器安装 MySQL 详细步骤CentOS/RHEL 系统安装 MySQL添加 MySQL 官方仓库推荐获取最新版本# 下载 MySQL 官方仓库配置wgethttps://dev.mysql.com/get/mysql80-community-release-el7-9.noarch.rpm# 安装仓库 RPM 包rpm-Uvhmysql80-community-release-el7-9.noarch.rpm# 验证仓库是否添加成功yum repolist enabled|grepmysql.*-community.*安装 MySQL 服务器# 安装 MySQL 服务器和客户端yuminstall-ymysql-community-server mysql-community-client# 安装常用的 MySQL 工具yuminstall-ymysql-community-common mysql-community-devel如果不想用官方仓库使用系统自带版本# 使用系统自带仓库版本可能较老yuminstall-ymysql-server mysql-client启动和启用 MySQL 服务启动 MySQL 服务bash# 启动 MySQL 服务systemctl start mysqld# 设置开机自启动systemctlenablemysqld# 检查服务状态systemctl status mysqld查看服务状态确认# 应该看到 active (running) 状态systemctl status mysqld# 检查 MySQL 进程psaux|grepmysql# 检查端口监听netstat-ln|grep3306# 或使用ss-tlnp|grep3306安全配置 MySQL获取初始临时密码# MySQL 8.0 会生成临时密码查看日志获取greptemporary password/var/log/mysqld.log# 如果找不到尝试新版本可能在不同位置greptemporary password/var/log/mysql/mysqld.log 输出示例 text2023-01-01T00:00:00.000000Z6[Note][MY-010454][Server]A temporary password is generatedforrootlocalhost: Abc123!#xyz记下这个临时密码Abc123!#xyz运行安全配置脚本# 运行安全安装向导mysql_secure_installation安全配置交互步骤按照提示依次操作1. 输入临时密码 Enter passwordforuser root:[输入刚才记下的临时密码]2. 重置 root 密码 The existing passwordforthe user account root has expired. Pleaseseta new password. New password:[输入新密码]Re-enter new password:[再次输入新密码]注意MySQL8.0要求强密码包含大小写字母、数字、特殊字符3. 移除匿名用户 Remove anonymous users?(Press y|YforYes, any other keyforNo):y4. 禁止 root 远程登录 Disallow root login remotely?(Press y|YforYes, any other keyforNo):y5. 移除测试数据库 Removetestdatabase and access to it?(Press y|YforYes, any other keyforNo):y6. 重新加载权限表 Reload privilege tables now?(Press y|YforYes, any other keyforNo):y验证安装测试登录 MySQL# 使用新密码登录mysql-uroot-p执行基本测试命令-- 显示 MySQL 版本SELECTVERSION();-- 显示当前用户SELECTUSER();-- 显示所有数据库SHOWDATABASES;-- 退出 MySQLEXIT;检查安装的文件位置# 查看 MySQL 相关文件# 配置文件ls-l/etc/my.cnf# 数据目录ls-l/var/lib/mysql/# 日志文件ls-l/var/log/mysqld.log基本配置调整编辑配置文件# 备份原始配置cp/etc/my.cnf /etc/my.cnf.backup# 编辑配置文件vi/etc/my.cnf添加基础配置在 [mysqld] 部分[mysqld] # 字符集设置 character-set-server utf8mb4 collation-server utf8mb4_unicode_ci # 基础性能设置根据服务器内存调整 innodb_buffer_pool_size 128M # 允许最大连接数 max_connections 100 # 错误日志 log-error /var/log/mysqld.log # 慢查询日志可选用于学习 slow_query_log 1 slow_query_log_file /var/log/mysql-slow.log long_query_time 2重启 MySQL 使配置生效# 重启 MySQL 服务systemctl restart mysqld# 确认服务正常运行systemctl status mysqld创建学习用数据库和用户登录 MySQLmysql-uroot-p创建专用学习数据库和用户-- 创建学习数据库CREATEDATABASElearn_mysql;-- 创建专用用户更安全CREATEUSERstudy_userlocalhostIDENTIFIEDBYStudy123!#;-- 授予权限GRANTALLPRIVILEGESONlearn_mysql.*TOstudy_userlocalhost;-- 刷新权限FLUSHPRIVILEGES;-- 验证用户创建SELECTuser,hostFROMmysql.user;-- 退出EXIT;测试新用户# 使用新创建的用户登录mysql-ustudy_user-plearn_mysql验证完整安装最终验证步骤# 1. 检查服务状态systemctl status mysqld# 2. 测试 root 登录mysql-uroot-p-eSELECT VERSION();# 3. 测试学习用户登录mysql-ustudy_user-p-eSHOW DATABASES;# 4. 检查端口监听netstat-tlnp|grep3306