SpringBoot新手快速入门系列教程二:MySql5.7.44的免安装版本下载和配置,以及简单的Mysql生存指令指南。

我们要如何选择MySql

目前主流的Mysql有5.0、8.0、9.0

主要区别

MySQL 5.0
  • 发布年份:2005年
  • 特性
    • 基础事务支持
    • 存储过程、触发器、视图
    • 基础存储引擎(如MyISAM、InnoDB)
    • 外键支持
    • 基本的全文搜索
  • 性能和扩展性
    • 相对较慢,适合小型应用
    • 扩展性有限
  • 安全性
    • 基本的安全功能
    • 不支持较新的安全标准
MySQL 8.0
  • 发布年份:2018年
  • 特性
    • 原生JSON支持
    • CTE(Common Table Expressions)和窗口函数
    • 更强大的全文搜索
    • 更好的GIS支持
    • 持续时间的数据定义语言(DDL)
    • 自动数据压缩和解压缩
    • 角色支持和更好的权限管理
  • 性能和扩展性
    • 大幅提升的性能和可扩展性
    • 基于资源组的资源管理
    • 更好的并发处理
  • 安全性
    • 强化的安全功能,如逐步身份验证、密码策略
    • 数据加密支持
MySQL 9.0
  • 目前状态:尚未发布(假设未来版本)
  • 预期特性
    • 更高级的数据分析功能
    • 改进的分布式数据库支持
    • 更强的机器学习和人工智能集成
    • 更好的自动化和自我优化功能
  • 性能和扩展性
    • 预计在8.0基础上进一步提升性能和可扩展性
    • 增强的多租户支持
  • 安全性
    • 预期更高级别的安全和隐私保护功能

生产环境配置

MySQL 5.0
  • 适用场景:小型应用和遗留系统
  • 硬件需求 :相对较低
    • CPU:单核或双核处理器
    • 内存:2GB以上
    • 磁盘:普通HDD即可
  • 配置建议
    • 调整缓冲池和查询缓存大小以适应小规模负载
MySQL 8.0
  • 适用场景:中大型应用,现代化的Web应用和数据密集型应用
  • 硬件需求 :中高端配置
    • CPU:多核处理器(8核以上)
    • 内存:16GB以上(视数据量和负载而定)
    • 磁盘:SSD以提高I/O性能
  • 配置建议
    • 配置InnoDB缓冲池(innodb_buffer_pool_size)以匹配内存大小
    • 使用查询优化器和性能模式进行调优
    • 开启GTID(全局事务标识符)和复制以提高可靠性
    • 使用MySQL Enterprise Monitor进行监控
MySQL 9.0
  • 适用场景:未来的高性能、大规模分布式应用
  • 硬件需求 :高端配置(假设)
    • CPU:高核数处理器(16核以上)
    • 内存:32GB以上(视数据量和负载而定)
    • 磁盘:高速SSD或NVMe驱动器
  • 配置建议
    • 预计会有更多的自动调优和智能配置选项
    • 强化的分布式数据库配置和管理
    • 更高效的资源分配和负载均衡

选择适合的版本和配置

  1. 小型应用或遗留系统

    • MySQL 5.0 可能已经足够,但建议升级到至少MySQL 8.0以获得更好的性能和安全性。
  2. 中大型应用和现代化Web应用

    • MySQL 8.0 是目前最佳选择,提供了丰富的现代功能和改进的性能。
  3. 未来的高性能、大规模分布式应用

    • 关注MySQL 9.0的发展,并准备在其发布后进行评估和测试。

结论

在生产环境中选择合适的MySQL版本和配置,主要取决于你的应用需求、数据量、并发负载和性能要求。MySQL 8.0 是目前推荐的版本,适用于大多数现代应用。未来的MySQL 9.0 将提供更多高级功能和性能改进,适合高性能、大规模应用的开发。

这里我们选择Mysql5.7.44,因为5.x系列的数据库可以部署在1核2gb内存的linux服务器上,成本最低。并且5.7.44是5.x系列最后一个版本,相对来说也是最稳定的一个版本。

所以现在我们来下载安装一下Mysql

1,下载

MySQL :: Download MySQL Community Server (Archived Versions)

2,配置环境变量

为了方便使用MySQL命令行工具,可以将MySQL的bin目录添加到系统的PATH环境变量中。

  1. 右键点击"此电脑"或"我的电脑",选择"属性"。
  2. 点击"高级系统设置"。
  3. 点击"环境变量"按钮。
  4. 在"系统变量"部分,找到并选择Path变量,点击"编辑"。
  5. 点击"新建",然后输入MySQL的bin目录路径,例如:C:\mysql-5.7.44\bin
  6. 点击"确定"保存。

3. 创建配置文件

创建一个MySQL配置文件my.ini,并将其放置在MySQL的根目录(例如C:\mysql-5.7.44)下。文件内容如下:

[mysqld]
# 设置MySQL的安装目录
basedir=D:/Program/mysql-5.7.44-win32

# 设置MySQL数据库的数据存放目录
datadir=D:/Program/mysql-5.7.44-win32/data

# 设置端口
port=3306

# 设置字符集
character-set-server=utf8mb4

# 设置sql模式
sql_mode=NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER

# 设置错误消息文件位置
lc-messages-dir=D:/Program/mysql-5.7.44-win32/share

# 禁用日志记录
log_syslog=0

# 启用TLSv1.2并禁用过时的TLS版本
ssl-cipher=TLSv1.2
tls-version=TLSv1.2

# 其他设置
default-storage-engine=INNODB

4. 初始化数据库

  1. 以管理员身份运行命令行,win下面点击左下角window按钮,输入cmd,在命令提示符右键点击"以管理员身份运行命令行"

  2. 打开命令提示符(cmd)并导航到MySQL的bin目录,如果你和我一样把mysql放在d盘,要先在cmd上输入命令d:再按Enter进入D盘再执行:

    d:
    
   cd D:\Program\mysql-5.7.44-win32\bin
  1. 初始化数据库:

    mysqld --initialize --console --explicit_defaults_for_timestamp
    

    这条命令将在控制台输出一个临时生成的root用户密码,记下这个密码。值得注意下面会产生一些警告,是无法避免。

  2. 这些警告大多数是在初始化过程中出现的正常行为,用于提醒用户当前系统的状态和潜在的问题。它们是合理的,并且在大多数情况下无需特别处理。以下是一些应对措施:,InnoDB和UUID警告 :这些警告是首次初始化时正常的,无需处理。GTID表警告 :初始化后GTID表会正常创建,无需处理。TLS警告 :在my.ini文件中指定使用TLSv1.2或更高版本。自签名证书警告:测试环境中可以忽略,生产环境中建议使用受信任的CA证书。

5. 运行数据库

mysqld --console

6. 修改用户名密码

首先你需要运行起来mysql,然后以管理员身份新开一个命令行,用root用户登录到MySQL。打开命令提示符(cmd),并输入以下命令:

mysql -u root -p
ALTER USER 'root'@'localhost' IDENTIFIED BY 'newpassword';

执行完上述命令后,刷新权限以使更改生效

FLUSH PRIVILEGES;

退出exit

EXIT;

7. 停止MySQL服务器

net stop MySQL

8. 以安全模式启动MySQL服务器

以安全模式启动MySQL服务器(使用 --skip-grant-tables 选项)通常在你无法正常连接到MySQL服务器或需要重置root用户密码的情况下使用。

1,在命令提示符中,导航到MySQL的安装目录下的bin目录,例如:

cd D:\Program\mysql-5.7.44-win32\bin

2,使用 --skip-grant-tables--skip-networking 选项启动MySQL服务器:

mysqld --skip-grant-tables --skip-networking
相关推荐
瓜牛_gn14 分钟前
依赖注入注解
java·后端·spring
打鱼又晒网20 分钟前
【MySQL】数据库精细化讲解:内置函数知识穿透与深度学习解析
数据库·mysql
Estar.Lee31 分钟前
时间操作[取当前北京时间]免费API接口教程
android·网络·后端·网络协议·tcp/ip
喜欢猪猪33 分钟前
Django:从入门到精通
后端·python·django
一个小坑货33 分钟前
Cargo Rust 的包管理器
开发语言·后端·rust
bluebonnet2737 分钟前
【Rust练习】22.HashMap
开发语言·后端·rust
uhakadotcom1 小时前
如何实现一个基于CLI终端的AI 聊天机器人?
后端
tatasix1 小时前
MySQL UPDATE语句执行链路解析
数据库·mysql
天海华兮1 小时前
mysql 去重 补全 取出重复 变量 函数 和存储过程
数据库·mysql
Iced_Sheep2 小时前
干掉 if else 之策略模式
后端·设计模式