安装 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
- 
- A temporary password is generated for root@localhost: )trfw4t<4.Jo
plain
输入安装命令:mysqld --install mysql

plain
安装成功后使用临时密码进入mysql数据库 : mysql -uroot -p

【遇到问题】
两个主要问题:
- 初始化错误 :第一次执行
mysqld --initialize时失败,因为数据目录D:\Database\mysql\mysql-8.4.5-winx64\data\非空。 - 安装服务错误 :执行
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 服务需要管理员权限。请按以下步骤操作:
- 关闭当前命令提示符窗口
- 右键点击 "开始" 菜单,选择 "Windows PowerShell(管理员)" 或 "命令提示符(管理员)"
- 在新打开的管理员命令提示符中执行:
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
常见问题
- 临时密码丢失:如果忘记了初始化时生成的临时密码,需要再次清空数据目录并重新初始化。
- 服务安装失败:确保以管理员身份运行命令提示符,并且没有其他 MySQL 实例使用相同的服务名。
- 防火墙问题:如果无法远程访问 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! 是一个符合要求的密码。
如果忘记临时密码
如果忘记了初始化时生成的临时密码,需要:
- 停止 MySQL 服务:batch
plain
net stop mysql
- 清空数据目录(注意备份重要数据):batch
plain
rmdir /S /Q "D:\Database\mysql\mysql-8.4.5-winx64\data"
mkdir "D:\Database\mysql\mysql-8.4.5-winx64\data"
- 重新初始化 MySQL 以生成新的临时密码:batch
plain
mysqld --initialize --user=mysql --console
- 安装并启动服务:batch
plain
mysqld --install mysql
net start mysql
- 使用新生成的临时密码登录并立即修改密码。
验证修改结果
修改密码后,再次查询用户表应该可以正常执行:
sql
sql
SELECT host, user, authentication_string FROM mysql.user;
