记一次安装 MySQL 的过程

记一次安装 MySQL 的过程

一直以来我用的 MySQL 都是从官网下载的zip压缩包,解压后自己配置的。但是这次安装时遇到了几个坑,特别在这里记录一下。

再次更新, 今天安装 MySQL 8.0.11 , 也记录一下安装的过程, 对文章做一下修改.

新建配置文件

自从 MySQL-5.7.18 之后官网提供的压缩包就没有 my-default.ini 的配置文件。所以需要自己新建配置文件 my.ini,放在 MySQL 的根目录下。

配置文件的内容如下:

[mysql]

# 设置 mysql 客户端默认字符集

default-character-set=utf8mb4

[mysqld]

# 设置 3306 端口

port=3306

# 设置 mysql 的安装目录

basedir=C:\Program Files\mysql-8.0.11

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

datadir=C:\Program Files\mysql-8.0.11\data

# 允许最大连接数

max_connections=200

# 服务端使用的字符集默认 utf8

character-set-server=utf8mb4

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

default-storage-engine=INNODB

注意配置文件在保存时编码为 ansi,否则会报错误。(不知道是不是真的...)

添加环境变量

修改系统变量 Path,加上 MySQL 的 bin 路径,此处为 C:\Program Files\mysql-8.0.11\bin

安装 MySQL 的服务

以管理员权限打开cmd,进入 C:\Program Files\mysql-8.0.11\bin 目录下,输入服务安装命令:

mysqld install MySQL --defaults-file="C:\Program Files\mysql-8.0.11\my.ini"

相对应的, 卸载服务命令为

mysqld -remove

然后自动生成 root 用户,可以不带密码:

mysqld --initialize-insecure

或者带随机密码:

mysqld --initialize

随机密码被保存在错误日志里,位于(前面配置好的datadir)数据文件夹下,文件名为:主机名.err

建议用 --initialize-insecure 参数生成不带密码的 root 用户, 因为后面用客户端连接时很有可能出现caching-sha2-password 问题, 到时候还是要修改密码的. 题外话, 以前安装 MySQL 时没有理解 mysqld --initialize 的意义, 还以为是我忘记密码了, 搞得只能进安装模式重置 root 密码.

注意:如果要重新初始化,必须先清空data文件夹。

然后执行

net start mysql

无密码进入 MySQL:

mysql -u root

有密码进入 MySQL:

mysql -u root -p

遇到的坑

客户端连接如果出现 caching-sha2-password 问题

我在使用 DBeaver 连接 MySQL 时会提示 caching-sha2-password 问题,死活建立不上连接。但是我在 cmd 中又可以用密码成功登录。解决方案就是重新修改密码:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';      # 更新一下用户的密码
FLUSH PRIVILEGES;   # 刷新权限

提示服务已存在的错误

今天安装 8.0 正式版时提示服务已存在的错误. 我是直接手动删除以前的 MySQL 文件, 应该是没有卸载干净, 可以在 cmd 下看有没有 MySQL 的服务名.

sc query mysql

如果有,就删除它

sc delete mysql

然后再按照之前的步骤配置 MySQL.

你可能感兴趣的:(记一次安装 MySQL 的过程)