how_to_install_mySql

pepper 2025-11-02

安装 MySQL 关系型数据库管理系统的操作指南;

各种数据库的端口

  • MySQL:3306
  • Redis:6379
  • MongoDB:27017
  • Django:8000
  • flask:5000

使用 Navicat 进行数据库管理

  1. 设置实际运行的端口 3308,因为我的电脑上有 WSL 会有镜像问题

安装报错

1. data 文件夹无法使用

解决方案:删除该文件夹,重新创建,确保其为空

C:\Windows\System32>mysqld --initialize --console
2025-11-02T15:12:33.373893Z 0 [System] [MY-015017] [Server] MySQL Server Initialization - start.
2025-11-02T15:12:33.383215Z 0 [System] [MY-013169] [Server] E:\MySql\mysql-8.4.7\bin\mysqld.exe (mysqld 8.4.7) initializing of server in progress as process 40892
2025-11-02T15:12:33.406661Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2025-11-02T15:12:33.592871Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2025-11-02T15:12:34.444169Z 0 [ERROR] [MY-000067] [Server] unknown variable 'default_authentication_plugin=mysql_native_password'.
2025-11-02T15:12:34.445152Z 0 [ERROR] [MY-013236] [Server] The designated data directory E:\MySql\mysql-8.4.7\data\ is unusable. You can remove all files that the server added to it.
2025-11-02T15:12:34.445232Z 0 [ERROR] [MY-010119] [Server] Aborting
2025-11-02T15:12:35.218892Z 0 [System] [MY-015018] [Server] MySQL Server Initialization - end.

2. 正常运行结果

临时密码:**********

C:\Windows\System32>mysqld --initialize --console
2025-11-03T03:48:13.155389Z 0 [System] [MY-015017] [Server] MySQL Server Initialization - start.
2025-11-03T03:48:13.158492Z 0 [System] [MY-013169] [Server] E:\MySql\bin\mysqld.exe (mysqld 9.4.0) initializing of server in progress as process 16960
2025-11-03T03:48:13.169209Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2025-11-03T03:48:13.358200Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2025-11-03T03:48:14.164476Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: **********
2025-11-03T03:48:15.693586Z 0 [System] [MY-015018] [Server] MySQL Server Initialization - end.

3. 服务无法打开

报错原因如下:

E:\MySql\bin>mysqld --console
2025-11-03T03:18:35.629807Z 0 [System] [MY-015015] [Server] MySQL Server - start.
2025-11-03T03:18:35.708375Z 0 [System] [MY-010116] [Server] E:\MySql\bin\mysqld.exe (mysqld 8.4.7) starting as process 41084
2025-11-03T03:18:35.715892Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2025-11-03T03:18:35.863177Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2025-11-03T03:18:35.938180Z 0 [ERROR] [MY-011292] [Server] Plugin mysqlx reported: 'Preparation of I/O interfaces failed, X Protocol won't be accessible'
2025-11-03T03:18:35.938305Z 0 [ERROR] [MY-011300] [Server] Plugin mysqlx reported: 'Setup of bind-address: '*' port: 33060 failed, (10013). Do you already have another mysqld server running with Mysqlx ?'
2025-11-03T03:18:35.939039Z 0 [ERROR] [MY-013597] [Server] Plugin mysqlx reported: 'Value '*' set to `Mysqlx_bind_address`, X Plugin can't bind to it. Skipping this value.'
2025-11-03T03:18:35.990818Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.
2025-11-03T03:18:35.990982Z 0 [System] [MY-013602] [Server] Channel mysql_main configured to support TLS. Encrypted connections are now supported for this channel.
2025-11-03T03:18:35.994040Z 0 [ERROR] [MY-010262] [Server] Can't start server: Bind on TCP/IP port: 通常每个套接字地址(协议/网络地址/端口)只允许使用一次。
2025-11-03T03:18:35.994168Z 0 [ERROR] [MY-010257] [Server] Do you already have another mysqld server running on port: 3306 ?
2025-11-03T03:18:35.994254Z 0 [ERROR] [MY-010119] [Server] Aborting
2025-11-03T03:18:37.208184Z 0 [System] [MY-010910] [Server] E:\MySql\bin\mysqld.exe: Shutdown complete (mysqld 8.4.7) MySQL Community Server - GPL.
2025-11-03T03:18:37.208369Z 0 [System] [MY-015016] [Server] MySQL Server - end.

错误解析:端口占用 ❌

主要的错误集中在端口绑定失败上:

1. 传统连接端口 (Port 3306)

  • 错误信息: Can't start server: Bind on TCP/IP port: 通常每个套接字地址(协议/网络地址/端口)只允许使用一次。
  • 错误信息: Do you already have another mysqld server running on port: 3306 ?
  • 解释: 这是最主要的错误。操作系统报告说 MySQL 的默认端口 3306 已经被另一个进程(可能是另一个 MySQL 实例或任何其他服务)占用。服务器无法绑定到这个端口,因此启动失败。

2. X Protocol 端口 (Port 33060)

  • 错误信息: Plugin mysqlx reported: 'Setup of bind-address: '*' port: 33060 failed, (10013). Do you already have another mysqld server running with Mysqlx ?'
  • 解释: MySQL 8.0+ 版本默认启用了 X Plugin,它使用 33060 端口。这个端口也遇到了类似的绑定失败问题,很可能是因为 另一个进程占用了 33060 端口,或者 权限不足 (错误代码 10013),但最常见的原因仍是端口占用。

修改 MySQL 的默认端口

如果 3306 端口被一个您不想或不能停止的程序占用,您可以修改您当前要启动的 MySQL 实例使用的端口

  1. 找到您的 MySQL 配置文件 my.ini(通常在 E:\MySql 或其子目录下)
  2. 用文本编辑器打开它
  3. [mysqld] 标题下,找到或添加 port 配置项,将其更改为另一个未被占用的端口(例如 33073308):
[mysqld]
# ... 其他配置
port=3307
# ...
  1. 保存 my.ini 文件
  2. 重新启动 MySQL 服务器:E:\MySql\bin>mysqld --console

参考指南

【一】各种数据库的端口

  • MySQL:3306
  • Redis:6379
  • MongoDB:27017
  • Django:8000
  • flask:5000

【二】MySQL 介绍

  • MySQL 是一个开源免费的关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 旗下公司。
  • MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。
  • 具有成本低、速度快、体积小且开放源代码等优点。
  • 全球数据库引擎使用排行榜:

【三】下载 MySQL 服务端

(1)打开官网

(2)点击 downloads

(3)选择 MySQL Community Server

(4)选择版本

【四】安装 MySQL

(1)解压压缩包

  • 右键压缩包选择解压,可以改文件夹名字也可以不改

(2)配置环境变量

  • 打开设置搜索环境变量
  • 将 MySQL 的 bin 目录添加到环境变量中

(3)打开终端

  • win+r
  • 以管理员身份运行

(4)配置 MySQL 配置文件

  • 在你的 MySQL 安装目录下新建一个文件,文件名 my.ini

  • 复制并且修改路径
[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir="D:\python_studyclass\MySQL"
# 设置mysql数据库的数据的存放目录,就是前面手动创建的data目录
datadir="D:\python_studyclass\MySQL\data"
# 允许最大连接数
max_connections=200
# 允许连接失败的次数
max_connect_errors=10
# 服务端使用的字符集默认为utf8mb4
character-set-server=utf8mb4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用"mysql_native_password"插件认证
default_authentication_plugin=mysql_native_password

[mysql]
# 设置mysql网络通信的默认字符集
default-character-set=utf8mb4

[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
# 设置mysql客户端的默认字符集
default-character-set=utf8mb4

  • 再创建一个 data 文件夹

(5)初始化 MySQL 服务端

  • 执行命令进行初始化
mysqld --initialize --console
  • 复制并记住临时密码:****

(6)注册系统服务

  • 未注册之前是没有 MySQL 服务的
  • 搜索栏里搜索服务 或者 右键我的电脑 打开计算机管理 → 服务和应用程序 → 服务

  • 执行命令注册
mysqld --install

  • 如果后续要移除的话,cmd 中以管理员身份运行
mysqld --remove

刷新服务,可以看到 MySQL 服务就被移除了

(7)启动 MySQL 服务

方式一:

方式二: cmd 中以管理员身份运行

net start mysql  # 启动MySQL服务

net stop mysql  # 停止MySQL服务

【五】MySQL 操作

(1)登入和退出

# 登录
# 方式一:直接本地登入 u:username root:用户名 -p:password
mysql -uroot -p

# 方式二:加上用户名和密码一起登入
mysql -uroot -p123456

# 链接远程服务登入
mysql -h 192.168.1.63 -P 3306 -uroot -p123456

# 在SQL语句中必须有结束符: ;
quit;

(2)修改密码

登入客户端:

# 先执行:
mysql -uroot -p

# 再输入临时密码:
****

修改密码:

alter user 'root'@'localhost' identified by '****';

刷新权限:

flush privileges;

退出:

quit;

(3)修改密码(忘记原本的密码)

  • 先关闭 MySQL 服务
net stop mysql
  • 执行跳表命令
mysqld --skip-grant-tables
  • 以无密码登入的启动模式启动 MySQL 服务端
  • 额外再用管理员身份打开一个终端
  • 执行 MySQL 登入命令 mysql -uroot -p
  • 输入密码的时候什么都不要输,直接 enter

  • 继续修改密码,先刷新一下权限
flush privileges;
  • 再执行修改密码
alter user 'root'@'localhost' identified by '****';
  • 再刷新权限
flush privileges;

(4)跳过输入密码直接登入

  • my.ini 配置文件中增加下述配置(在 [mysql] 部分)
  • 不需要每次输入验证码即可登陆
[mysql]
user="root"
password=**********
default-character-set=utf8mb4