MySQL安装实战分享

news2025/4/19 13:36:08

一、在 Windows 上安装 MySQL

1. 下载 MySQL 安装包

  • 访问 MySQL 官方下载页面。
  • 选择适合你操作系统的版本。一般推荐下载 MySQL Installer

2. 运行安装程序

  • 双击下载的安装文件(例如 mysql-installer-community-<version>.msi)。
  • 如果出现安全提示,选择“运行”以继续安装。

3. 安装选项

  • 选择安装类型
    • 在安装向导中,你将看到多种选项:
      • Developer Default:适合开发者使用,包含 MySQL Server、MySQL Workbench、MySQL Shell 等工具。
      • Server Only:仅安装 MySQL Server。
      • Client Only:仅安装客户端工具。
      • Full:安装所有 MySQL 组件。
      • Custom:选择特定组件安装。

4. 配置 MySQL 服务器

  • 选择 Server Configuration Type

    • Development Machine:适合开发环境,分配较少的资源。
    • Server Machine:适合生产服务器,分配更多资源。
    • Dedicated Machine:资源完全分配给 MySQL,适合高负载环境。
  • 选择 Authentication Method

    • 选择 Use Strong Password Encryption 这是默认选项,推荐使用。

5. 设置 MySQL 账户

  • 输入 root 用户的密码。确保密码强度高,建议使用混合字符(如字母、数字和符号)。

6. 其他配置

  • 数据库文件位置:可以选择默认设置,或指定其他路径保存数据库文件。
  • Windows 服务设置:可选择将 MySQL 作为服务安装并设置自启动。

7. 完成安装并启动 MySQL

  • 按照提示完成安装。
  • 安装完毕后,可以选择启动 MySQL Shell 来验证安装是否成功。
  • 在 Windows 上,你可以在命令提示符下运行以下命令:
//bash
mysql -u root -p  

 输入刚才设置的 root 密码,你将进入 MySQL 提示符。

二、在 Linux 上安装 MySQL

以下步骤以 Ubuntu 为例,外其他发行版可能会有稍微不同的命令,但整体流程相似。

1. 更新系统软件包

在终端中输入以下命令,确保你的系统是最新的:

//bash
sudo apt update  
sudo apt upgrade  

2. 安装 MySQL

执行以下命令来安装 MySQL Server:

//bash
sudo apt install mysql-server  

安装过程中,系统可能会提示安装所需的其他依赖。

3. 启动 MySQL 服务

  • 安装完成后,MySQL 服务通常会自动启动。你可以通过以下命令检查其状态:
//bash
sudo systemctl status mysql  

如果未运行,可以使用以下命令启动 MySQL:

//bash
sudo systemctl start mysql  

4. 安全配置 MySQL

运行以下命令进行安全配置,包括设置 root 密码、移除匿名用户、禁止远程登录等:

sudo mysql_secure_installation  

在向导中你会遇到以下步骤:

  • 设置 root 用户的密码
  • 移除匿名用户(推荐选择 “Y”)。
  • 禁止 root 用户远程登录(推荐选择 “Y”)。
  • 删除测试数据库(推荐选择 “Y”)。
  • 重新加载权限表(推荐选择 “Y”)。

5. 测试 MySQL 是否正常运行

用以下命令登录 MySQL:

mysql -u root -p  

输入密码后,你将看到 MySQL 提示符。

三、MySQL 基本操作

一旦 MySQL 安装完成,你可以开始进行基本的数据库操作。

1. 创建数据库

CREATE DATABASE my_database;  

2. 切换数据库

USE my_database;  

 3. 创建表

CREATE TABLE users (  
    id INT AUTO_INCREMENT PRIMARY KEY,  
    username VARCHAR(50) NOT NULL,  
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP  
);  

4. 插入数据

INSERT INTO users (username) VALUES ('example_user');  

5. 查询数据

SELECT * FROM users;  

6. 更新数据

UPDATE users SET username = 'new_user' WHERE id = 1;  

7. 删除数据

DELETE FROM users WHERE id = 1;  

8. 备份和恢复数据库

  • 备份数据库
    mysqldump -u root -p my_database > my_database_backup.sql  

四、常见问题和解决方案

1.无法连接 MySQL

1. MySQL 服务未运行

解决方案:
  • 确保 MySQL 服务正在运行。
  • 在 Windows 上:
    • 打开 任务管理器,在 服务 标签页中查找 MySQL 服务,确保其状态为“正在运行”。
    • 你也可以在命令提示符中使用以下命令:
net start mysql  

在 Linux 上:

  • 使用以下命令检查 MySQL 服务状态:
sudo systemctl status mysql  

如果服务未运行,可以使用以下命令启动它:

sudo systemctl start mysql  

2. 网络连接问题

解决方案:
  • 确保可以连接到运行 MySQL 的服务器(本地或远程)。
  • 尝试通过 ping 命令测试服务器是否可达:
ping [服务器IP或主机名]  
  • 如果 MySQL 运行在远程服务器上,需要确保防火墙允许访问 MySQL 的端口(通常是 3306)。

3. 用户认证问题

解决方案:
  • 确保使用正确的用户名和密码进行连接。
  • 默认的 root 用户密码可能在安装时设置,确保输入的密码无误,包括大小写。
  • 如果不确定密码,可以通过以下步骤重置它:
    1. 停止 MySQL 服务:
      • Windows:在 任务管理器 中停止服务。
      • Linux:
sudo systemctl stop mysql  

                    2.以安全模式启动 MySQL(跳过验证):

sudo mysqld_safe --skip-grant-tables &  

                    3.以不检查用户权限的方式登录 MySQL:

mysql -u root  

                   4.更改密码(例如,将密码更改为 new_password):

FLUSH PRIVILEGES;  
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';  

                   5.退出 MySQL,重启服务:

sudo systemctl stop mysql  
sudo systemctl start mysql  

4. 权限问题

解决方案:

确保用户具有连接所需的权限。可以使用以下 SQL 命令检查用户权限:

SHOW GRANTS FOR 'username'@'host';  

 如果用户没有权限,可以授予权限:

GRANT ALL PRIVILEGES ON *.* TO 'username'@'host' WITH GRANT OPTION;  
FLUSH PRIVILEGES;  

5. 配置文件设置

解决方案:
  • 检查 my.cnf(Linux)或 my.ini(Windows)配置文件中的设置。
  • 确保以下配置正确:
    • bind-address:如果 MySQL 是在远程服务器上,应该设置为 0.0.0.0 以允许所有 IP 地址连接,或者指定允许连接的 IP 地址。
//ini
bind-address = 0.0.0.0  
  • 确保没有配置限制连接的选项,如 skip-networking

6. 客户端连接字符串错误

解决方案:
  • 确保在连接时使用正确的主机名、端口、用户和数据库名。例如:
mysql -h localhost -P 3306 -u root -p  
  • -h 表示主机名,-P 表示端口,-u 表示用户名,-p 代表提示输入密码。

7. SSL/TLS 配置问题

如果你的 MySQL 服务器配置为使用 SSL/TLS,则需要正确配置客户端以支持 SSL 连接。检查以下内容:

解决方案:
  • 检查是否需要 SSL 连接:
    • 如果需要,确保传递 --ssl 参数来启用 SSL。连接时可以使用:
mysql -u root -p --ssl  

8. 应用程序连接问题

如果使用应用程序连接到 MySQL(例如 PHP、Java 等),需要确保:

  • 数据库连接字符串配置正确(主机、用户名、密码、数据库名)。
  • 应用程序具备必要的驱动程序和库(如 PDO、MySQLi 等)。

2、调试连接问题

如果上述步骤都无法解决连接问题,可以采取以下调试步骤:

  1. 查看 MySQL 日志

    • 查看错误日志(通常在 /var/log/mysql/error.log 或 Windows 的 MySQL 安装路径下)以获取详细的错误信息。
  2. 使用命令行工具

    • 尝试使用 MySQL 客户端工具(如 mysql 或 MySQL Workbench)从命令行连接,查看更具体的错误信息。
  3. 检查防火墙设置

    • 确保操作系统防火墙或云服务提供商的防火墙规则允许访问 MySQL 的端口。
  4. 参与社区和论坛

    • 如果仍然无法解决问题,考虑访问 MySQL 官方社区论坛、Stack Overflow 等求助。

3.忘记 root 密码

一、在 Linux 上重置 MySQL root 密码

步骤 1:停止 MySQL 服务

首先,停止正在运行的 MySQL 服务。你可以使用如下命令:

sudo systemctl stop mysql  

这可能会因你的系统配置而有所不同,如果使用的是 service 管理服务,可以使用:

sudo service mysql stop  

步骤 2:以安全模式启动 MySQL

接下来,以安全模式启动 MySQL,这样可以在不检查权限表的情况下运行 MySQL:

sudo mysqld_safe --skip-grant-tables &  

执行此命令后,会在后台启动 MySQL 服务。

步骤 3:以不检查权限的方式登录 MySQL

现在你可以通过以下命令以 root 用户身份登录 MySQL,而不需要密码:

mysql -u root  

步骤 4:更改 root 用户的密码

登录后,你需要先刷新权限,然后更改 root 用户的密码。执行以下 SQL 命令:

FLUSH PRIVILEGES;  
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';  

将 new_password 替换为你想要的新密码。

步骤 5:退出 MySQL

在 MySQL 提示符下输入 exit; 以退出 MySQL:

exit;  

步骤 6:重启 MySQL 服务

最后,停止 MySQL 安全模式并重新启动 MySQL 服务:

sudo systemctl stop mysql  
sudo systemctl start mysql  

你也可以使用 service 命令:

sudo service mysql restart  

步骤 7:验证新密码

使用新密码登录 MySQL,检查是否可以成功:

mysql -u root -p  

输入新密码,应该能够正常登录。

二、在 Windows 上重置 MySQL root 密码

步骤 1:停止 MySQL 服务

  • 打开 任务管理器,找到 MySQL 服务,右键单击并选择 停止 服务。

或者,你可以在命令提示符中运行以下命令:

net stop mysql  

步骤 2:以安全模式启动 MySQL

  • 打开命令提示符并导航到 MySQL 的安装目录,进入 bin 文件夹。通常这个路径为:
//arduino
C:\Program Files\MySQL\MySQL Server <version>\bin  
  • 使用以下命令启动 MySQL 服务器,跳过权限检查:
mysqld --skip-grant-tables  

这将启动 MySQL,但不载入权限表。

步骤 3:打开新的命令提示符窗口,并登录 MySQL

在另一个命令提示符窗口中(保持第一个窗口打开),使用以下命令登录 MySQL:

mysql -u root  

步骤 4:更改 root 用户的密码

执行以下 SQL 语句,重置 root 用户密码:

FLUSH PRIVILEGES;  
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';  

同样,将 new_password 替换为你想要的新密码。

步骤 5:退出 MySQL

输入以下命令退出 MySQL:

exit;  

步骤 6:关闭正在运行的 MySQL 实例

回到第一个命令提示符窗口,使用 Ctrl + C 停止 MySQL 服务器。

步骤 7:重新启动 MySQL 服务

返回到 任务管理器,右键单击 MySQL 服务并选择 启动,或者在命令提示符中使用:

net start mysql  

步骤 8:验证新密码

使用新密码登录 MySQL:

mysql -u root -p  

输入新密码,确保能够成功登录。


三、注意事项

  1. 密码安全性:确保设置的密码复杂且难以猜测,包含大小写字母、数字和特殊符号,以提高安全性。

  2. 使用 SSL:如果你的 MySQL 配置为使用 SSL/TLS,确保在重置后正确配置客户端以使用 SSL 连接。

  3. 定期备份:为了避免未来出现类似问题,定期备份数据库和用户权限。

  4. 容灾计划:考虑制定容灾计划,以防服务器崩溃或用户丢失密码。

这就是重置 MySQL root 密码的完整步骤。如果你使用的是其它操作系统,步骤可能会略有不同。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2336908.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【WPF】 在WebView2使用echart显示数据

文章目录 前言一、NuGet安装WebView2二、代码部分1.xaml中引入webview22.编写html3.在WebView2中加载html4.调用js方法为Echarts赋值 总结 前言 为了实现数据的三维效果&#xff0c;所以需要使用Echarts&#xff0c;但如何在WPF中使用Echarts呢&#xff1f; 一、NuGet安装WebV…

OpenCV 图像拼接

一、图像拼接的介绍 图像拼接是一种将多幅具有部分重叠内容的图像合并成一幅完整、无缝且具有更广阔视野或更高分辨率图像的技术。其目的是通过整合多个局部图像来获取更全面、更具信息价值的图像内容。 二、图像拼接的原理 图像拼接的核心目标是将多幅有重叠区域的图像进行准…

数学建模AI智能体(4.16大更新)

别的不说就说下面这几点&#xff0c;年初内卷到现在&#xff0c;就现阶段AI水平&#xff0c;卷出了我比较满意的作品&#xff0c;这里分享给各位同学&#xff0c;让你们少走弯路&#xff1a; 1.轻松辅导学生 2.帮助学习 3.突破知识壁垒&#xff0c;缩短与大佬的差距 4.打破…

Linux》》bash 、sh 执行脚本

通常使用shell去运行脚本&#xff0c;两种方法 》bash xxx.sh 或 bash “xxx.sh” 、sh xxx.sh 或 sh “xxx.sh” 》bash -c “cmd string” 引号不能省略 我们知道 -c 的意思是 command&#xff0c;所以 bash -c 或 sh -c 后面应该跟一个 command。

如何用“AI敏捷教练“破解Scrum项目中的“伪迭代“困局?

一、什么是“伪迭代”&#xff1f; “伪迭代”是指团队表面上采用Scrum框架&#xff0c;但实际运作仍沿用瀑布模式的现象。例如&#xff1a;迭代初期开发人员集中编码、末期测试人员突击测试&#xff0c;导致资源分配不均&#xff1b;需求拆分粗糙&#xff0c;团队无法在固定时…

使用 vxe-table 来格式化任意的金额格式,支持导出与复制单元格格式到 excel

使用 vxe-table 来格式化任意的金额格式&#xff0c;支持导出与复制单元格格式到 excel 查看官网&#xff1a;https://vxetable.cn gitbub&#xff1a;https://github.com/x-extends/vxe-table gitee&#xff1a;https://gitee.com/x-extends/vxe-table 安装 npm install vx…

金币捕鱼类手游《海洋管家》源码结构与系统分层解析

在休闲互动类移动应用开发中&#xff0c;捕鱼类项目因玩法成熟、逻辑清晰而成为不少开发者接触多端架构与模块化管理的重要起点。本文以一款名为《海洋管家》的项目源码为样例&#xff0c;简要解析其整体结构与主要功能模块&#xff0c;供有类似项目需求或系统学习目的的开发者…

Go语言实现OAuth 2.0认证服务器

文章目录 1. 项目概述1.1 OAuth2 流程 2. OAuth 2.0 Storage接口解析2.1 基础方法2.2 客户端管理相关方法2.3 授权码相关方法2.4 访问令牌相关方法2.5 刷新令牌相关方法 2.6 方法调用时序2.7 关键注意点3. MySQL存储实现原理3.1 数据库设计3.2 核心实现 4. OAuth 2.0授权码流程…

【2025年认证杯数学中国数学建模网络挑战赛】C题 数据预处理与问题一二求解

目录 【2025年认证杯数学建模挑战赛】C题数据预处理与问题一求解三、数据预处理及分析3.1 数据可视化3.2 滑动窗口相关系数统计与动态置信区间耦合分析模型3.3 耦合关系分析结果 四、问题一代码数据预处理问题一 【2025年认证杯数学建模挑战赛】C题 数据预处理与问题一求解 三…

2025年最新Web安全(面试题)

活动发起人小虚竹 想对你说&#xff1a; 这是一个以写作博客为目的的创作活动&#xff0c;旨在鼓励大学生博主们挖掘自己的创作潜能&#xff0c;展现自己的写作才华。如果你是一位热爱写作的、想要展现自己创作才华的小伙伴&#xff0c;那么&#xff0c;快来参加吧&#xff01…

开源微调混合推理模型:cogito-v1-preview-qwen-32B

一、模型概述 1.1 模型特点 Cogito v1-preview-qwen-32B 是一款基于指令微调的生成式语言模型&#xff08;LLM&#xff09;&#xff0c;具有以下特点&#xff1a; 支持直接回答&#xff08;标准模式&#xff09;和自我反思后再回答&#xff08;推理模式&#xff09;。使用 I…

Golang|Channel 相关用法理解

文章目录 用 channel 作为并发小容器channel 的遍历channel 导致的死锁问题用 channel 传递信号用 channel 并行处理文件用channel 限制接口的并发请求量用 channel 限制协程的总数量 用 channel 作为并发小容器 注意这里的 ok 如果为 false&#xff0c;表示此时不仅channel为空…

C++ - #命名空间 #输入、输出 #缺省参数 #函数重载 #引用 # const 引用 #inline #nullptr

文章目录 前言 一、实现C版本的hello world 二、命名空间 1、namespace 的价值 2、namespace 的定义 (1.域会影响一个编译器编译语法时的查找规则 (2、域会影响生命周期 (3、命名空间域只能定义在全局 (4、编译器会自动合并相同命名空间中的内容 (5、C标准库放在命名…

JSON处理工具/框架的常见类型及详解,以Java语言为例

以下是JSON处理工具/框架的常见类型及详解&#xff0c;以Java语言为例&#xff1a; 一、主流JSON处理工具对比 Jackson&#xff08;推荐&#xff09; 特点&#xff1a;高性能、功能丰富&#xff0c;支持注解&#xff08;如JsonProperty&#xff09;、树形模型&#xff08;Json…

中间件--ClickHouse-1--基础介绍(列式存储,MPP架构,分布式计算,SQL支持,向量化执行,亿万级数据秒级查询)

1、概述 ClickHouse是一个用于联机分析(OLAP)的列式数据库管理系统(DBMS)。它由俄罗斯的互联网巨头Yandex为解决其内部数据分析需求而开发&#xff0c;并于2016年开源。专为大规模数据分析&#xff0c;实时数据分析和复杂查询设计&#xff0c;具有高性能、实时数据和可扩展性等…

Java中的经典排序算法:插入排序、希尔排序、选择排序、堆排序与冒泡排序(如果想知道Java中有关插入排序、希尔排序、选择排序、堆排序与冒泡排序的知识点,那么只看这一篇就足够了!)

前言&#xff1a;排序算法是计算机科学中的基础问题之一&#xff0c;它在数据处理、搜索算法以及各种优化问题中占有重要地位&#xff0c;本文将详细介绍几种经典的排序算法&#xff1a;插入排序、选择排序、堆排序和冒泡排序。 ✨✨✨这里是秋刀鱼不做梦的BLOG ✨✨✨想要了解…

K8S+Prometheus+Consul+alertWebhook实现全链路服务自动发现与监控、告警配置实战

系列文章目录 k8s服务注册到consul prometheus监控标签 文章目录 系列文章目录前言一、环境二、Prometheus部署1.下载2.部署3.验证 三、kube-prometheus添加自定义监控项1.准备yaml文件2.创建新的secret并应用到prometheus3.将yaml文件应用到集群4.重启prometheus-k8s pod5.访…

uniapp-商城-25-顶部模块高度计算

计算高度&#xff1a; 使用computed进行顶部模块的计算。 总高度&#xff1a;bartotalHeight log 介绍--收款码这一条目 也就是上一章节的title的高度计算 bodybarheight。 在该组件中&#xff1a; js部分的代码&#xff1a; 包含了导出的名字&#xff1a; shop-head…

非关系型数据库(NoSQL)与 关系型数据库(RDBMS)的比较

非关系型数据库&#xff08;NoSQL&#xff09;与 关系型数据库&#xff08;RDBMS&#xff09;的比较 一、引言二、非关系型数据库&#xff08;NoSQL&#xff09;2.1 优势 三、关系型数据库&#xff08;RDBMS&#xff09;3.1 优势 四、结论 &#x1f496;The Begin&#x1f496;…

蓝桥杯2024国B数星星

小明正在一棵树上数星星&#xff0c;这棵树有 n 个结点 1,2,⋯,n。他定义树上的一个子图 G 是一颗星星&#xff0c;当且仅当 G 同时满足&#xff1a; G 是一棵树。G 中存在某个结点&#xff0c;其度数为 ∣VG​∣−1。其中 ∣VG​∣ 表示这个子图含有的结点数。 两颗星星不相…