MySQL安装实战分享

一、在 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.mzph.cn/diannao/78750.shtml

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

相关文章

数据库预热

介绍 Database Warm-up &#x1f9e0; 一句话理解 数据库是在应用启动阶段&#xff0c;提前建立数据库连接 或 执行轻量 SQL 操作&#xff0c;从而 加快首个请求的响应速度 的一种优化手段 &#x1f3af; 为什么需要数据库预热&#xff1f; 当 FastAPI 或其他 Web 服务刚启…

SearXNG

SearXNG 什么是 SearXNG &#xff1f;说白了&#xff0c;其实就是一个免费开源的搜索引擎。那为什么要本地安装它呢&#xff1f; 看它官网的解释(翻译)&#xff0c;当然&#xff0c;其中官方也有一篇文档解释了为什么需要部署使用私有示例&#xff1a;为什么使用私有实例&…

js 颜色转换分析

一、十六进制转RGB function hexToRgba(hex) {// 移除 # 字符hex hex.replace(#, );// 处理简写形式如 #fffif (hex.length 3) {hex hex[0] hex[0] hex[1] hex[1] hex[2] hex[2];}// 转换为十进制const r parseInt(hex.substring(0, 2), 16); // 截图前两位&#xff0…

智能资源管理机制-重传机制

一、发送端资源管理的核心机制 1. 滑动窗口&#xff08;Sliding Window&#xff09; 这是TCP协议的核心优化设计&#xff1a; 窗口动态滑动&#xff1a;发送端不需要保留所有已发送的分组&#xff0c;只需维护一个"发送窗口"窗口大小&#xff1a;由接收方通告的接…

基于SSM+Layui毕业设计选题系统源码

项目介绍 基于SSM+Layui毕业设计选题系统源码,可以作为课程设计项目参考,该系统分为三个角色: 管理员:用户管理(对学生和老师的信息进行维护),统计分析(对老师课题情况以及学生选题情况信息进行维护),修改密码 老师:个人信息维护,毕业设计题目管理,报名学生管理…

通过uri获取文件路径手机适配

青铜版本 return contentResolver.query(this, arrayOf(MediaStore.MediaColumns.DATA), null, null).let {if (it?.moveToFirst() true) {val columnIndex it.getColumnIndex(MediaStore.MediaColumns.DATA)val path it.getString(columnIndex)it.close()return path}&quo…

vue模拟扑克效果

vue模拟扑克效果 效果图&#xff1a; step1:C:\Users\wangrusheng\PycharmProjects\untitled18\src\views\Home.vue <template><div class"poker-container"><!-- 使用复合数据对象实现双行显示 --><divv-for"(card, index) in POKER_…

基础数学:图论与信息论

微积分与概率论由此进&#xff1a;基础数学&#xff1a;微积分和概率与统计-CSDN博客 线代与优化理论由此进&#xff1a;基础数学&#xff1a;线性代数与优化理论-CSDN博客 数值分析与离散数学由此进&#xff1a;基础数学&#xff1a;数值分析与离散数学-CSDN博客 四、图论与…

构建智能期货交易策略分析应用:MCP与AI的无缝集成

引言 随着金融科技的快速发展&#xff0c;数据驱动的交易决策已成为期货交易领域的重要趋势。本文将深入探讨一个结合了Model Content Protocol (MCP)和AI技术的期货交易策略分析应用——Futures MCP。该应用不仅提供了丰富的技术分析工具&#xff0c;还通过MCP协议与大型语言…

0x02.Redis 集群的实现原理是什么?

回答重点 Redis 集群&#xff08;Redis cluster&#xff09;是通过多个 Redis 实例组成的&#xff0c;每个主节点实例负责存储部分的数据&#xff0c;并且可以有一个或多个从节点作为备份。 具体是采用哈希槽&#xff08;Hash Slot&#xff09;机制来分配数据&#xff0c;将整…

基本的DOS命令

一.打开CMD方式&#xff1a; winR 输入cmd 开始系统命令提示符 在任意文件夹下&#xff0c;shift&#xff0b;鼠标右击&#xff0c;在此处打开命令 资源管理器的地址栏前面输入cmd 以管理员身份打开cmd&#xff1a;选择以管理员方式运行 二.常用的Dos命令 #盘符切换 盘符…

深度剖析:架构评估的常用方法与应用

架构评估是确保系统架构满足需求、性能和质量等方面要求的重要环节&#xff0c;以下是一些常见的架构评估方法的详细介绍&#xff1a; 一、基于调查问卷或检查表的评估方法 1.方法概述&#xff1a;该方法通过设计一系列针对性的问题或检查项&#xff0c;形成问卷或检查表&…

代码随想录算法训练营第十六天

LeetCode题目: 530. 二叉搜索树的最小绝对差501. 二叉搜索树中的众数236. 二叉树的最近公共祖先3272. 统计好整数的数目(每日一题) 其他: 今日总结 往期打卡 530. 二叉搜索树的最小绝对差 跳转: 530. 二叉搜索树的最小绝对差 学习: 代码随想录公开讲解 问题: 给你一个二叉搜…

基于双闭环PID控制器的永磁同步电机控制系统匝间故障Simulink仿真

欢迎微♥关注“电击小子程高兴的MATLAB小屋”获取巨额优惠 1.模型简介 本仿真模型基于MATLAB/Simulink&#xff08;版本MATLAB 2013Rb&#xff09;软件。建议采用matlab2013 Rb及以上版本打开。&#xff08;若需要其他版本可联系代为转换&#xff0c;高于该版本的matlab均可正…

02-libVLC的视频播放器:播放音视频文件以及网络流

libvlc_new(0, nullptr)功能:创建并初始化libVLC的核心实例,是使用所有libVLC功能的前提。 参数:第一个参数:参数数量(通常设为0)第二个参数:参数列表(通常为nullptr,表示使用默认配置)返回值:成功返回libvlc_instance_t*指针,失败返回nullptr。注意事项:可通过参…

2025蓝桥杯省赛C++B组解题思路

由于题面还没出来&#xff0c;现在先口胡一下思路 填空题直接打表找规律或者乱搞一下就能出&#xff0c;从大题开始说。 1&#xff0c;题意&#xff1a; 给你一个数组&#xff0c;这个数组里有几个数可以被一个连续递增的数字区间求和得出 思路&#xff1a;诈骗题&#xff0c;显…

防止邮件伪造的策略 SPF 介绍

SPF是Sender Policy Framework的缩写&#xff0c;即发件人策略框架&#xff0c;是一种用于防止电子邮件伪造的技术&#xff0c;用来验证发件人邮箱域名的真实性。以下是关于它的详细说明&#xff1a; 1. 定义与作用 SPF是一种电子邮件验证系统&#xff0c;它通过在域名的DNS记…

JavaScript Symbol与BigInt

目录 Symbol类型 一、Symbol 的核心特性 1. 唯一性 2. 不可变性 3. 不可枚举性 二、创建 Symbol 1. 基础创建 2. 全局 Symbol 注册表 三、Symbol 作为对象属性 1. 定义 Symbol 属性 2. 遍历 Symbol 属性 四、内置 Symbol 值 五、实际应用场景 1. 避免属性名冲突 …

AI Agent工程师认证-学习笔记(3)——【多Agent】MetaGPT

学习链接:【多Agent】MetaGPT学习教程 源代码链接(觉得很好,star一下):GitHub - 基于MetaGPT的多智能体入门与开发教程 MetaGPT链接:GitHub - MetaGPT 前期准备 1、获取MetaGPT (1)使用pip获取MetaGPT pip install metagpt==0.6.6#或者在国内加速安装镜像 #pip in…

【leetcode hot 100 416】分割等和子集

解法一&#xff1a;&#xff08;动态规划&#xff09;①定义&#xff1a;dp[i]表示是否可以在nums找到元素之和为i&#xff0c;dp[sum/21] ②初始状态&#xff1a;dp[0]true;dp[i]false ③状态转移方程&#xff1a;dp[i] dp[i] || dp[i - num]; class Solution {public boole…