我们要如何选择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驱动器
- 配置建议:
- 预计会有更多的自动调优和智能配置选项
- 强化的分布式数据库配置和管理
- 更高效的资源分配和负载均衡
选择适合的版本和配置
-
小型应用或遗留系统:
- MySQL 5.0 可能已经足够,但建议升级到至少MySQL 8.0以获得更好的性能和安全性。
-
中大型应用和现代化Web应用:
- MySQL 8.0 是目前最佳选择,提供了丰富的现代功能和改进的性能。
-
未来的高性能、大规模分布式应用:
- 关注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
环境变量中。
- 右键点击“此电脑”或“我的电脑”,选择“属性”。
- 点击“高级系统设置”。
- 点击“环境变量”按钮。
- 在“系统变量”部分,找到并选择
Path
变量,点击“编辑”。 - 点击“新建”,然后输入MySQL的
bin
目录路径,例如:C:\mysql-5.7.44\bin
。 - 点击“确定”保存。
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. 初始化数据库
-
以管理员身份运行命令行,win下面点击左下角window按钮,输入cmd,在命令提示符右键点击“以管理员身份运行命令行”
-
打开命令提示符(cmd)并导航到MySQL的
bin
目录,如果你和我一样把mysql放在d盘,要先在cmd上输入命令d:再按Enter进入D盘再执行:d:
-
cd D:\Program\mysql-5.7.44-win32\bin
-
初始化数据库:
mysqld --initialize --console --explicit_defaults_for_timestamp
这条命令将在控制台输出一个临时生成的root用户密码,记下这个密码。值得注意下面会产生一些警告,是无法避免。
-
这些警告大多数是在初始化过程中出现的正常行为,用于提醒用户当前系统的状态和潜在的问题。它们是合理的,并且在大多数情况下无需特别处理。以下是一些应对措施:,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