Windows 上安装 MySQL

前言
下载安装包
安装配置
- 将下载好的压缩包文件解压到指定目录,比如 D:\mysql-5.7.20-winx64;
- 配置下 MySQL 的配置文件,打开刚刚解压的文件夹 D:\mysql-5.7.20-winx64 ,修改 my-default.ini 为 my.ini,如果不存在直接创建 my.ini 配置文件,编辑 my.ini 配置以下基本信息:
1 | # For advice on how to change settings please see |
上面这个是 5.7 版本的配置,MySQL 8 + 配置如下:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17[client]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
# 设置3306端口
port = 3306
# 设置mysql的安装目录
basedir=C:\\web\\mysql-8.0.11
# 设置 mysql数据库的数据的存放目录,MySQL 8+ 不需要以下配置,系统自己生成即可,否则有可能报错
# datadir=C:\\web\\sqldata
# 允许最大连接数
max_connections=20
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
- 启动 MySQL 数据库
以管理员身份打开 cmd 命令行工具,切换目录:
1 | C:\Users\sunys>cd D:\mysql-5.7.20-winx64\bin |
- 初始化数据库:
1 | D:\mysql-5.7.20-winx64\bin>mysqld --initialize --user=mysql --console |
此时会给管理账户 root 随机生成一个临时密码。
- -initialize 生成随机密码
- -initialize-insecure 生成空密码
- 默认帐号 root, 后面的 - user=mysql 不更改
5. 安装Mysql服务
1
D:\mysql-5.7.20-winx64\bin>mysqld --install MySQL
- 启动服务
1 | D:\mysql-5.7.20-winx64\bin>net start MySQL |
- 登录数据库
当 MySQL 服务已经运行时,我们可以通过 MySQL 自带的客户端工具登录到 MySQL 数据库中,首先打开命令提示符,输入以下格式的命名:
1 | mysql -h 主机名 -u 用户名 -p |
- -h : 指定客户端所要登录的 MySQL 主机名,登录本机 (localhost 或 127.0.0.1) 该参数可以省略;
- -u : 登录的用户名;
- -p : 告诉服务器将会使用一个密码来登录,如果所要登录的用户名密码为空,可以忽略此选项。
我是登录本机的 MySQL 数据库,只需要输入以下命令即可:1
D:\mysql-5.7.20-winx64\bin>mysql -u root -p
按回车确认,输入之前生成的临时密码(如果生成空密码,这里不用输入密码直接回车即可)。
8. 成功登录后需要首先修改 root 账户的随机密码1
mysql>alter user 'root'@'localhost' identified by '密码';
密码修改成功后即可使用自己设定的密码登录
卸载
卸载安装版方式安装的 MySQL 跟卸载普通的软件方式一样,直接在控制面板的程序和功能中卸载即可;绿色版安装的 MySQL 卸载方式如下:
- 在 CMD 命令行模式下,删除 mysql 服务
1 | C:\Users\sunys>sc delete mysql |
- regedit 进入注册表,删除 mysql 相关的文件
问题及解决方案
缺少 dll
安装版,遇到 MSVCR120.dll 文件丢失错误,如下图:
解决方案:下载 VC redist packages for x64, 安装即可。
mysql 无法启动
重新安装 MySQL 数据库之后无法启动,报错如下:
解决方案:
- 删除原来的 mysql 服务,进入 mysql 安装目录下的 bin 目录运行;
1 | D:\mysql-5.7.20-winx64\bin>mysqld --remove MySQL |
- 在 mysql 的根目录下, 清空 data 目录;
- 删除注册表,重启电脑(貌似执行这一步之后才会有效,否则还是不行);
- 重新执行安装命令并启动服务,启动成功。
Mysql 连接报错:1130
数据库安装完成之后,使用 localhost 作为地址链接没问题,但是改为真实 IP 之后,Mysql 连接报错:1130-host … is not allowed to connect to this MySql server。
这个问题是因为在数据库服务器中的 mysql 数据库中的 user 的表中没有权限,解决方案:
- 连接服务器:
1 | D:\mysql-5.7.20-winx64\bin>mysql -u root -p |
- 看当前所有数据库:
1 | mysql>show databases; |
3. 进入 mysql 数据库:1
mysql>use mysql;
- 查看 mysql 数据库中所有的表:
1 | mysql>show tables; |
5. 查看 user 表中的数据:1
mysql>select host, user from user;
6. 修改 user 表中的 Host:1
mysql>update user set host='%' where user='ebm';
- 最后刷新一下:
1 | mysql>flush privileges; |
- 再查看 user 表中的数据:
1 | mysql>select host, user from user; |
可以看到,此时 ebm 的 host 已经发生了变化,再使用真实 IP 链接 mysql,链接成功。
host 列的值:
- localhost 代表只可以本机连接
- % 代表任何客户机都可以连接
- 空 值等价于’%’
- 固定 IP 指定的 IP 可以连接
- 通配符字符(“%” 和 “_”) 例如:192.168.1.% 就表示 ip 为 192.168.1. 前缀的客户端都可以连接