压缩包部署MySQL:从基础到实践
引言
关于安装包
在学习数据库的时候,需要安装mysql,但是mysql的安装包对于新手来说可能不是很友好,会有很多风险,包括但不限于
- 安装失败 还是比较常见的,不知道哪一个环节出现错误导致安装失败
- 文件残留 安装失败后会有文件残留 不仅对于强迫症来说很头疼 也会影响下次的安装
- 注册表残留 就算没能安装成功 注册表也会有残留 这也是再次尝试失败的原因
因此我把目光瞄到了官网提供的压缩包上 就我使用到现在来说 压缩包部署的MySQL与安装包部署的并无区别 但是对文件有较强掌控欲的我来说 无疑是避免麻烦的最优解 虽然我花了两天才把mysql装到我的电脑上
准备
MySQL 压缩包形式 MySQL :: 下载MySQL社区服务器(存档版本)我自己在用的版本是8.0.36
以防万一 这里是windows系统的安装教程
解压压缩包至任意文件夹里 路径最好是全英文的
配置环境:设置=>系统=>系统信息=>高级系统设置=>环境变量=>系统变量=>新建
变量名 MYSQL_HOME
变量值 压缩包所在的文件路径
例 D:\mysql-8.0.36-winx64
在path中新建然后输入%MYSQL_HOME%\bin
tip
为什么要配置环境变量? 在cmd中输入一个可执行程序的名字 Windows会先在环境变量中的
Path
所指的路径中寻找一遍 如果找到了就直接执行 没找到就在当前工作目录找 如果还没找到 就会报错 我们添加环境变量的目的就是能够在任意一个cmd中直接调用MySQL中的相关程序而不用总是修改工作目录 大大简化了操作 java 配置环境变量也是同理
至此准备工作完毕
配置MySQL
- 在mysql的根目录上新建
my.ini
文件 右键笔记本打开写入
port = 3306
[mysqld]
#设置3306端口 按理说只要不冲突可以改一个自己喜欢的端口号
port = 3306
# 设置mysql的安装目录 tips:这里的目录是你自己的安装目录
basedir=D:\你自己的目录\mysql-8.0.36-winx64
# 设置mysql数据库的数据的存放目录 tips:同上一条
datadir=D:\你自己的目录\mysql-8.0.36-winx64\data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
#这个需要注意一下,不然报错
#其原因是从 5.6开始,timestamp 的默认行为已经是 deprecated 了。
explicit_defaults_for_timestamp=true
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
这一步比较重要好好检查有没有配置错误 特别是路径
- win+r cmd 用管理员打开控制台 用cd指令切换到mysql的根目录
执行
mysqld --install
命令 [后面可以跟自定义名字 默认为mysql] 安装mysqld服务初始化 MySQL 数据目录
mysqld --initialize --user=mysql --console
此时会初始化数据库系统表 mysql目录会生成data文件夹 如果报错或没有生成请检查my.ini配置文件最后
root@localhost
后面是临时密码执行命令
net start mysql
[服务名] 启动服务 (停止服务net stop mysql
[服务名]) 在任务管理器里打开也行执行
mysql -uroot -p
回车后输入临时密码 注意不能复制 注意大小写如果看到 welcome to the mysql 与 server version + 版本号 就表明成功了
更改密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
至此在没报错的前提下 mysql就已经部署完成了
测试与验证
到了这一步终于可以来好好的把玩一下这个数据库了 这里提供一些代码供大家操作mysql
首先还是建议大家用图形化操纵工具Navicat来使用数据库 控制台也可以临时凑和
-- 开启mysql服务 任务管理器打开也行
net start mysql [服务名]
-- 登入数据库
mysql -uroot -p 输入密码 [密码在命令里输在回车后输都行]
-- 创建数据库
create DATABASE mydb1;
-- 如果有该数据库 则跳过没有则创建
create database if not exists mydb1;
-- 选择使用哪一个数据库
use mydb1;
-- 创建表
-- 选择mydb1
-- 创建表格式
use mydb1;
create table 表名(name VARCHAR(50) NOT NULL);
-- 插入数据
insert into 表名 (name) values(名字);
-- 查询数据库
select * from 表名 查询数据
-- 删除数据库
drop database students;
-- 如果有该数据库则删除没有则跳过
drop database if exists mydb1;
-- 查看表结构
desc 表名;
以下是我自用的cmd脚本用于方便使用数据库的 前提是启动类型是手动 自动的话随意
启动服务 net start mysql [服务名] 需要管理员权限
关闭服务 net stop mysql [服务名] 需要管理员权限
登入数据库 mysql -uroot -p + 密码
如果上述命令出错请检查代码有没有写错 或者找其他的命令来试一试
至此 在出现理想效果的情况下 你的数据库已经完美部署与使用了
卸载MySQL
如果出现使用时版本过高[过低]想要降级[升级] 想要卸载 MySQL 本站自然提供一条龙服务
- 此时压缩包部署MySQL的好处就会浮现出来 比如没有注册表残留 压根不会有残留文件
- 停止mysql服务 使用
net stop mysql
[服务名] 命令停止服务或者用任务管理器停止 mysqld -remove
[服务名]卸载mysql服务- 删除环境变量与mysql文件
至此mysql已经彻底从你的电脑里移除了
常见问题与解决方案
- 在控制台输入命令时报错:有些命令需要管理员权限 例如打开关闭mysql服务 检查代码有没有输错 例如mysqld这样的命令
- 输入临时密码时报错:这个问题有点玄学 注意大小写以及特殊符号 多试几次 实在输不对可以卸载当前服务重新创建一个新的 临时密码会刷新
- cmd输入mysql显示不是内部或外部命令:环境变量的问题
- cmd输入mysql显示error:如果出现error的话检查有没有开启服务,然后要用mysql -uroot -p命令登入mysql
- data文件没有生成:检查my.ini里的路径有没有正确配置 代码里出现的汉字都是让你自行填入的
- 如果mysql服务打不开或者打开一会自动停止 那么看一下是不是先初始化mysql服务再启用的服务
后记
写这篇博客的原因主要是我后面需要帮别人装mysql时 找不到一个详细攻略 干脆自己写了一个其实是怕自己之后忘了怎么装 特地写的
——云散·飞花