【Mysql】Mysql的安装部署和使用

安装 MySQL

下载地址:mysql
安装

mysql-8.0.17-winx64.zip下载完后解压,将 zip 包解压到你想安装的目录,我的路径如下所示:

配置环境变量

计算机---属性---高级系统设置---环境变量,添加MySQL解压的路径

配置 MySQL 的配置文件

打开刚刚解压的文件夹 C:\web_soft\mysql-8.0.17-winx64 ,创建一个配置文件为 my.ini,编辑 my.ini 配置以下基本信息:

mysql

default-character-set=utf8

mysqld

设置3306端口

port = 3306

设置mysql的安装目录

basedir = C:\web_soft\mysql-8.0.17-winx64\

设置mysql数据库的数据的存放目录

datadir = C:\web_soft\mysql-8.0.17-winx64\data

允许最大连接数

max_connections=20

服务端使用的字符集默认为8比特编码的latin1字符集

character-set-server=utf8

创建新表时将使用的默认存储引擎

default-storage-engine=INNODB

创建模式

sql_mode = NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

管理员cmd 命令行工具,来安装mysql

使用"cd"命令进入mysql\bin目录下

如果解压在非C盘,以 D\mysql\bin 为例。

要先键入"C:> D: " 进入D盘

然后"D:>cd mysql\bin" ,进入MySQL的bin文件夹

解释

plain 复制代码
接下来输入 : mysqld --initialize --user=mysql --console

来初始化mysql数据库

初始化结果会给你一个随机的MySQL数据库密码,切记要复制下来这个临时密码,复制临时密码、复制临时密码、复制临时密码

复制代码
-  mysqld --initialize --user=mysql --console
- ![](https://cdn.nlark.com/yuque/0/2025/png/22097832/1748139360319-2885f0c5-6cc6-4340-8db5-7d8d66693275.png)
-  A temporary password is generated for root@localhost: )trfw4t<4.Jo
plain 复制代码
输入安装命令:mysqld --install  mysql
plain 复制代码
安装成功后使用临时密码进入mysql数据库   :   mysql -uroot  -p

【遇到问题】

两个主要问题:

  1. 初始化错误 :第一次执行 mysqld --initialize 时失败,因为数据目录 D:\Database\mysql\mysql-8.4.5-winx64\data\ 非空。
  2. 安装服务错误 :执行 mysqld --install mysql 时提示 "Install/Remove of the Service Denied!",这是权限不足导致的。

解决方案

1. 清理数据目录并重试初始化

首先需要清空 MySQL 数据目录中的所有文件,然后重新初始化:

batch

plain 复制代码
# 停止MySQL服务(如果已启动)
net stop mysql

# 删除数据目录中的所有文件(谨慎操作!)
rmdir /S /Q "D:\Database\mysql\mysql-8.4.5-winx64\data"
mkdir "D:\Database\mysql\mysql-8.4.5-winx64\data"

# 重新初始化MySQL(保留临时密码)
mysqld --initialize --user=mysql --console
2. 以管理员身份安装 MySQL 服务

安装 Windows 服务需要管理员权限。请按以下步骤操作:

  1. 关闭当前命令提示符窗口
  2. 右键点击 "开始" 菜单,选择 "Windows PowerShell(管理员)" 或 "命令提示符(管理员)"
  3. 在新打开的管理员命令提示符中执行:

batch

plain 复制代码
# 导航到MySQL bin目录(如果需要)
cd /d "D:\Database\mysql\mysql-8.4.5-winx64\bin"

# 安装MySQL服务
mysqld --install mysql

# 启动MySQL服务
net start mysql

# 使用临时密码登录并修改密码
mysql -u root -p

常见问题

  1. 临时密码丢失:如果忘记了初始化时生成的临时密码,需要再次清空数据目录并重新初始化。
  2. 服务安装失败:确保以管理员身份运行命令提示符,并且没有其他 MySQL 实例使用相同的服务名。
  3. 防火墙问题:如果无法远程访问 MySQL,需要在防火墙中开放 3306 端口。

临时密码登录 MySQL

【遇到问题】

mysql> select host,user,authentication_string from mysql.user; ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement. mysql> select host,user,authentication_string from mysql.user; ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement. mysql> use mysql No connection. Trying to reconnect... Connection id: 12 Current database: *** NONE *** ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement. mysql>

复制代码
-   

包含特殊字符(如 !@#$%^&*()

例如:MyNewPassw0rd! 是一个符合要求的密码。

如果忘记临时密码

如果忘记了初始化时生成的临时密码,需要:

  1. 停止 MySQL 服务:batch
plain 复制代码
net stop mysql
  1. 清空数据目录(注意备份重要数据):batch
plain 复制代码
rmdir /S /Q "D:\Database\mysql\mysql-8.4.5-winx64\data"
mkdir "D:\Database\mysql\mysql-8.4.5-winx64\data"
  1. 重新初始化 MySQL 以生成新的临时密码:batch
plain 复制代码
mysqld --initialize --user=mysql --console
  1. 安装并启动服务:batch
plain 复制代码
mysqld --install mysql
net start mysql
  1. 使用新生成的临时密码登录并立即修改密码。

验证修改结果

修改密码后,再次查询用户表应该可以正常执行:

sql

sql 复制代码
SELECT host, user, authentication_string FROM mysql.user;
相关推荐
消失的旧时光-194318 小时前
从 Kotlin 到 Dart:为什么 sealed 是处理「多种返回结果」的最佳方式?
android·开发语言·flutter·架构·kotlin·sealed
Jinkxs18 小时前
Gradle - 与Groovy/Kotlin DSL对比 构建脚本语言选择指南
android·开发语言·kotlin
&有梦想的咸鱼&18 小时前
Kotlin委托机制的底层实现深度解析(74)
android·开发语言·kotlin
LDORntKQH18 小时前
基于深度强化学习的混合动力汽车能量管理策略 1.利用DQN算法控制电池和发动机发电机组的功率分配 2
android
冬奇Lab18 小时前
Android 15 ServiceManager与Binder服务注册深度解析
android·源码·源码阅读
爱学英语的程序员19 小时前
面试官:你了解过哪些数据库?
java·数据库·spring boot·sql·mysql·mybatis
·云扬·20 小时前
MySQL Redo Log落盘机制深度解析
数据库·mysql
2501_9160088920 小时前
深入解析iOS机审4.3原理与混淆实战方法
android·java·开发语言·ios·小程序·uni-app·iphone
码界筑梦坊20 小时前
330-基于Python的社交媒体舆情监控系统
python·mysql·信息可视化·数据分析·django·毕业设计·echarts
千寻技术帮21 小时前
10327_基于SpringBoot的视频剪辑咨询网站
mysql·源码·springboot·代码·视频咨询