MySQL 安装与配置指南
MySQL 是一种广泛使用的关系型数据库管理系统,为各种应用程序提供高效的数据存储和管理解决方案。本文将介绍如何在不同的操作系统中安装 MySQL,以及如何进行基本的配置,以确保数据库系统的最佳性能和稳定性。
一、环境准备
1.1 系统要求
在安装 MySQL 之前,确保您的系统满足以下最低要求:
- 处理器:支持 x86_64 或 ARM 架构的 CPU。
- 内存:至少 512MB RAM,建议 1GB 以上。
- 硬盘空间:至少 500MB 可用空间,用于安装 MySQL 服务器和数据库文件。
具体的系统要求可能因 MySQL 版本和预期负载的不同而有所变化。在生产环境中,建议根据应用需求合理配置系统资源。
1.2 常见操作系统支持
MySQL 支持多种主流操作系统,包括但不限于:
- Windows:支持 Windows 10 及更高版本,Windows Server 2012 及以上版本。
- Linux:支持 Ubuntu、CentOS、Debian、Red Hat、Fedora 等发行版。
- macOS:支持 macOS 10.13 及更高版本。
- Docker:可以通过 Docker 容器快速部署 MySQL。
根据您的操作系统选择合适的安装方式,下面我们将详细介绍各个系统的安装步骤。
二、MySQL 安装
2.1 Windows 安装
1. 下载 MySQL Installer
首先,从 MySQL 官方网站下载 MySQL Installer for Windows。MySQL Installer 提供了图形化的安装界面,方便用户快速安装 MySQL 及相关工具。
2. 安装 MySQL
- 运行下载的安装程序,选择
Custom或Full安装类型,Full安装包括所有组件,而Custom可以让你选择需要的组件。 - 在安装过程中,您可以选择安装 MySQL Server、MySQL Workbench、MySQL Shell 等组件。
- 在配置步骤中,设置 root 用户密码,并根据需求创建新的用户。
- 选择数据库存储引擎,通常选择 InnoDB。
- 配置 MySQL 为 Windows 服务,以便系统启动时自动运行。
安装完成后,您可以通过 MySQL Workbench 连接和管理数据库。
2.2 Linux 安装
1. 使用 APT 或 YUM 安装
在 Linux 上安装 MySQL 可以通过系统的包管理器来完成。以 Ubuntu 和 CentOS 为例:
- Ubuntu/Debian
sudo apt update
sudo apt install mysql-server
- CentOS/RHEL
sudo yum update
sudo yum install mysql-server
2. 初始化数据库
安装完成后,使用以下命令初始化 MySQL 数据库:
sudo mysql_secure_installation
该命令将引导您设置 root 密码、移除匿名用户、禁用远程 root 登录以及删除测试数据库,以提高数据库安全性。
2.3 macOS 安装
1. 使用 Homebrew 安装
在 macOS 上,您可以使用 Homebrew 轻松安装 MySQL:
brew update
brew install mysql
2. 启动 MySQL
安装完成后,使用以下命令启动 MySQL 服务:
brew services start mysql
您也可以通过以下命令停止 MySQL 服务:
brew services stop mysql
2.4 Docker 中的 MySQL
如果您更倾向于使用容器化方式部署 MySQL,可以通过 Docker 快速启动 MySQL 容器。
1. 拉取 MySQL 镜像
首先,从 Docker Hub 拉取最新的 MySQL 镜像:
docker pull mysql:latest
2. 启动 MySQL 容器
使用以下命令启动 MySQL 容器:
docker run --name mysql-container -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:latest
这将启动一个 MySQL 容器,并设置 root 用户密码为 my-secret-pw。
3. 连接 MySQL 容器
您可以使用以下命令进入 MySQL 容器并连接到 MySQL 实例:
docker exec -it mysql-container mysql -uroot -p
三、配置 MySQL
3.1 MySQL 配置文件
MySQL 的主要配置文件为 my.cnf 或 my.ini,该文件包含了 MySQL 服务器的所有配置选项。配置文件的位置因操作系统而异:
- Linux:通常位于
/etc/mysql/my.cnf或/etc/my.cnf。 - Windows:通常位于
C:\ProgramData\MySQL\MySQL Server X.Y\my.ini。 - macOS:通常位于
/usr/local/etc/my.cnf。
3.2 常用配置选项详解
以下是一些常见的配置选项,您可以根据系统需求进行调整:
bind-address:用于指定 MySQL 服务器监听的 IP 地址,默认情况下是127.0.0.1,如果需要远程连接,可以设置为0.0.0.0。max_connections:设置 MySQL 允许的最大并发连接数,默认值为 151,您可以根据服务器性能和应用需求调整该值。innodb_buffer_pool_size:用于设置 InnoDB 缓冲池的大小,推荐将其设置为系统总内存的 50%-75%。log_error:指定错误日志文件的位置,便于排查问题。slow_query_log:启用慢查询日志,记录执行时间超过指定阈值的查询,默认阈值为 10 秒。
3.3 设置字符集与排序规则
为了避免字符编码问题,建议将 MySQL 的默认字符集设置为 utf8mb4,并使用 utf8mb4_unicode_ci 作为默认排序规则:
[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci[client]
default-character-set=utf8mb4
此配置确保 MySQL 在存储和检索数据时支持多种语言字符集,并且能够正确处理 Emoji 等多字节字符。
四、启动与关闭 MySQL
4.1 Windows 服务管理
在 Windows 上安装 MySQL 时,您可以将其作为 Windows 服务管理。以下是一些常用的服务管理命令:
- 启动 MySQL 服务:
net start mysql
- 停止 MySQL 服务:
net stop mysql
- 重启 MySQL 服务:
net stop mysql && net start mysql
4.2 Linux 系统服务管理
在 Linux 系统中,MySQL 通常作为系统服务管理。以下是一些常用的系统服务管理命令:
- 启动 MySQL:
sudo systemctl start mysql
- 停止 MySQL:
sudo systemctl stop mysql
- 重启 MySQL:
sudo systemctl restart mysql
- 查看 MySQL 服务状态:
sudo systemctl status mysql
4.3 使用命令行启动和关闭
除了使用服务管理工具,您也可以直接通过命令行启动或关闭 MySQL:
- 启动 MySQL:
mysqld_safe &
- 关闭 MySQL:
mysqladmin -u root -p shutdown
这种方式在调试或临时管理 MySQL 时非常有用。
五、总结
MySQL 的安装与配置并不复杂,本文详细介绍了如何在不同操作系统中安装 MySQL,以及如何进行基本配置。通过合理的配置,您可以确保 MySQL 在各种环境中高效、稳定地运行。无论是在 Windows、Linux、macOS 还是 Docker 中,掌握这些基本操作将帮助您更好地管理和维护 MySQL 数据库系统。
相关文章:
MySQL 安装与配置指南
MySQL 是一种广泛使用的关系型数据库管理系统,为各种应用程序提供高效的数据存储和管理解决方案。本文将介绍如何在不同的操作系统中安装 MySQL,以及如何进行基本的配置,以确保数据库系统的最佳性能和稳定性。 一、环境准备 1.1 系统要求 …...
android13布局查看工具 无源码查看布局 在线查找ui布局id
总纲 android13 rom 开发总纲说明 目录 1.前言 2.工具介绍 2.1工具1 2.2工具2 2.3工具3 2.4工具4 3.彩蛋 1.前言 Android 13提供了一些工具来帮助开发人员查看和优化应用的布局。方便的让我们找到具体应用的布局文件等信息。 2.工具介绍 2.1工具1 老版本DDMS&#x…...
【自动化测试必学语言】python:UnitTest框架
目录 介绍 框架 什么是UnitTest框架? 为什么使用UnitTest框架? UnitTest核心要素(unitest 的组成部分) 1.TestCase(最核心的模块) 2.TestSuite 3.TestRunner 4.TestLoader 5.Fixture TestCase(…...
大话LLM之向量数据库
向量数据库是一种专门设计的存储系统,旨在高效处理和查询高维向量数据,通常用于人工智能和机器学习应用中,以实现快速准确的数据检索。 好的,今天我们就来聊聊人工智能和向量数据库的事儿。现在人工智能发展得特别快,特…...
EmguCV学习笔记 C# 2.2 Matrix类
版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。 EmguCV学习笔记目录 Vb.net EmguCV学习笔记目录 C# 笔者的博客网址:VB.Net-CSDN博客 教程相关说明以及如何获得pdf教…...
[Windows CMD] 查看网络连接状态 netstat -na | findstr “TCP“
在 Windows 系统中,我们可以使用 netstat 命令来查看网络连接状态,并使用 findstr 命令来过滤出 TCP 和 UDP 的连接。 查看所有网络连接的状态 netstat -na netstat -na: 显示所有网络连接的状态,-n 表示显示数字地址而非域名,…...
「OC」视图控制器的懒加载策略
「OC」视图控制器的懒加载策略 文章目录 「OC」视图控制器的懒加载策略懒加载懒加载的优点常见的懒加载实现方法使用懒加载的注意事项 控制器的懒加载参考资料 懒加载 懒加载(Lazy Loading)是一种设计模式,其核心思想是在需要时才进行对象的…...
android studio 中 .gitignore 文件改动后 忽略的文件夹或文件无效
问题原因:已跟踪文件的缓存问题: 如果之前已经跟踪了这些文件(即它们已经被 Git 加入到版本控制中),即使你在 .gitignore 文件中添加了忽略规则,Git 仍然会显示这些文件。你需要先从 Git 中移除这些文件&am…...
鸿蒙 next 实现摄像头视频预览编码(一)
鸿蒙 next 即将发布,让我们先喊3遍 遥遥领先~ 遥遥领先~ 遥遥领先~ 作为一门新的系统,本人也是刚入门学习中,如果对于一些理解有问题的,欢迎即使指出哈 首先这里要讲一下,在鸿蒙 next 中,要实现摄像头预览…...
YOLO-V3
一、概述 最大的改进就是网络结构,使其更适合小目标检测特征做的更细致,融入多持续特征图信息来预测不同规格物体先验框更丰富了,3种scale,每种3个规格,一共9种softmax改进,预测多标签任务 先验框…...
golang提案,内置 Go 错误检查函数
先来狠狠吐个槽 要吐槽 Go1 的 error ,那咱得先整明白大家为啥都猛喷它的错误处理做得不咋地。在 Go 语言里头,error 本质上其实就是个 Error 的接口: type error interface {Error() string }实际的应用场景如下: func main()…...
零售业务产品系统应用架构设计(三)
智慧物业依据《住房和城乡建设部等部门关于推动物业服务企业加快发展线上线下生活服务的意见建房〔2020〕99号》,推动物业管理公司广泛运用5G、互联网、物联网、云计算、大数据、区块链和人工智能等技术,建设智慧物业管理服务平台,对接城市信息模型(CIM)和城市运行管理服务…...
【GD32】从零开始学GD32单片机 | PMU电源管理单元+深度睡眠和待机例程(GD32F470ZGT6)
1. 简介 PMU电源管理单元通俗讲就是用来管理MCU的电源域的,它主要有两个功能——电压监测和低功耗管理。在GD32中一共有3个电源域——VDD/VDDA域、1.2V域和备份域。 VDD/VDDA域主要供PMU控制器、ADC、DAC等外设使用;1.2V域就是大部分外设都会使用的电源域…...
公司员工电脑桌面太乱如何解决?桌面管理软件一招解决!
“工欲善其事,必先利其器。” 在数字化管理的时代背景下,选择合适的桌面管理软件就如同为企业网络管理装上了一双慧眼。 员工的电脑桌面往往因为长时间的使用而变得杂乱无章,这不仅影响了工作效率,还可能给企业信息安全带来隐患。…...
leetcode:2119. 反转两次的数字(python3解法)
难度:简单 反转 一个整数意味着倒置它的所有位。 例如,反转 2021 得到 1202 。反转 12300 得到 321 ,不保留前导零 。 给你一个整数 num ,反转 num 得到 reversed1 ,接着反转 reversed1 得到 reversed2 。如果 reverse…...
5.vue中axios封装工程化
vue工程化中axios封装 视频演示地址:https://www.bilibili.com/video/BV121egeQEHg/?vd_source0f4eae2845bd3b24b877e4586ffda69a 通常我们封装需要封装request.js基础的发送请求工具类,再根据业务封装service类,service类是具体业务的接口…...
实验六:动态数码管实验
实验结果图,从右到左0-7,从左到右7-0,来回滚动。 硬件接线图: 具体看图,不说了,前面讲过,自己查资料就可以,资料得慢慢查,熟练就好了,不浪费时间和版面了 main.c代码 #include<reg52.h>typedef unsigned int u16; typedef unsigned char u8;#define SMG P0 …...
《Cloud Native Data Center Networking》(云原生数据中心网络设计)读书笔记 -- 05网络虚拟化
本章帮助网络工程师或架构师回答如下问题: 什么是网络虚拟化?网络虚拟化有哪些用途?网络虚拟化领域内有哪些不同的技术方向?网络虚拟化的控制面有哪些选择?当使用 VXLAN 时如何进行桥接和路由? 什么是网络虚拟化? 网络虚拟化可以让网络…...
奥威BI数据可视化展示:如何充分发挥数据价值
奥威BI数据可视化展示:如何充分发挥数据价值 在大数据时代,数据已成为企业最宝贵的资产之一。然而,仅仅拥有海量数据并不足以带来竞争优势,关键在于如何有效地挖掘、分析和展示这些数据,从而转化为有价值的洞察和决策…...
jenkins工具配置
上一篇(https://blog.csdn.net/abc666_666/article/details/141207741)文章我们介绍了基于docker安装jenkins的过程,本文将介绍如何配置jenkins的相关全局工具如maven、 jdk以及git等 配置的页面如下: 打开后的页面如下ÿ…...
HTML 语义化
目录 HTML 语义化HTML5 新特性HTML 语义化的好处语义化标签的使用场景最佳实践 HTML 语义化 HTML5 新特性 标准答案: 语义化标签: <header>:页头<nav>:导航<main>:主要内容<article>&#x…...
JavaScript 中的 ES|QL:利用 Apache Arrow 工具
作者:来自 Elastic Jeffrey Rengifo 学习如何将 ES|QL 与 JavaScript 的 Apache Arrow 客户端工具一起使用。 想获得 Elastic 认证吗?了解下一期 Elasticsearch Engineer 培训的时间吧! Elasticsearch 拥有众多新功能,助你为自己…...
边缘计算医疗风险自查APP开发方案
核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...
【入坑系列】TiDB 强制索引在不同库下不生效问题
文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...
【python异步多线程】异步多线程爬虫代码示例
claude生成的python多线程、异步代码示例,模拟20个网页的爬取,每个网页假设要0.5-2秒完成。 代码 Python多线程爬虫教程 核心概念 多线程:允许程序同时执行多个任务,提高IO密集型任务(如网络请求)的效率…...
【Go语言基础【13】】函数、闭包、方法
文章目录 零、概述一、函数基础1、函数基础概念2、参数传递机制3、返回值特性3.1. 多返回值3.2. 命名返回值3.3. 错误处理 二、函数类型与高阶函数1. 函数类型定义2. 高阶函数(函数作为参数、返回值) 三、匿名函数与闭包1. 匿名函数(Lambda函…...
20个超级好用的 CSS 动画库
分享 20 个最佳 CSS 动画库。 它们中的大多数将生成纯 CSS 代码,而不需要任何外部库。 1.Animate.css 一个开箱即用型的跨浏览器动画库,可供你在项目中使用。 2.Magic Animations CSS3 一组简单的动画,可以包含在你的网页或应用项目中。 3.An…...
Linux nano命令的基本使用
参考资料 GNU nanoを使いこなすnano基础 目录 一. 简介二. 文件打开2.1 普通方式打开文件2.2 只读方式打开文件 三. 文件查看3.1 打开文件时,显示行号3.2 翻页查看 四. 文件编辑4.1 Ctrl K 复制 和 Ctrl U 粘贴4.2 Alt/Esc U 撤回 五. 文件保存与退出5.1 Ctrl …...
逻辑回归暴力训练预测金融欺诈
简述 「使用逻辑回归暴力预测金融欺诈,并不断增加特征维度持续测试」的做法,体现了一种逐步建模与迭代验证的实验思路,在金融欺诈检测中非常有价值,本文作为一篇回顾性记录了早年间公司给某行做反欺诈预测用到的技术和思路。百度…...
前端中slice和splic的区别
1. slice slice 用于从数组中提取一部分元素,返回一个新的数组。 特点: 不修改原数组:slice 不会改变原数组,而是返回一个新的数组。提取数组的部分:slice 会根据指定的开始索引和结束索引提取数组的一部分。不包含…...
