当前位置: 首页 > news >正文

【MySQL】在 Centos7 环境安装 MySQL -- 详细完整教程

说明:

  • 安装与卸载中,用户全部切换成为 root,一旦安装,普通用户就能使用。

一、卸载内置环境

1、卸载不要的环境

[root@VM-8-5-centos ~]$ ps ajx | grep mariadb # 先检查是否有mariadb存在
13134 14844 14843 13134 pts/0 14843 S+ 1005 0:00 grep --color=auto mariadb
19010 19187 19010 19010 ? -1 Sl 27 16:55 /usr/libexec/mysqld --basedir=/usr
--datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-
error=/var/log/mariadb/mariadb.log --pid-file=/var/run/mariadb/mariadb.pid --
socket=/var/lib/mysql/mysql.sock
[root@VM-8-5-centos ~]$ systemctl stop mariadb.service # 停止mariadb服务
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ===
Authentication is required to manage system services or units.
Authenticating as: root
Password:
==== AUTHENTICATION COMPLETE ===
[root@VM-8-5-centos ~]$ ps axj | grep mariadb # 停止完成
13134 14976 14975 13134 pts/0 14975 S+ 1005 0:00 grep --color=auto mariadb

mariadb 其实就是 mysql,只不过是 mysql 的另一种拉出来的开源分支,也可以正常使用,如果不想卸载也是可以的。


2、检查系统安装包


[root@VM-8-5-centos ~]$ rpm -qa | grep mariadb
or
[root@VM-8-5-centos ~]$ rpm -qa | grep mysql
...
...
...# 下面是打印出来的mysql的样例
[root@VM-8-5-centos ~]# rpm -qa | grep mysql
mysql-community-common-5.7.41-1.el7.x86_64
mysql-community-server-5.7.41-1.el7.x86_64
mysql57-community-release-el7-11.noarch
mysql-community-client-5.7.41-1.el7.x86_64
mysql-community-libs-5.7.41-1.el7.x86_64

3、卸载这些默认的安装包

#卸载显示出来的mariadb/mysql安装包
[root@VM-8-5-centos ~]$ sudo yum remove mariadb # 还是试着将上面的包都一个一个卸载吧备份/etc/my.cnf,备份/var/lib/mysql数据

4、获取 mysql 官方 yum 源

下载 MySQL yum包:

wget http://repo.mysql.com/mysql57-community-release-el7-10.noarch.rpm

#1. 获取mysql官方yum源 http://repo.mysql.com/
# 一定要看好下面的文字!如果后面自己安装不成功,就看看这个
# 注意:最好安装和自己系统一致的mysql版本,否则可能会存在软件兼容性问题
# 查看自己的系统版本
# [root@VM-8-5-centos ~]# cat /etc/redhat-release
# CentOS Linux release 7.8.2003(Core)
# 可以进入 http://repo.mysql.com/,找一下和自己版本一致的资源
# 下载到你的本地,然后上传到你的Linux服务器

二、 配置 MySQL yum 源

1、安装 mysql yum 源,对比前后 yum 源

安装 MySQL 源:rpm -Uvh mysql57-community-release-el7-10.noarch.rpm

安装前
[root@VM-8-5-centos MySQL]$ ls
mysql57-community-release-el7-10.noarch.rpm查看你本地的yum源 [每个人的都不同,没有mysql相关的yum源]
[root@VM-8-5-centos MySQL]$ ls /etc/yum.repos.d/ -al
total 96
drwxr-xr-x. 2 root root 4096 Apr 12 11:04 .
drwxr-xr-x. 106 root root 12288 Apr 12 10:50 ..
-rw-r--r-- 1 root root 2523 Dec 26 19:31 Centos-Base.repo
-rw-r--r-- 1 root root 614 Nov 10 18:42 CentOS-Base.repo_bak
-rw-r--r-- 1 root root 2523 Jun 16 2018 CentOS-Base.repo.bak
-rw-r--r-- 1 root root 1309 Apr 8 2020 CentOS-CR.repo
-rw-r--r-- 1 root root 649 Apr 8 2020 CentOS-Debuginfo.repo
-rw-r--r-- 1 root root 230 Nov 10 18:42 CentOS-Epel.repo
-rw-r--r-- 1 root root 314 Apr 8 2020 CentOS-fasttrack.repo
-rw-r--r-- 1 root root 630 Apr 8 2020 CentOS-Media.repo
-rw-r--r-- 1 root root 998 Dec 11 2018 CentOS-SCLo-scl.repo
-rw-r--r-- 1 root root 971 Oct 29 2018 CentOS-SCLo-scl-rh.repo
-rw-r--r-- 1 root root 1331 Apr 8 2020 CentOS-Sources.repo
-rw-r--r-- 1 root root 7577 Apr 8 2020 CentOS-Vault.repo
-rw-r--r-- 1 root root 616 Apr 8 2020 CentOS-x86_64-kernel.repo
-rw-r--r-- 1 root root 1919 Apr 8 23:57 docker-ce.repo
-rw-r--r-- 1 root root 1050 Nov 1 04:33 epel.repo
-rw-r--r-- 1 root root 1149 Nov 1 04:33 epel-testing.repo
-rw-r--r-- 1 root root 173 Dec 9 16:08 google-chrome.repo
-rw-r--r-- 1 root root 1627 Apr 5 2017 mysql-community.repo #安装mysql yum源
-rw-r--r-- 1 root root 1663 Apr 5 2017 mysql-community-source.repo

2、再看看能不能正常工作

[root@VM-8-5-centos MySQL]$ yum list |grep mysql
Repository epel is listed more than once in the configuration
mysql57-community-release.noarch el7-10 installed
akonadi-mysql.x86_64 1.9.2-4.el7 base
anope-mysql.x86_64 2.0.9-3.el7 epel
apr-util-mysql.x86_64 1.5.2-6.el7 base
calligra-kexi-driver-mysql.x86_64 2.9.10-2.el7 epelcollectd-mysql.x86_64 5.8.1-1.el7 epeldmlite-plugins-mysql.x86_64 1.14.2-1.el7 epeldovecot-mysql.x86_64 1:2.2.36-8.el7 base

 一开始的时候我们安装的 yum,在安装完之后是可以选择删除的,因为每次 yum 操作都会更新一次,耗费时间。

rpm -qa | grep mysql

yum -y remove mysql57-community-release-el7-10.noarch


三、开始安装

1、安装 mysql 服务

安装 MySQL 服务端,需要等待一些时间:yum install -y mysql-community-server

[root@VM-8-5-centos MySQL]$ sudo yum install -y mysql-community-server
[sudo] password for root:
Loaded plugins: aliases, auto-update-debuginfo, fastestmirror, protectbase
Repository epel is listed more than once in the configuration
...Installing : mysql-community-common-5.7.33-1.el7.x86_64 #公共模块Installing : mysql-community-libs-5.7.33-1.el7.x86_64 #库Installing : mysql-community-client-5.7.33-1.el7.x86_64 #客户端Installing : mysql-community-server-5.7.33-1.el7.x86_64 #服务器
... #安装了服务和客户端# 如果报错了,看第16步《常见问题》

2、查看配置文件和数据存储位置

[root@VM-8-5-centos MySQL]$ ls /etc/my.cnf
/etc/my.cnf
[root@VM-8-5-centos MySQL]$ sudo ls /var/lib/mysql
....

3、启动服务 

启动 MySQL:systemctl start mysqld.service

[root@VM-8-5-centos MySQL]$ systemctl start mysqld.service
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ===
Authentication is required to manage system services or units.
Authenticating as: root
Password:
==== AUTHENTICATION COMPLETE ===

4、查看启动服务

检查是否启动成功:systemctl status mysqld.service

[root@VM-8-5-centos MySQL]$ ps axj |grep mysqld
1 23183 23182 23182 ? -1 Sl 27 0:00 /usr/sbin/mysqld --daemonize --
pid-file=/var/run/mysqld/mysqld.pid
13134 23243 23242 13134 pts/0 23242 S+ 1005 0:00 grep --color=auto mysqld
[root@VM-8-5-centos MySQL]$ sudo ls -al /var/lib/mysql
total 122956
drwxr-x--x 5 mysql mysql 4096 Apr 12 11:23 .
drwxr-xr-x. 39 root root 4096 Apr 12 11:11 ..
-rw-r----- 1 mysql mysql 56 Apr 12 11:23 auto.cnf
-rw------- 1 mysql mysql 1680 Apr 12 11:23 ca-key.pem
-rw-r--r-- 1 mysql mysql 1112 Apr 12 11:23 ca.pem
-rw-r--r-- 1 mysql mysql 1112 Apr 12 11:23 client-cert.pem
-rw------- 1 mysql mysql 1676 Apr 12 11:23 client-key.pem
-rw-r----- 1 mysql mysql 436 Apr 12 11:23 ib_buffer_pool
-rw-r----- 1 mysql mysql 12582912 Apr 12 11:23 ibdata1
-rw-r----- 1 mysql mysql 50331648 Apr 12 11:23 ib_logfile0
-rw-r----- 1 mysql mysql 50331648 Apr 12 11:23 ib_logfile1
-rw-r----- 1 mysql mysql 12582912 Apr 12 11:23 ibtmp1
drwxr-x--- 2 mysql mysql 4096 Apr 12 11:23 mysql
srwxrwxrwx 1 mysql mysql 0 Apr 12 11:23 mysql.sock
-rw------- 1 mysql mysql 6 Apr 12 11:23 mysql.sock.lock
drwxr-x--- 2 mysql mysql 4096 Apr 12 11:23 performance_schema
-rw------- 1 mysql mysql 1680 Apr 12 11:23 private_key.pem
-rw-r--r-- 1 mysql mysql 452 Apr 12 11:23 public_key.pem
-rw-r--r-- 1 mysql mysql 1112 Apr 12 11:23 server-cert.pem
-rw------- 1 mysql mysql 1680 Apr 12 11:23 server-key.pem
drwxr-x--- 2 mysql mysql 12288 Apr 12 11:23 sys

四、开始登陆

1、登陆方法一【不行就下一个】

获取临时密码,MySQL5.7 为 root 用户随机生成了一个密码:

grep 'temporary password' /var/log/mysqld.log

#获取临时root密码
[root@VM-8-5-centos MySQL]$ sudo grep 'temporary password' /var/log/mysqld.log
2021-04-12T03:23:46.153263Z 1 [Note] A temporary password is generated for root@localhost:
yLMalT:v+5l*#使用临时密码登录
[root@VM-8-5-centos MySQL]$ mysql -uroot -p
Enter password:#判断修改密码时候新密码是否符合当前的策略,不满足报错,不让修改,关闭它
#安全强度,默认为中,即1,要求必须包含 数字、符号、大小写字母,长度至少为8位
mysql> set global validate_password_policy=0;
Query OK, 0 rows affected (0.00 sec)#密码最小长度
mysql> set global validate_password_length=1;
Query OK, 0 rows affected (0.00 sec)#修改本地登录密码,暂不授权远程登录
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'yourpassword';
Query OK, 0 rows affected (0.00 sec)mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)# 如果你安装最新的mysql,没有所谓的临时密码,root默认没有密码

通过临时密码登录 MySQL,进行修改密码操作:mysql -uroot -p

使用临时密码登录后,不能进行其他的操作,否则会报错,这时候我们进行修改密码操作。

因为 MySQL 的密码规则需要很复杂,我们一般自己设置的不会设置成这样,所以我们全局修改一下:

mysql> set global validate_password_policy=0;

mysql> set global validate_password_length=1;

这时候我们就可以自己设置想要的密码了。

ALTER USER 'root'@'localhost' IDENTIFIED BY 'yourpassword';


2、登陆方法二【不行就下一个】

# 如果你安装的最新的mysql,没有所谓的临时密码,root默认没有密码
# 试着直接client登陆一下

3、登陆方法三【应该行了吧】

[root@VM-8-5-centos MySQL]# vim /etc/my.cnf # 打开mysql配置文件在[mysqld]最后一栏配置(不知道是什么,就放在配置文件最后) 加入:skip-grant-tables 选项,并保存退出[root@VM-8-5-centos MySQL]# systemctl restart mysqld # 重启mysql服务# 登陆成功
[root@VM-8-5-centos MySQL]# mysql -uroot
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 7
Server version: 5.7.44 MySQL Community Server (GPL)Copyright (c) 2000, 2023, Oracle and/or its affiliates.Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql>

五、设置配置文件

1、设置开机启动【可以不设】

先退出 mysql 命令行,然后输入以下命令:

#开启开机自启动
systemctl enable mysqld
systemctl daemon-reload

2、配置 my.cnf

设置 MySQL 的字符集为 UTF-8,令其支持中文:

vim /etc/my.cnf

#配置一下my.conf,主要是数据库客户端和服务器的编码格式[root@VM-8-5-centos MySQL]$ cat /etc/my.cnf
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html[mysqld]
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2Mport=3306
character-set-server=utf8
default-storage-engine=innodbdatadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0character-set-server=utf8
default-storage-engine=innodblog-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
skip-grant-tables# 配置完毕,重启mysql即可

重启一下 MySQL,令配置生效:

重启 mysql:service mysqld restart

or

停止 mysql:service mysqld stop

启动 mysql:service mysqld start


3、常见问题:

mysql 已经配置了客户端服务器utf8编码,但是无法输入中文确保您在终端命令行中可以输入中文
[root@VM-8-5-centos ~]$ env | grep LANG
LANG=en_US.utf8
 安装遇到秘钥过期的问题:
Failing package is: mysql-community-client-5.7.39-1.EL7.86_64GPG Keys are configured as: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql解决方案:
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

相关文章:

【MySQL】在 Centos7 环境安装 MySQL -- 详细完整教程

说明: 安装与卸载中,用户全部切换成为 root,一旦安装,普通用户就能使用。 一、卸载内置环境 1、卸载不要的环境 [rootVM-8-5-centos ~]$ ps ajx | grep mariadb # 先检查是否有mariadb存在 13134 14844 14843 13134 pts/0 14843…...

理解React中的setState()方法

在React中,setState()方法是一个非常重要的概念,它用于更新组件的状态并触发重新渲染。本文将探讨setState()的使用方法、工作原理以及一些基本的用法。 setState()方法简介 setState()是React组件中用于更新状态的方法之一。它接受一个对象或一个函数作…...

数据库管理-第144期 深入使用EMCC-01(20240204)

数据库管理144期 2024-02-04 数据库管理-第144期 深入使用EMCC-01(20240204)1 用户管理2 配置告警动作3 配置意外事件规则总结 数据库管理-第144期 深入使用EMCC-01(20240204) 作者:胖头鱼的鱼缸(尹海文&am…...

flask_django_python五金电商网络营销的可视化分析研究

前面部分完成了系统需求分析,了解到新闻数据业务方面的需求,系统主要分为用户管理、五金信息管理、在线留言、系统管理等功能。销的可视化研究,并对这些数据进行处理, 然后对这些数据进行可视化分析和统计。 Python 爬虫技术目前来…...

Java并发(二十三)----同步模式之保护性暂停

1、定义 即 Guarded Suspension,用在一个线程等待另一个线程的执行结果 要点 有一个结果需要从一个线程传递到另一个线程,让他们关联同一个 GuardedObject 如果有结果不断从一个线程到另一个线程那么可以使用消息队列 JDK 中,join 的实现…...

###C语言程序设计-----C语言学习(9)#函数基础

前言:感谢您的关注哦,我会持续更新编程相关知识,愿您在这里有所收获。如果有任何问题,欢迎沟通交流!期待与您在学习编程的道路上共同进步。 一. 基础知识的学习 1.函数的定义 函数是一个完成特定工作的独立程序模块&…...

Dockerfile文件参数配置和使用

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…...

Java实现婚恋交友网站 JAVA+Vue+SpringBoot+MySQL

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 会员管理模块2.3 新闻管理模块2.4 相亲大会管理模块2.5 留言管理模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 会员信息表3.2.2 新闻表3.2.3 相亲大会表3.2.4 留言表 四、系统展示五、核心代码5.…...

React16源码: React中详解在渲染阶段Suspend的源码实现

Suspend 挂起详解 1 )概述 在react的更新过程当中,它的任务是可以被挂起的,也就是 Suspend关于 Suspend 字面意思就是挂起在某次更新的任务更新完成之后,暂时不提交 在 react更新中,分为两个阶段,首先是re…...

mac电脑风扇控制软件:Macs Fan Control Pro for mac 激活版

Macs Fan Control 是一款专门为 Mac 用户设计的软件,它可以帮助用户控制和监控 Mac 设备的风扇速度和温度。这款软件允许用户手动调整风扇速度,以提高设备的散热效果,减少过热造成的风险。 Macs Fan Control 可以在菜单栏上显示当前系统温度和…...

easyexcel解析跨多行的数据

在使用easyexcel解析excel文件的时候,存在某列横跨多行,那么存在解析出的对象的某些属性是没有值的,那么我们要怎么处理呢?代码如下 定义实体对应excel文件 public class EtcParkingReconciliationDailyImportModel implements S…...

双目相机立体匹配基础

双目匹配就是用左相机和右相机去拍摄同一个点,目的是找到三维世界的同一个点,也就是在左相机和右相机中的成像点之间的像素差(视差),根据视差去求解深度,那么找到左相机点到右相机的同一个对应点这个过程就…...

【图论】网络流

网络流目前只整理模板,学习的话这篇博客可能不太适合 代码参考下方博客,加了一些自己的注释 算法学习笔记(28): 网络流究级的最大流算法:ISAP与HLPP FF 和 EK 仅用作理解代码,赛时请使用 Dinic 或 ISAP 下文建图方式都基于链式…...

【Matplotlib】figure方法 你真的会了吗!?

🎈个人主页:甜美的江 🎉欢迎 👍点赞✍评论⭐收藏 🤗收录专栏:matplotlib 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共同学习、交流进…...

[C++]继承(续)

一、基类和派生类对象赋值转换 在public继承时,父类和子类是一个“is - a”的关系。 子类对象赋值给父类对象/父类指针/父类引用,我们认为是天然的,中间不产生临时对象,也叫作父子类赋值兼容规则(切割/切片&#xff…...

恒创科技:服务器内存不足影响大吗?

​  服务器在为网站、应用程序和在线服务提供支持方面发挥着关键作用。这些服务器需要提供最佳性能,以确保正常无缝的用户体验,而RAM是显著影响服务器性能的关键配置之一。 RAM 是一种随机存取存储器,计算机和服务器使用它来临时存储正在使…...

深入理解网络通信和TCP/IP协议

目录 计算机网络是什么? 定义和分类 计算机网络发展简史 计算机网络体系结构 OSI 七层模型 TCP/IP 模型 TCP/IP 协议族 TCP/IP 网络传输中的数据 地址和端口号 MAC地址 IP 地址 端口号 为什么端口号有65535个? 综述 TCP 特性 TCP 三次握…...

Open CASCADE学习|分割曲线

1、通过参数进行分割 分别获得曲线的 FirstParameter 和 LastParameter ,然后对参数进行分割,获得n个ui,并对每个ui调用D0(获得这个点的坐标值)或D1(获得这个点的坐标值和切向量)。这个方法的优…...

vulhub中Adminer远程文件读取漏洞复现(CVE-2021-43008)

Adminer是一个PHP编写的开源数据库管理工具,支持MySQL、MariaDB、PostgreSQL、SQLite、MS SQL、Oracle、Elasticsearch、MongoDB等数据库。 在其版本1.12.0到4.6.2之间存在一处因为MySQL LOAD DATA LOCAL导致的文件读取漏洞。 参考链接: https://gith…...

MOS管驱动电流估算-Qg参数

MOS管驱动电流估算 例:FDH45N50F如下参数: 有人可能会这样计算: 开通电流 带入数据得 关断电流 带入数据得 于是乎得出这样的结论,驱动电流只需 250mA左右即可。仔细想想这样计算对吗? 这里必须要注意这样一个条件细…...

Qt/C++开发监控GB28181系统/取流协议/同时支持udp/tcp被动/tcp主动

一、前言说明 在2011版本的gb28181协议中,拉取视频流只要求udp方式,从2016开始要求新增支持tcp被动和tcp主动两种方式,udp理论上会丢包的,所以实际使用过程可能会出现画面花屏的情况,而tcp肯定不丢包,起码…...

从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路

进入2025年以来,尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断,但全球市场热度依然高涨,入局者持续增加。 以国内市场为例,天眼查专业版数据显示,截至5月底,我国现存在业、存续状态的机器人相关企…...

mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包

文章目录 现象:mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包遇到 rpm 命令找不到已经安装的 MySQL 包时,可能是因为以下几个原因:1.MySQL 不是通过 RPM 包安装的2.RPM 数据库损坏3.使用了不同的包名或路径4.使用其他包…...

零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)

本期内容并不是很难,相信大家会学的很愉快,当然对于有后端基础的朋友来说,本期内容更加容易了解,当然没有基础的也别担心,本期内容会详细解释有关内容 本期用到的软件:yakit(因为经过之前好多期…...

【JVM面试篇】高频八股汇总——类加载和类加载器

目录 1. 讲一下类加载过程? 2. Java创建对象的过程? 3. 对象的生命周期? 4. 类加载器有哪些? 5. 双亲委派模型的作用(好处)? 6. 讲一下类的加载和双亲委派原则? 7. 双亲委派模…...

LRU 缓存机制详解与实现(Java版) + 力扣解决

📌 LRU 缓存机制详解与实现(Java版) 一、📖 问题背景 在日常开发中,我们经常会使用 缓存(Cache) 来提升性能。但由于内存有限,缓存不可能无限增长,于是需要策略决定&am…...

安卓基础(Java 和 Gradle 版本)

1. 设置项目的 JDK 版本 方法1:通过 Project Structure File → Project Structure... (或按 CtrlAltShiftS) 左侧选择 SDK Location 在 Gradle Settings 部分,设置 Gradle JDK 方法2:通过 Settings File → Settings... (或 CtrlAltS)…...

水泥厂自动化升级利器:Devicenet转Modbus rtu协议转换网关

在水泥厂的生产流程中,工业自动化网关起着至关重要的作用,尤其是JH-DVN-RTU疆鸿智能Devicenet转Modbus rtu协议转换网关,为水泥厂实现高效生产与精准控制提供了有力支持。 水泥厂设备众多,其中不少设备采用Devicenet协议。Devicen…...

C++ 类基础:封装、继承、多态与多线程模板实现

前言 C 是一门强大的面向对象编程语言,而类(Class)作为其核心特性之一,是理解和使用 C 的关键。本文将深入探讨 C 类的基本特性,包括封装、继承和多态,同时讨论类中的权限控制,并展示如何使用类…...

7种分类数据编码技术详解:从原理到实战

在数据分析和机器学习领域,分类数据(Categorical Data)的处理是一个基础但至关重要的环节。分类数据指的是由有限数量的离散值组成的数据类型,如性别(男/女)、颜色(红/绿/蓝)或产品类…...