当前位置: 首页 > news >正文

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
  1. 运行下载的安装程序,选择 CustomFull 安装类型,Full 安装包括所有组件,而 Custom 可以让你选择需要的组件。
  2. 在安装过程中,您可以选择安装 MySQL Server、MySQL Workbench、MySQL Shell 等组件。
  3. 在配置步骤中,设置 root 用户密码,并根据需求创建新的用户。
  4. 选择数据库存储引擎,通常选择 InnoDB。
  5. 配置 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.cnfmy.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&#xff08…...

大话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改进,预测多标签任务 先验框&#xf…...

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网络虚拟化

本章帮助网络工程师或架构师回答如下问题&#xff1a; 什么是网络虚拟化?网络虚拟化有哪些用途?网络虚拟化领域内有哪些不同的技术方向?网络虚拟化的控制面有哪些选择?当使用 VXLAN 时如何进行桥接和路由&#xff1f; 什么是网络虚拟化&#xff1f; 网络虚拟化可以让网络…...

奥威BI数据可视化展示:如何充分发挥数据价值

奥威BI数据可视化展示&#xff1a;如何充分发挥数据价值 在大数据时代&#xff0c;数据已成为企业最宝贵的资产之一。然而&#xff0c;仅仅拥有海量数据并不足以带来竞争优势&#xff0c;关键在于如何有效地挖掘、分析和展示这些数据&#xff0c;从而转化为有价值的洞察和决策…...

jenkins工具配置

上一篇&#xff08;https://blog.csdn.net/abc666_666/article/details/141207741&#xff09;文章我们介绍了基于docker安装jenkins的过程&#xff0c;本文将介绍如何配置jenkins的相关全局工具如maven、 jdk以及git等 配置的页面如下&#xff1a; 打开后的页面如下&#xff…...

进程地址空间(比特课总结)

一、进程地址空间 1. 环境变量 1 &#xff09;⽤户级环境变量与系统级环境变量 全局属性&#xff1a;环境变量具有全局属性&#xff0c;会被⼦进程继承。例如当bash启动⼦进程时&#xff0c;环 境变量会⾃动传递给⼦进程。 本地变量限制&#xff1a;本地变量只在当前进程(ba…...

【JavaEE】-- HTTP

1. HTTP是什么&#xff1f; HTTP&#xff08;全称为"超文本传输协议"&#xff09;是一种应用非常广泛的应用层协议&#xff0c;HTTP是基于TCP协议的一种应用层协议。 应用层协议&#xff1a;是计算机网络协议栈中最高层的协议&#xff0c;它定义了运行在不同主机上…...

Go 语言接口详解

Go 语言接口详解 核心概念 接口定义 在 Go 语言中&#xff0c;接口是一种抽象类型&#xff0c;它定义了一组方法的集合&#xff1a; // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的&#xff1a; // 矩形结构体…...

Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具

文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...

镜像里切换为普通用户

如果你登录远程虚拟机默认就是 root 用户&#xff0c;但你不希望用 root 权限运行 ns-3&#xff08;这是对的&#xff0c;ns3 工具会拒绝 root&#xff09;&#xff0c;你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案&#xff1a;创建非 roo…...

Python爬虫(二):爬虫完整流程

爬虫完整流程详解&#xff08;7大核心步骤实战技巧&#xff09; 一、爬虫完整工作流程 以下是爬虫开发的完整流程&#xff0c;我将结合具体技术点和实战经验展开说明&#xff1a; 1. 目标分析与前期准备 网站技术分析&#xff1a; 使用浏览器开发者工具&#xff08;F12&…...

根据万维钢·精英日课6的内容,使用AI(2025)可以参考以下方法:

根据万维钢精英日课6的内容&#xff0c;使用AI&#xff08;2025&#xff09;可以参考以下方法&#xff1a; 四个洞见 模型已经比人聪明&#xff1a;以ChatGPT o3为代表的AI非常强大&#xff0c;能运用高级理论解释道理、引用最新学术论文&#xff0c;生成对顶尖科学家都有用的…...

LangChain知识库管理后端接口:数据库操作详解—— 构建本地知识库系统的基础《二》

这段 Python 代码是一个完整的 知识库数据库操作模块&#xff0c;用于对本地知识库系统中的知识库进行增删改查&#xff08;CRUD&#xff09;操作。它基于 SQLAlchemy ORM 框架 和一个自定义的装饰器 with_session 实现数据库会话管理。 &#x1f4d8; 一、整体功能概述 该模块…...

MySQL 8.0 事务全面讲解

以下是一个结合两次回答的 MySQL 8.0 事务全面讲解&#xff0c;涵盖了事务的核心概念、操作示例、失败回滚、隔离级别、事务性 DDL 和 XA 事务等内容&#xff0c;并修正了查看隔离级别的命令。 MySQL 8.0 事务全面讲解 一、事务的核心概念&#xff08;ACID&#xff09; 事务是…...

宇树科技,改名了!

提到国内具身智能和机器人领域的代表企业&#xff0c;那宇树科技&#xff08;Unitree&#xff09;必须名列其榜。 最近&#xff0c;宇树科技的一项新变动消息在业界引发了不少关注和讨论&#xff0c;即&#xff1a; 宇树向其合作伙伴发布了一封公司名称变更函称&#xff0c;因…...