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等 配置的页面如下: 打开后的页面如下ÿ…...

19c补丁后oracle属主变化,导致不能识别磁盘组
补丁后服务器重启,数据库再次无法启动 ORA01017: invalid username/password; logon denied Oracle 19c 在打上 19.23 或以上补丁版本后,存在与用户组权限相关的问题。具体表现为,Oracle 实例的运行用户(oracle)和集…...
SciencePlots——绘制论文中的图片
文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了:一行…...
day52 ResNet18 CBAM
在深度学习的旅程中,我们不断探索如何提升模型的性能。今天,我将分享我在 ResNet18 模型中插入 CBAM(Convolutional Block Attention Module)模块,并采用分阶段微调策略的实践过程。通过这个过程,我不仅提升…...
DockerHub与私有镜像仓库在容器化中的应用与管理
哈喽,大家好,我是左手python! Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库,用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...
WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)
一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解,适合用作学习或写简历项目背景说明。 🧠 一、概念简介:Solidity 合约开发 Solidity 是一种专门为 以太坊(Ethereum)平台编写智能合约的高级编…...
【C语言练习】080. 使用C语言实现简单的数据库操作
080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...
JDK 17 新特性
#JDK 17 新特性 /**************** 文本块 *****************/ python/scala中早就支持,不稀奇 String json “”" { “name”: “Java”, “version”: 17 } “”"; /**************** Switch 语句 -> 表达式 *****************/ 挺好的ÿ…...

GO协程(Goroutine)问题总结
在使用Go语言来编写代码时,遇到的一些问题总结一下 [参考文档]:https://www.topgoer.com/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B/goroutine.html 1. main()函数默认的Goroutine 场景再现: 今天在看到这个教程的时候,在自己的电…...
Caliper 负载(Workload)详细解析
Caliper 负载(Workload)详细解析 负载(Workload)是 Caliper 性能测试的核心部分,它定义了测试期间要执行的具体合约调用行为和交易模式。下面我将全面深入地讲解负载的各个方面。 一、负载模块基本结构 一个典型的负载模块(如 workload.js)包含以下基本结构: use strict;/…...
根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的----NTFS源代码分析--重要
根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的 第一部分: 0: kd> g Breakpoint 9 hit Ntfs!ReadIndexBuffer: f7173886 55 push ebp 0: kd> kc # 00 Ntfs!ReadIndexBuffer 01 Ntfs!FindFirstIndexEntry 02 Ntfs!NtfsUpda…...