一篇搞定MySQL:从环境搭建到深入理解,高效入门数据库

MySQL相关知识点可以通过点击以下链接进行学习一起加油!
文章目录
    • MySQL与MariaDB:同源而生的数据库系统
    • 一、MySQL的安装与初步配置
      • 1. 更新系统软件包列表
      • 2. 安装MySQL服务器
      • 3. 检查MySQL服务状态
      • 4. 首次登入MySQL
      • 5. 为root用户配置密码
        • 步骤一:查看当前认证方式
        • 步骤二:修改认证方式并设置密码
        • 步骤三:刷新权限
    • 二、MySQL的彻底卸载流程
    • 三、重置遗忘的root密码
    • 四、数据库基础核心概念的深化理解
      • 1. 剖析MySQL的客户端/服务器架构
      • 2. 数据库登录命令的详细拆解
      • 3. 数据库的本质与主流产品概览
      • 4. Windows环境下的服务器管理
      • 5. 服务器、数据库、表的物理关系
      • 6. 一个完整的数据库操作实例
    • 五、MySQL 逻辑架构的深入剖析
      • 1. SQL语言的逻辑分类
      • 2. 存储引擎深入探讨
    • 最终总结

在着手学习任何一门技术时,搭建一个可供实践的环境是至关重要的第一步。这份笔记旨在详尽记录在基于Debian/Ubuntu的Linux系统上,从零开始安装、配置、使用乃至彻底卸载MySQL的全过程。在整个学习初期,所有操作都将使用root账户来执行。这样做的目的,是为了暂时规避复杂的权限管理问题,使学习者能够将全部精力集中在理解和掌握MySQL的核心概念与SQL基本语句上。当对基础操作有了扎实的掌握之后,再回过头来学习创建普通用户并进行精细化的权限管理,会是一条更为平滑和高效的学习曲线。

MySQL与MariaDB:同源而生的数据库系统

在选择开源关系型数据库管理系统(RDBMS)时,MySQL和MariaDB是两个无法绕开的名字。它们之间有着深厚的渊源。MySQL最初由MySQL AB公司开发,后经Sun Microsystems,最终被Oracle公司收购。由于社区对于MySQL在商业公司主导下其开源精神能否延续的担忧,MySQL的创始人之一Michael “Monty” Widenius,领导了一个由原MySQL开发者组成的核心团队,创建了MariaDB。

MariaDB是MySQL的一个社区驱动的分支,其设计目标是保持与MySQL的高度兼容性,使得用户可以轻松地从MySQL迁移至MariaDB,同时承诺其核心代码将永久保持开源。在功能上,MariaDB不仅复刻了MySQL的核心功能,还在性能优化、新功能引入(如更多的存储引擎Aria、XtraDB等)方面有所建树。对于初学者而言,两者的基础SQL语法和核心操作几乎完全一致,因此,掌握其中任何一个,都能够为理解另一个打下坚实的基础。

一、MySQL的安装与初步配置

本次安装实践是在一个采用APT包管理器的Linux发行版(例如Ubuntu)上进行的。

1. 更新系统软件包列表

在安装任何新软件之前,一个标准且必要的步骤是同步本地系统的软件包索引。这个操作能够确保系统获取到所有配置的软件源中最新的软件包版本信息、依赖关系以及安全补丁列表。

sudo apt-get update

执行此命令后,终端会开始连接各个软件源服务器,下载最新的包信息。这个过程本身并不会安装或升级系统中的任何软件,它仅仅是刷新了本地的“软件包目录”。

终端执行apt-get update命令后,会显示一系列的GetHit条目,分别代表从源服务器下载新的包信息或本地列表已是最新。最后的Reading package lists... Done表示更新过程顺利完成。

2. 安装MySQL服务器

当软件包列表更新至最新状态后,便可以开始安装MySQL服务器。

sudo apt-get install mysql-server

这条命令指示APT包管理器下载并安装名为mysql-server的软件包。APT会自动解析其依赖关系,将所有必需的组件,如mysql-client(客户端工具)、mysql-common(通用文件)等一并安装。在现代的Linux发行版中,安装脚本通常会自动化完成一系列初始化工作,包括创建数据目录、生成默认配置文件、初始化系统数据库以及启动MySQL服务。


执行安装命令后,APT会列出将要安装的新软件包以及它们将占用的磁盘空间,并请求确认。输入Y并按下回车键,安装流程就会继续进行。

3. 检查MySQL服务状态

安装过程结束后,MySQL服务(其后台守护进程名为mysqld)理论上会自动启动。为了验证服务是否正常运行,可以使用service命令或在支持systemd的系统中推荐使用systemctl命令。

sudo service mysql status # 或者更推荐的方式: # sudo systemctl status mysql

如果服务成功启动并正在运行,输出信息中会包含Active: active (running)的标识。这表明MySQL服务器已经在后台就绪,并正在监听网络端口等待客户端的连接。


service mysql status命令的输出结果。其中,绿色的active (running)字样是核心信息,明确指示MySQL服务当前处于活动状态。

万一服务未能自动启动,其状态可能会显示为inactive (dead)failed。此时,需要手动启动它:

sudo service mysql start
4. 首次登入MySQL

在较新版本的Ubuntu或Debian系统中,MySQL的默认安装配置了一个名为auth_socket(或unix_socket)的认证插件。这个插件的机制是:当一个用户尝试通过本地的Unix套接字文件连接MySQL时,MySQL服务器会向操作系统查询发起连接的进程属于哪个用户。如果操作系统用户是root,并且该用户正在尝试以MySQL的root用户身份登录,auth_socket插件就会直接信任操作系统的身份验证,允许其无密码登录。

因此,可以直接通过以下命令进入MySQL命令行:

sudo mysql

执行此命令后,如果一切顺利,命令行的提示符会变成mysql>。这标志着已经成功进入MySQL的交互式客户端环境,可以开始执行SQL语句了。


成功登录MySQL后的终端界面。其中包含了欢迎信息、当前MySQL服务器的版本号,以及等待用户输入命令的mysql>提示符。

5. 为root用户配置密码

auth_socket插件虽然简化了本地root用户的管理操作,但它也限制了必须通过sudo才能登录,并且无法使用密码从远程客户端(如图形化界面工具或其他服务器)进行连接。为了获得更通用的登录方式,需要将root用户的认证方式改回传统的密码认证。

步骤一:查看当前认证方式

首先,在mysql>提示符下,需要查询root用户当前的认证插件是什么。这可以通过查询mysql系统数据库中的user表来完成。

SELECT user, host, plugin FROM mysql.user WHERE user = 'root';

这条SQL语句的含义是:从名为mysql的数据库里,找到名为user的表,筛选出user字段值为root的所有行,并显示这些行的user(用户名)、host(允许登录的主机地址)和plugin(认证插件)三个字段的内容。


查询结果清晰地显示,对于从localhost连接的root用户,其plugin字段的值是auth_socket,这印证了当前使用的是基于套接字的认证方式。

目标是将这个值修改为mysql_native_password,这是一种使用原生哈希算法存储密码的传统认证方式。

步骤二:修改认证方式并设置密码

使用ALTER USER语句可以修改用户的属性,包括其认证插件和密码。

ALTER USER 'root'@'localhost' IDENTIFIED WITH 'mysql_native_password' BY 'your_password';

对这条语句进行分解:

注意:在原始笔记中,该命令cALTER USER 'root'@'localhost' IDENTIFIED WITH 'mysql_native_password' you_password';存在两个语法错误:开头的c和密码部分缺少BY关键字以及引号。这里已修正为正确的SQL语法。

步骤三:刷新权限

MySQL为了提升性能,会将用户的权限信息缓存在内存中。当执行了GRANTREVOKEALTER USER等修改权限的操作后,内存中的缓存并不会立即更新。需要显式地执行FLUSH PRIVILEGES命令,通知MySQL服务器从磁盘上的授权表中重新加载权限信息,使刚才的更改立刻生效。

FLUSH PRIVILEGES;

完成以上步骤后,可以输入exitquit退出MySQL客户端。然后,尝试使用新的密码进行登录,以验证配置是否成功:

mysql -u root -p

系统会提示Enter password:,输入刚才设置的密码,如果能再次进入mysql>环境,说明密码配置成功。

二、MySQL的彻底卸载流程

在某些情况下,例如需要重装一个不同版本的MySQL,或者不再需要数据库服务时,就需要进行彻底的卸载,以确保系统中没有残留的配置文件或数据文件干扰后续操作。

  1. 停止MySQL服务:在卸载前,必须先停止正在运行的mysqld进程。

    sudo service mysql stop
  2. 卸载核心软件包及配置文件:使用apt-get remove命令并带上--purge选项。remove只删除软件包本身,而--purge会一并删除其全局的配置文件。

    sudo apt-get remove --purge mysql-server mysql-client mysql-common mysql-server-core-* mysql-client-core-*
  3. 移除不再需要的依赖项:在安装MySQL时,APT可能自动安装了一些其他的包作为依赖。当MySQL被卸载后,这些包如果不再被系统其他软件需要,就成了“孤儿”包。autoremove命令可以安全地清理它们。

    sudo apt-get autoremove
  4. 手动删除数据和日志目录--purge选项主要清理/etc目录下的配置文件,但MySQL的数据目录(默认在/var/lib/mysql)和日志文件通常需要手动删除。

    sudo rm -rf /etc/mysql /var/lib/mysql
  5. 清理其他可能的残留文件:为了做到最彻底的清理,可以使用通配符来删除其他可能散落在系统中的相关文件。

    sudo rm -rf /etc/mysql* /var/lib/mysql* /var/log/mysql*
  6. 最后刷新包管理器:完成所有清理工作后,再次更新软件包列表,保持系统包信息的一致性。

    sudo apt-get update

三、重置遗忘的root密码

忘记MySQL的root密码是初学者乃至有经验的管理员都可能遇到的问题。MySQL提供了一种恢复机制,其核心原理是:以一个临时禁用权限验证系统的特殊模式启动MySQL服务,从而允许无密码登录并重置密码,最后再恢复到正常模式。

  1. 停止当前MySQL服务:确保任何正常运行的mysqld实例都已关闭。

    sudo systemctl stop mysql
  2. 以安全模式启动MySQL:使用mysqld_safe脚本,并附带--skip-grant-tables参数。这个参数是关键,它指示MySQL服务器在启动时不加载授权表(grant tables)。因此,服务器不会进行任何权限检查,允许任何用户以任何身份连接,并拥有所有权限。末尾的&符号让该命令在后台执行。

    sudo mysqld_safe --skip-grant-tables &
  3. 无密码登入MySQL:由于权限系统被暂时禁用,可以直接以root用户身份连接,无需密码。

    sudo mysql -u root
  4. 执行密码修改操作:进入mysql>环境后,需要按顺序执行以下命令来设置新密码。

    FLUSH PRIVILEGES;

    这是一个非常重要的步骤。因为服务器启动时跳过了授权表,所以像ALTER USER这样的用户管理命令可能无法正常工作。执行FLUSH PRIVILEGES会强制服务器将授权表重新加载到内存中,这使得用户管理功能得以恢复。

    ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourNewStrongPassword!';

    现在,可以安全地执行ALTER USER语句来设置新密码。将YourNewStrongPassword!替换为一个强度足够的新密码。

    FLUSH PRIVILEGES;

    再次执行FLUSH PRIVILEGES,是为了确保新设置的密码被正确地写入磁盘并更新到内存缓存中。

    EXIT;

    完成操作后,退出MySQL客户端。

  5. 停止安全模式下的MySQL进程:需要手动结束刚才在后台启动的mysqld进程。使用killall命令可以方便地结束所有名为mysqld的进程。

    sudo killall mysqld
  6. 正常重启MySQL服务

    sudo systemctl start mysql
  7. 使用新密码登录验证

    mysql -u root -p

    系统会提示输入密码。输入刚刚设置的新密码,如果能够成功登录,则证明密码重置操作已成功。注意,原始笔记中最后的登录命令为sudo mysql -u root -o-o不是一个标准的mysql客户端参数,应为-p


四、数据库基础核心概念的深化理解

1. 剖析MySQL的客户端/服务器架构

MySQL是一个遵循经典的客户端/服务器(Client/Server)模式的软件系统。这个架构是理解其工作方式的基础。

这种C/S架构实现了数据与操作的分离,使得数据库的管理和访问变得非常灵活。客户端和服务器可以位于同一台物理机器上,也可以分布在网络的不同节点上,通过网络协议进行通信。

2. 数据库登录命令的详细拆解

登录MySQL的命令格式封装了连接服务器所必需的全部信息:

mysql -h [主机地址] -P [端口号] -u [用户名] -p


这是一个尝试使用root用户连接到IP地址为12.0.0.1、端口为3306的MySQL服务器的命令。


当只使用mysql -u root -p时,由于省略了-h-P参数,客户端会使用默认值,尝试连接localhost3306端口。

3. 数据库的本质与主流产品概览
4. Windows环境下的服务器管理

对于在Windows环境下安装的MySQL,可以通过图形化的服务管理器进行启停操作。按下Win + R键打开“运行”对话框,输入services.msc并回车,即可打开服务列表。


Windows的服务管理器界面,在列表中找到名为“MySQL”的服务(版本号可能不同),可以方便地对其进行启动、停止、暂停、重启动等操作。

5. 服务器、数据库、表的物理关系

在Linux文件系统上,MySQL的逻辑结构与物理存储之间存在着清晰的对应关系,理解这一点有助于形成一个直观的认知:


这个层级关系图形象地表达了:一个MySQL服务器实例可以管理多个数据库,而每个数据库又可以包含多张数据表。

6. 一个完整的数据库操作实例

下面通过一个从创建数据库到查询数据的完整流程,来演示SQL的基本用法。

  1. 创建数据库

    create database helloworld;

    这条命令指示MySQL服务器创建一个名为helloworld的数据库。

  2. 选择要操作的数据库

    use helloworld;

    在进行表操作之前,必须先通过USE命令告诉MySQL当前会话的上下文是哪个数据库。后续所有不显式指定数据库的SQL语句都将在helloworld数据库中执行。

    执行use helloworld;命令后,MySQL返回Database changed,确认当前工作数据库已切换。

  3. 创建数据表

    create table student ( id int, name varchar(32), gender varchar(2) );
  4. 向表中插入数据

    insert into student (id, name, gender) values (1, '张三', '男'); insert into student (id, name, gender) values (2, '李四', '女');

    使用两条INSERT INTO语句,向student表中添加了两行记录。

  5. 从表中查询数据

    select * from student;

    SELECT *是一个DQL(数据查询语言)语句,*代表查询所有列,FROM student指定了查询的数据源是student表。

    查询命令的执行结果以一个清晰的表格形式返回,包含了student表中当前存储的所有行和列的数据。

五、MySQL 逻辑架构的深入剖析

MySQL之所以能够高效、稳定地工作,得益于其精心设计的分层式、插件化的架构。这种架构使得各个组件职责分明,易于维护和扩展。


这是一个经典的MySQL逻辑架构图,它将MySQL自顶向下划分为三个主要层次:连接层、核心服务层和存储引擎层。

第一层:连接层 (Connectors & Connection Pool)
这是最外层,直接与客户端打交道。它负责处理所有与连接相关的任务:

第二层:核心服务层 (SQL Interface, Parser, Optimizer, Caches & Buffers)
这一层是MySQL的大脑,负责所有核心的数据处理逻辑。它接收来自连接层的SQL请求,并最终将执行指令传递给存储引擎层。

第三层:存储引擎层 (Storage Engines)
这是MySQL架构中最具特色的部分,负责数据的物理存储和检索。MySQL的设计允许用户为数据库中的每一张表选择不同的存储引擎,这种“可插拔”的机制赋予了MySQL极大的灵活性。

1. SQL语言的逻辑分类

结构化查询语言(SQL)根据其功能,通常被划分为以下几个主要类别:

2. 存储引擎深入探讨

可以通过执行SHOW ENGINES;命令来查看当前MySQL实例支持的所有存储引擎及其特性。

show engines;


show engines;命令的输出结果。这个表格列出了所有可用的存储引擎,其中Engine列是名称,Support列表示是否可用,DEFAULT表示该引擎是当前服务器的默认存储引擎。TransactionsXA列指明了其事务支持能力。

在众多存储引擎中,InnoDBMyISAM是最为著名和常用的两种。


这个对比图直观地总结了InnoDB和MyISAM在几个关键维度上的核心差异。

InnoDB

MyISAM

在今天的应用开发中,鉴于InnoDB在功能、性能和可靠性上的全面优势,除非有非常明确和特殊的理由,否则都应该选择并使用InnoDB作为存储引擎

最终总结

MySQL作为一个构建在操作系统之上的复杂软件系统,其分层架构是其高效、灵活和可扩展性的基石。连接层作为门户,负责处理客户端的接入和安全;核心服务层作为大脑,对SQL进行智能的解析、优化和调度;而可插拔的存储引擎层则作为执行者,提供了多样化的物理存储方案以应对不同的业务需求。从网络模型的角度来看,这三层协同工作,共同构成了应用层的数据库服务。最终,由存储引擎与操作系统内核进行交互,将数据安全、持久地写入磁盘。通过本次从安装、配置到深入其架构和核心概念的完整学习过程,为后续进行更复杂的数据库设计、SQL优化和管理维护工作奠定了坚实的基础。

互动话题:如果你想学习更多网安方面的知识和工具,可以看看以下题外话!

题外话

今天只要你给我的文章点赞,我私藏的网安学习资料一样免费共享给你们,来看看有哪些东西。

网络安全学习资源分享:

下面给大家分享一份2025最新版的网络安全学习,帮助新人小白更系统、更快速的学习黑客技术!

读者福利 |CSDN大礼包:《网络安全入门&进阶学习资源包》免费分享(安全链接,放心点击)!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1119316.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在线作图工具测评盘点:4款主流工具深度横评

随着数字化办公场景的深化,在线作图工具已成为技术团队、运营人员、创业者的必备生产力工具。相较于传统桌面设计软件,在线工具无需本地部署、支持跨设备协作、轻量化操作的优势愈发凸显。本次测评聚焦市场主流在线作图工具,以“专业实用性、…

网络延迟与丢包问题排查实战

前言 服务响应慢、接口超时、用户反馈卡顿,很多时候问题出在网络层面。延迟高、丢包、抖动这些问题看起来简单,排查起来却需要一套系统的方法。 本文整理网络延迟和丢包问题的排查思路和常用工具,配合实际案例。1. 基础检测工具 1.1 ping&…

深度解构:从chroot到容器——Mock构建环境的隔离技术演进与问题诊断

深度解构:从chroot到容器——Mock构建环境的隔离技术演进与问题诊断 引言:RPM构建的隔离需求 在Linux发行版开发中,RPM包的构建需要一个干净、可控的环境以确保构建的可重复性和可靠性。Mock作为Fedora社区开发的RPM构建工具,正…

欧盟EN 18031-1无线设备认证

对于计划进军欧盟市场的无线设备制造商来说,EN 18031-1已成为绕不开的合规门槛。自2025年8月1日正式强制执行以来,不少企业因对标准细节理解偏差,遭遇了产品扣留、测试反复等问题:有的误将旧版EN 303645证书当作豁免依据&#xff…

EN 18031-1通用网络安全认证新规

2025年8月1日,欧盟正式关闭了无线电设备通往其市场的一道关键“安全闸门”——《无线电设备指令》(RED)下的网络安全要求正式强制执行,而EN 18031-1正是这把闸门的核心钥匙。如果您正在为出口欧盟的无线设备(从智能音箱…

MT-Safety 标签env 和 locale

一、先给一句话总览 env 和 locale 并不是“函数线程安全不安全”, 而是说: 这些函数依赖一个“全局可变对象”, 只要这个对象在多线程运行期间不被修改,它们就是安全的。 二、背景:glibc 的 MT-Safety 注解体系 glibc 文档把函数分成几类: MT-Safe:多线程下可并发调用…

除了安全更新,EN 18031-1还有哪些重要的认证要求?

除安全更新外,EN 18031-1 作为欧盟 RED 指令下的核心网络安全标准,还明确了访问控制与身份验证、安全存储与通信、网络弹性、技术文档与合规声明四大核心要求,这些要求与安全更新共同构成设备进入欧盟市场的基础安全基线,具体内容…

写给开发者、内容创作者:当你“快做完了”却开始崩,这不是技术问题

你可能经历过这种时刻:功能都差不多了、测试也跑起来了、上线只差临门一脚——结果你突然开始焦虑、失眠、疯狂想重构、对细节极度挑剔,甚至找借口把发布往后拖。 《最小阻力之路》把这段状态称为“完成期”的典型难关:越接近成果&#xff0c…

如何确保设备满足EN 18031-1标准中的安全更新要求?

要确保设备满足 EN 18031-1 标准中的安全更新要求,需从技术设计、流程管控、测试验证三个维度构建闭环体系,覆盖更新包的全生命周期安全,具体可落地的步骤如下:明确安全更新的核心技术要求(标准硬性条款)EN…

通达信专抓超跌副图无未来

{}RSV:(CLOSE-LLV(LOW,20))/(HHV(HIGH,20)-LLV(LOW,20))*100; K:SMA(RSV,3,1),COLORWHITE; D:SMA(K,3,1),COLORYELLOW; 超跌极限买入:IF(CROSS(K,D) AND "CYS.CYS"<-10 AND REF("ASR.ASR",3)<10,50,0); 超跌反弹:IF(CROSS(K,D) AND K<20,80,20),C…

安达发|石油化工行业自动排产软件:驱动产业升级的核心引擎

在石油化工行业向绿色低碳转型的关键期&#xff0c;自动排产软件正以"数字大脑"的姿态重构传统生产模式。据中国石油和化学工业联合会数据显示&#xff0c;2025年我国石化行业规模以上企业产值将突破15万亿元&#xff0c;但行业平均设备利用率仅68%&#xff0c;库存周…

计算机毕设从选题到答辩,全程可指导(真实案例)

每年毕业季&#xff0c;都会有大量计算机专业学生在毕业设计阶段感到焦虑&#xff1a;选题不知道怎么选&#xff0c;系统做了一半卡壳&#xff0c;论文不会写&#xff0c;答辩又担心被问懵。实际上&#xff0c;计算机毕业设计并不是“不会做”&#xff0c;而是缺少清晰的流程规…

Python+Vue的NBA球星管理系统 Pycharm django flask

这里写目录标题项目介绍项目展示详细视频演示技术栈文章下方名片联系我即可~解决的思路开发技术介绍性能/安全/负载方面python语言Django框架介绍技术路线关键代码详细视频演示收藏关注不迷路&#xff01;&#xff01;需要的小伙伴可以发链接或者截图给我 项目介绍 随着信息技…

通达信日周共振

{}{日周共振} DIF:EMA(CLOSE,12)-EMA(CLOSE,26); DEA:EMA(DIF,9); 周DIF:("MACD.DIF#WEEK"); 周DEA:("MACD.DEA#WEEK"); M1:(DIFDEA)/2; M2:(周DIF周DEA)/2; MA60:MA(CLOSE,60); 日趋势:(DIFDEA)/2; 周趋势:(周DIF周DEA)/2; XG:周DIF>0 AND 周DEA>0 …

AI 量化为什么不敢上线?——我的 Fail-Closed 模板实战

很多人私下问过我一个问题&#xff1a;“AI 都已经能写策略、跑回测、算因子了&#xff0c; 为什么真正能上线跑真金白银的系统&#xff0c;反而很少&#xff1f;”这个问题&#xff0c;其实不在模型能力上&#xff0c; 而在上线这一步&#xff0c;谁敢签字。一、AI 量化“不敢…

Python+Vue的大学生创新创业调查问卷系统 Pycharm django flask

这里写目录标题项目介绍项目展示详细视频演示技术栈文章下方名片联系我即可~解决的思路开发技术介绍性能/安全/负载方面python语言Django框架介绍技术路线关键代码详细视频演示收藏关注不迷路&#xff01;&#xff01;需要的小伙伴可以发链接或者截图给我 项目介绍 随着科技的…

通达信回归斜率线

{}回归斜率线A:EMA(SLOPE(C,4)*20C,42); 经典RL:(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100; 经典K:SMA(经典RL,3,1); 经典D:SMA(经典K,3,1); 经典J:3*经典K-2*经典D; MAHL1:100*((EMA((HL)/2,3)-LLV(EMA((HL)/2,5),30)-(EMA(H,20)-EMA(L,20))) /(LLV(EMA((HL)/2,5),30…

红娘子双线强弱源码分享贴图

{} MID: (HIGHLOWCLOSE)/3;红先锋:SUM(MAX(0,HIGH-REF(MID,1)),a)/SUM(MAX(0,REF(MID,1)-LOW),a)*100,colorred;红娘子:REF(MA(CR,b),b/2.51),colorcyan;

【毕业设计】机器学习基于python的砖头墙裂缝识别

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

如何在 ALCOR 强风控逻辑约束下,如何把 V8.2 年化拉到 28%?——一次“先别死,再赚钱”的量化实战复盘

先说一句可能让很多量化同学不舒服的话&#xff1a;如果你的系统解释不清“为什么没死”&#xff0c; 那你谈年化&#xff0c;本身就站不住。这篇文章&#xff0c;我不会讲因子、不讲信号、不讲参数&#xff0c;更不会给买卖策略。 我只讲一件事&#xff1a;在 ALCOR 这种“强风…