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

VAuditDemo文件漏洞
目录 VAuditDemo文件漏洞 一、首页文件包含漏洞 包含图片马 利用伪协议phar:// 构造shell.inc被压缩为shell.zip,然后更改shell.zip 为 shell.jpg上传 二、任意文件读取漏洞 avatar.php updateAvatar.php logCheck.php 任意文件读取漏洞利用 VAuditDemo文件…...

[Meachines] [Medium] poison LFI+日志投毒+VNC权限提升
信息收集 IP AddressOpening Ports10.10.10.84TCP:22,80 $ nmap -p- 10.10.10.84 --min-rate 1000 -sC -sV 22/tcp open ssh OpenSSH 7.2 (FreeBSD 20161230; protocol 2.0) | ssh-hostkey: | 2048 e3:3b:7d:3c:8f:4b:8c:f9:cd:7f:d2:3a:ce:2d:ff:bb (RSA) | 256 …...

EtherCAT运动控制器上位机开发之Python+Qt(三):PDO配置与SDO读写
ZMC408CE控制器硬件介绍 ZMC408CE是正运动推出的一款多轴高性能EtherCAT总线运动控制器,具有EtherCAT、EtherNET、RS232、CAN和U盘等通讯接口,ZMC系列运动控制器可应用于各种需要脱机或联机运行的场合。 ZMC408CE支持8轴运动控制,最多可扩展…...

MyBatis源码系列1(使用JDBC查询数据)
使用原生jdbc进行查询数据步骤. 1、加载驱动2、获取数据库连接3、创建Statement对象4、占位符赋值5、执行脚本6、解析结果7、关闭资源 代码示例 public class T0 {public static void main(String[] args) throws Exception {String sql "SELECT id,name FROM goods WH…...

【微服务】Nacos配置中心和客户端数据同步模式
一、Nacos概述 Nacos是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。它提供了一组简单易用的特性集,帮助用户快速实现动态服务发现、服务配置、服务元数据及流量管理。 二、数据同步模式 1. 实时同步 Push模式:在服务端的配置信…...

WebRTC音视频开发读书笔记(六)
数据通道不仅可以发送文本消息, 还可以发送图片、二进制文件,将其类型binaryType属性设置成arraybuffer类型即可. 九\、文件传输 1、文件传输流程 (1)使用表单file打开本地文件 (2)使用FileReader读取文件的二进制数据 &#…...

高级列表组件ReList
高级列表组件ReList 组件实现基于 Vue3 Element Plus Typescript,同时引用 vueUse lodash-es tailwindCss (不影响功能,可忽略) 主要基于JSX风格实现高度动态的列表渲染组件,可以通过信息配置Metas配置控制信息项展示,同时支持…...

Vxe UI vue vxe-table 实现表格数据分组功能,根据字段数据分组
Vxe UI vue vxe-table 实现表格数据分组功能,根据字段数据分组 实现数据分组功能 基于树结构功能就可以直接实现数据分组功能,代码如下: <template><div><vxe-button status"primary" click"listToGroup()&…...

oracle创建账户
1、查看表空间 SELECT tablespace_name FROM user_tablespaces;2、创建用户 CREATE USER FLINKCDC2 IDENTIFIED BY "123456";也可以使用指定表空间的方式 CREATE USER FLINKCDC2 IDENTIFIED BY "123456" DEFAULT TABLESPACE LOGMINER_TBS QUOTA UNLIMIT…...

2024新型数字政府综合解决方案(五)
新型数字政府综合解决方案通过集成人工智能、大数据、区块链和云计算技术,打造了一个智能化、透明化和高效的政务服务平台,旨在提升政府服务的响应速度、处理效率和数据安全性。该方案实现了跨部门的数据共享与实时更新,通过智能化的流程自动…...