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

运维实战---多种方式在Linux中部署并初始化MySQL

运维实战—多种方式在Linux中部署并初始化MySQL
    • 前言
    • 实验环境介绍
    • 一、源码包安装MySQL
      • 1、配置MySQL&编译安装
      • 2、初始化数据库
      • 3、配置环境变量
    • 二、yum安装MySQL
    • 三、rpm安装MySQL

前言

MySQL是常用的关系型数据库,具有以下特点:
1、开源,不需要支付额外的费用即可使用
2、支持包括Windows/Linux在内的多个操作系统
3、支持多种语言,包括中文编码GB 2312、BIG5,日文的shift_JIS
4、为包括C、C++、java、python、PHP在内的多种编程语言提供了API
5、支持多种存储引擎,例如MyISAM、InnoDB
6、使用标准的SQL语言进行操作
7、支持多线程,充分利用CPU资源
8、存储数据量大,32位系统表文件最大可支持4GB,64位系统表文件最大可支持8TB
9、可以定制,采用了GPL协议,通过修改源码来开发自己的MySQL系统

基于以上特点,MySQL被广泛用于学习与实际工作中,本篇文章介绍在Linux系统中使用多种方式部署并初始化MySQL数据库,包括源码安装、rpm安装以及yum安装

实验环境介绍

1、最小化安装的4核4g Centos7.6 虚拟机
2、XShell远程连接工具
3、本文章中使用的所有源码包、rpm包的下载地址:https://www.mysql.com/downloads/

一、源码包安装MySQL

相较于其他两种安装,源码安装较繁琐,但优势在于可以在安装时以及初始化阶段将需要设置的参数一次性设置到位
以下是安装过程

1、配置MySQL&编译安装

一些版本的Linux系统中默认存在mariadb组件,该组件与安装MySQL是冲突的,在安装MySQL之前必须把该组件卸载掉,其中 --nodeps可以指定只删除mariadb-libs,不删除其依赖关系

rpm -qa | grep mariadb
rpm -e --nodeps mariadb-libs

接下来为MySQL安装依赖,这些依赖包在本地yum源中均存在,无需配置其他网络yum源。不会配置本地yum源的同学请看
CentOS7.6配置本地仓库

yum install -y cmake make gcc gcc-c++ openssl openssl-devel ncurses ncurses-devel bisonbison-devel

将依赖包上传至Linux系统中需要安装命令lrzsz,该命令可实现Windows拖动文件上传至Linux系统中

yum -y install lrzsz

之后将在MySQL官网上下载的源码包拖动上传至Linux系统
拖动上传
解压源码包到指定路径下,解压完成后切换到该路径下

tar -zxf mysql-boost-5.7.37.tar.gz -C /usr/src/
cd /usr/src/mysql-5.7.37/

解压
接着进行预编译,有别于其他软件,MySQL的预编译使用的是cmake命令,复制以下代码

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/usr/local/mysql/etc -DWITH_INNOBASE_STORAGE_ENGINE=ON -DWITH_MYISAM_STORAGE_ENGINE=ON -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DENABLED_LOCAL_INFILE=ON -DMYSQL_TCP_PORT=3306 -DMYSQL_UNIX_ADDR=/usr/local/mysql/tmp/mysql.sock -DWITH_INNODB_MEMCACHED=ON -DWITH_BOOST=boost/boost_1_59_0

#解释一下上述代码
-DCMAKE_INSTALL_PREFIX —指定安装路径
-DMYSQL_DATADIR —数据目录,即MySQL的数据存放路径
-DSYSCONFDIR —配置文件所在路径
-DWITH_INNOBASE_STORAGE_ENGINE/-DWITH_MYISAM_STORAGE_ENGINE —启用两种存储引擎
-DDEFAULT_CHARSET/-DDEFAULT_COLLATION —指定字符集
-DENABLED_LOCAL_INFILE —启用或禁用LOAD DATA LOCAL INFILE 语句
-DMYSQL_TCP_PORT —指定服务端口号
-DMYSQL_UNIX_ADDR —指定Unix套接字文件的路径
-DWITH_INNODB_MEMCACHED —启用或禁用InnoDB 存储引擎对 Memcached 的支持
-DWITH_BOOST —指定boost库

运行完上述代码
运行代码
如果出现报错,检查一下依赖包是否都齐全

接着进行编译安装

make -j4 && make install

其中-j选项表示多个线程进行编译,这样可以节省时间

2、初始化数据库

安装完成后,运行如下代码

groupadd mysql
useradd -r -g mysql -s /bin/false mysql
cd /usr/local/mysql
mkdir -p /usr/local/mysql/data  
mkdir -p /usr/local/mysql/etc   
mkdir -p /usr/local/mysql/tmp  
mkdir -p /usr/local/mysql/logs  
chown -R mysql:mysql /usr/local/mysql
vim  /usr/local/mysql/etc/my.cnf

解释一下上述代码
groupadd mysql #为MySQL创建一个组来管理软件的运行
useradd -r-g mysql -s /bin/false mysql #为MySQL创建一个用户来管理软件的运行
cd /usr/local/mysql #切换到MySQL的安装路径
mkdir -p /usr/local/mysql/data #创建安装前指定的数据存放目录
mkdir -p /usr/local/mysql/etc #创建安装前指定的配置文件所在目录
mkdir -p /usr/local/mysql/tmp #创建临时文件目录
mkdir -p /usr/local/mysql/logs #创建日志文件目录
vim /usr/local/mysql/etc/my.cnf #创建编辑配置文件,默认也存在配置文件但其中内容较少

将以下的配置文件粘贴进去

[client]                                                #客户端设置
port=3306                                               #服务器监听端口,默认为3306
socket=/usr/local/mysql/tmp/mysql.sock                  #Unix套接字文件路径,默认/tmp/mysql.sock[mysqld]                                                #服务端设置
## 一般配置选项
port=3306                                               #服务器监听端口,默认为3306
basedir=/usr/local/mysql                                #MySQL安装根目录
datadir=/usr/local/mysql/data                           #MySQL数据文件目录
socket=/usr/local/mysql/tmp/mysql.sock                  #Unix套接字文件路径,默认/tmp/mysql.sock
pid-file=/usr/local/mysql/tmp/mysql.pid                 #服务进程pid文件路径
character_set_server=utf8                               #默认字符集
default_storage_engine=InnoDB                           #默认InnoDB存储引擎
user=mysql## 连接配置选项
max_connections=200                                     #最大并发连接数
table_open_cache=400                                    #表打开缓存大小,默认2000
open_files_limit=1000                                   #打开文件数限制,默认5000
max_connect_errors=200                                  #最大连接失败数,默认100
back_log=100                                            #请求连接队列数
connect_timeout=20                                      #连接超时时间,默认10秒
interactive_timeout=1200                                #交互式超时时间,默认28800秒
wait_timeout=600                                        #非交互超时时间,默认28800秒
net_read_timeout=30                                     #读取超时时间,默认30秒
net_write_timeout=60                                    #写入超时时间,默认60秒
max_allowed_packet=8M                                   #最大传输数据字节,默认4M
thread_cache_size=10                                    #线程缓冲区(池)大小
thread_stack=256K                                       #线程栈大小,32位平台196608、64位平台262144## 临时内存配置选项
tmpdir=/tmp                                             #临时目录路径
tmp_table_size=64M                                      #临时表大小,默认16M
max_heap_table_size=64M                                 #最大内存表大小,默认16M
sort_buffer_size=1M                                     #排序缓冲区大小,默认256K
join_buffer_size=1M                                     #join缓冲区大小,默认256K## Innodb配置选项
#innodb_thread_concurrency=0							#InnoDB线程并发数
innodb_io_capacity=200                                  #IO容量,可用于InnoDB后台任务的每秒I/O操作数(IOPS),
innodb_io_capacity_max=400                              #IO最大容量,InnoDB在这种情况下由后台任务执行的最大IOPS数
innodb_lock_wait_timeout=50                             #InnoDB引擎锁等待超时时间,默认50(单位:秒)innodb_buffer_pool_size=512M							#InnoDB缓冲池大小,默认128M
innodb_buffer_pool_instances=4                          #InnoDB缓冲池划分区域数
innodb_max_dirty_pages_pct=75							#缓冲池最大允许脏页比例,默认为75
innodb_flush_method=O_DIRECT                            #日志刷新方法,默认为fdatasync
innodb_flush_log_at_trx_commit=2                        #事务日志刷新方式,默认为0
transaction_isolation=REPEATABLE-READ                   #事务隔离级别,默认REPEATABLE-READinnodb_data_home_dir=/usr/local/mysql/data              #表空间文件路径,默认保存在MySQL的datadir中
innodb_data_file_path=ibdata1:128M:autoextend           #表空间文件大小
innodb_file_per_table=ON                                #每表独立表空间innodb_log_group_home_dir=/usr/local/mysql/data         #redoLog文件目录,默认保存在MySQL的datadir中
innodb_log_files_in_group=2                             #日志组中的日志文件数,默认为2
innodb_log_file_size=128M                               #日志文件大小,默认为48MB
innodb_log_buffer_size=32M                              #日志缓冲区大小,默认为16MB## MyISAM配置选项
key_buffer_size=32M                                     #索引缓冲区大小,默认8M
read_buffer_size=4M										#顺序读缓区冲大小,默认128K
read_rnd_buffer_size=4M									#随机读缓冲区大小,默认256K
bulk_insert_buffer_size=8M                              #块插入缓冲区大小,默认8M
myisam_sort_buffer_size=8M								#MyISAM排序缓冲大小,默认8M
#myisam_max_sort_file_size=1G                           #MyISAM排序最大临时大小
myisam_repair_threads=1                                 #MyISAM修复线程
skip-external-locking                                   #跳过外部锁定,启用文件锁会影响性能## 日志配置选项
log_output=FILE                                         #日志输出目标,TABLE(输出到表)、FILE(输出到文件)、NONE(不输出),可选择一个或多个以逗>号分隔
log_error=/usr/local/mysql/logs/error.log               #错误日志存放路径
log_error_verbosity=1                                   #错误日志过滤,允许的值为1(仅错误),2(错误和警告),3(错误、警告和注释),默认值为3。
log_timestamps=SYSTEM                                   #错误日志消息格式,日志中显示时间戳的时区,UTC(默认值)和 SYSTEM(本地系统时区)
general_log=ON                                          #开启查询日志,一般选择不开启,因为查询日志记录很详细,会增大磁盘IO开销,影响性能
general_log_file=/usr/local/mysql/logs/general.log      #通用查询日志存放路径## 慢查询日志配置选项
slow_query_log=ON                                       #开启慢查询日志
slow_query_log_file=/usr/local/mysql/logs/slowq.log		#慢查询日志存放路径
long_query_time=2                                       #慢查询时间,默认10(单位:秒)
min_examined_row_limit=100                              #最小检查行限制,检索的行数必须达到此值才可被记为慢查询
log_slow_admin_statements=ON                            #记录慢查询管理语句
log_queries_not_using_indexes=ON                        #记录查询未使用索引语句
log_throttle_queries_not_using_indexes=5                #记录未使用索引速率限制,默认为0不限制
log_slow_slave_statements=ON                            #记录从库复制的慢查询,作为从库时生效,从库复制中如果有慢查询也将被记录## 复制配置选项
server-id=1                                             #MySQL服务唯一标识
log-bin=mysql-bin                                       #开启二进制日志,默认位置是datadir数据目录
log-bin-index=mysql-bin.index                           #binlog索引文件
binlog_format=MIXED                                     #binlog日志格式,分三种:STATEMENT、ROW或MIXED,MySQL 5.7.7之前默认为STATEMENT,之后默认为ROW
binlog_cache_size=1M                                    #binlog缓存大小,默认32KB
max_binlog_cache_size=1G                                #binlog最大缓存大小,推荐最大值为4GB
max_binlog_size=256M                                    #binlog最大文件大小,最小值为4096字节,最大值和默认值为1GB
expire_logs_days=7                                      #binlog过期天数,默认为0不自动删除
log_slave_updates=ON                                    #binlog级联复制
sync_binlog=1                                           #binlog同步频率,0为禁用同步(最佳性能,但可能丢失事务),为1开启同步(影响性能,但最安全不会丢失任何事务),为N操作N次事务后同步1次relay_log=relay-bin                                     #relaylog文件路径,默认位置是datadir数据目录
relay_log_index=relay-log.index                         #relaylog索引文件
max_relay_log_size=256M                                 #relaylog最大文件大小
relay_log_purge=ON                                      #中继日志自动清除,默认值为1(ON)
relay_log_recovery=ON                                   #中继日志自动恢复auto_increment_offset=1                                 #自增值偏移量
auto_increment_increment=1                              #自增值自增量
slave_net_timeout=60                                    #从机连接超时时间
replicate-wild-ignore-table=mysql.%                     #复制时忽略的数据库表,告诉从线程不要复制到与给定通配符模式匹配的表
skip-slave-start                                        #跳过Slave启动,Slave复制进程不随MySQL启动而启动## 其他配置选项
#memlock=ON                                             #开启内存锁,此选项生效需系统支持mlockall()调用,将mysqld进程锁定在内存中,防止遇到操作系统导致mysqld交换到磁盘的问题[mysqldump]                                             #mysqldump数据库备份工具
quick                                                   #强制mysqldump从服务器查询取得记录直接输出,而不是取得所有记录后将它们缓存到内存中
max_allowed_packet=16M                                  #最大传输数据字节,使用mysqldump工具备份数据库时,某表过大会导致备份失败,需要增大该值(大>于表大小即可)[myisamchk]                                             #使用myisamchk实用程序可以用来获得有关你的数据库表的统计信息或检查、修复、优化他们
key_buffer_size=32M                                     #索引缓冲区大小
myisam_sort_buffer_size=8M                              #排序缓冲区大小
read_buffer_size=4M                                     #读取缓区冲大小
write_buffer_size=4M                                    #写入缓冲区大小

初始化最后一步,按照配置文件的内容来创建数据库

bin/mysqld --defaults-file=/usr/local/mysql/etc/my.cnf --initialize --user=mysql

创建数据库

3、配置环境变量

为MySQL数据库配置环境变量

echo export MYSQL_HOME=/usr/local/mysql >> /etc/profile   #软件的路径
echo export PATH=$MYSQL_HOME/bin:$PATH >> /etc/profile   #命令的路径
source /etc/profile   #重新加载系统环境变量配置文件

复制配置文件到init.d目录使系统能够使使用systemctl命令管理MySQL

cp /usr/src/mysql-5.7.37/support-files/mysql.server /etc/init.d/mysql 
cd /etc/init.d/
chmod +x mysql
systemctl daemon-reload
systemctl start mysql
chkconfig mysql on
systemctl status mysql

设置软链接,把MySQL的命令都放在默认的命令里面,使得可以在系统的任何地方使用MySQL的命令

ln -s /usr/local/mysql/bin/* /usr/local/bin/

自MySQL5.7版本起,MySQL初始有默认密码,存放在日志文件当中

cat /usr/local/mysql/logs/error.log

默认密码
将冒号之后的内容复制

mysql -uroot -p

粘贴回车
进入数据库
进入之后的第一条命令只能修改密码,其他命令均无效

set password=password('123456');

语法 set password=password(‘新密码’);

设置密码
至此,源码包安装MySQL完成,可以开始使用数据库了

二、yum安装MySQL

yum安装和rpm安装较简单
安装lrzsz命令,使文件能上传到Linux中

yum -y install lrzsz

将在MySQL官网上下载的适合自己系统版本的yum源上传
上传yum源
安装yum源

rpm -ivh mysql84-community-release-el7-1.noarch.rpm

安装yum源
查看可用的rpm包

yum list | grep mysql

安装mysql-community-servr即可,会自动解决依赖关系
在这里插入图片描述

yum -y install mysql-community-server

开启数据库服务

systemctl start mysqld && systemctl enable mysqld && systemctl status mysqld

查看mysql默认密码

cat /var/log/mysqld.log | grep password

查看默认密码
进入MySQL

mysql -uroot -p

进入数据库
修改密码

ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword!123';
FLUSH PRIVILEGES;

至此yum安装完成,可以开始使用

三、rpm安装MySQL

同样上传rpm包

yum -y install lrzsz

上传rpm包
由于rpm包的互相依赖关系,必须按照如下顺序安装

rpm -e mariadb-libs --nodeps
rpm -ivh mysql-community-common-5.7.37-1.el7.x86_64.rpm   
rpm -ivh mysql-community-libs-5.7.37-1.el7.x86_64.rpm     
rpm -ivh mysql-community-client-5.7.37-1.el7.x86_64.rpm   
rpm -ivh mysql-community-server-5.7.37-1.el7.x86_64.rpm 

下载完成之后启动

systemctl start mysqld && systemctl enable mysqld && systemctl status mysqld

查看状态

cat /var/log/mysqld.log  | grep password
mysql -uroot -p

rpm安装方式默认密码策略为8位大小写、数字、符号

set password=password('Aa12345&');

修改密码
至此安装完成

本篇文章到处结束

相关文章:

运维实战---多种方式在Linux中部署并初始化MySQL

运维实战—多种方式在Linux中部署并初始化MySQL 前言实验环境介绍一、源码包安装MySQL 1、配置MySQL&编译安装2、初始化数据库3、配置环境变量 二、yum安装MySQL三、rpm安装MySQL 前言 MySQL是常用的关系型数据库,具有以下特点: 1、开源&#xff…...

SQL注入攻击

SQL注入攻击的原理 原理:将SQL命令插入到web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器,执行恶意的SQL命令 SQL注入攻击的主要原因 SQL注入主要原因是程序员在开发用户和数据库的系统时没有对用户输入的字符串进行过滤…...

面试常问的压力测试问题

性能测试作为软件开发中的关键环节,确保系统在高负载下仍能高效运行。压力测试作为性能测试的重要类型,旨在通过施加超出正常负载的压力,观察系统在极端条件下的表现。面试中,相关问题常被问及,包括定义、重要性、与负…...

云原生事件驱动架构:构建实时响应的数字化神经系统

引言:重塑企业实时决策能力 Uber实现事件驱动架构升级后,实时供需匹配延迟降至8ms,动态定价策略响应速度提升1200倍。Netflix通过事件流处理实现个性化推荐,用户点击率提高34%,事件处理吞吐量达2000万/秒。Confluent基…...

css3d放置的面板方向不对问题排查

以往在threejs左手坐标系下,cameranew THREE.Vector3(0, 0, 1),好像在贴css3d的时候从来不会出问题。而这次接到一个朋友是用右手坐标系的,camera默认不设置方向,则应该是(0,1,0) c…...

K8S学习之基础七:k8s中node污点和pod容忍度

污点和容忍度 污点就是定义在节点上的键值属性数据,可以决定拒绝哪些pod taints是键值数据,用在节点上,定义污点。 tolerations是键值数据,用在pod上,定义容忍度,能容忍哪些污点。 查看node污点&#x…...

python流水线自动化项目教程

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言1. 项目环境准备Python安装选择Python开发环境安装必要库 2. 数据获取与理解4. 模型训练流水线6. 模型保存7. 模型部署(简单 Web 服务)8…...

机器学习算法——分类任务

算法: 1、决策树 2、随机森林 3、梯度提升树 4、逻辑回归 5、支持向量机SVM 6、K近邻 KNN 7、朴素贝叶斯 8、多层感知机 9、统一分类 10、比较总结 11、完整代码 1、决策树 1.1 Decision Tree Analysis (C4.5,CART,CHAID)决策树 算法树结构特征选择连续值处理缺失…...

AJAX复习记录

一、什么是AJAX AJAX( Asynchronous JavaScript And XML)就是异步的 JS 和 XML 通过 AJAX 可以在浏览器中向服务器发送异步请求 最大的优势:无刷新获取数据,就是可以在不刷新网页的情况下向服务器发送请求,用于实现…...

内网穿透的应用-企业级远程办公方案:NAS部署网页版Linux,HTTPS加密访问全配置

文章目录 前言1. 下载Docker-Webtop镜像2. 运行Docker-Webtop镜像3. 本地访问网页版Linux系统4. 群晖NAS安装Cpolar工具5. 配置异地访问Linux系统6. 异地远程访问Linux系统7. 固定异地访问的公网地址 前言 今天要给大家分享一个超炫酷的技能——如何在你的群晖NAS设备上部署Do…...

《白帽子讲 Web 安全》之移动 Web 安全

目录 摘要 一、WebView 简介 二、WebView 对外暴露 WebView 对外暴露的接口风险 三、通用型 XSS - Universal XSS 介绍 四、WebView 跨域访问 五、与本地代码交互 js 5.1接口暴露风险: 5.2漏洞利用: 5.3JavaScript 与 Native 代码通信 六、Chr…...

CSS_复合选择器

目录 7. 复合选择器 7.1 交集选择器 7.2 并集选择器 7.3 后代选择器 7.4 子代选择器 7.5 兄弟选择器 7.6 属性选择器 7.7 伪类选择器 7.7.1动态伪类 7.7.2结构伪类 7.7.3否定伪类 7.7.4 UI伪类 7.7.5 目标选择器 7. 复合选择器 7.1 交集选择器 作用:…...

测试工程师Ai应用实战指南简例prompt

以下是一个真实具体的案例,展示测试工程师如何在不同阶段结合DeepSeek提升效率。案例基于电商平台"订单超时自动关闭"功能测试: 案例背景 项目名称:电商平台订单系统V2.3 测试目标:验证"用户下单后30分钟未支付,订单自动关闭并释放库存"功能 技术栈:…...

贪心人生,贪心算法

引言 贪心算法(Greedy Algorithm)是一种在每一步选择中都采取当前状态下最优(或最有利)的选择,从而希望导致全局最优解的算法。贪心算法的核心思想是局部最优解能够导致全局最优解。 贪心算法通常用于解决最优化问题…...

【论文阅读笔记】用于恶劣天气条件下的目标检测的IA-YOLO(Image-Adaptive YOLO) | 适合雾天和低光照场景

目录 摘要 1 方法 ■ DIP模块 ▲像素级滤波器 ▲锐化滤波器 ▲去雾滤波器 ■ CNN-PP Module ■ 检测网络模块 ■ 混合数据训练 2 实验 ■ 实现细节 ■ 有雾图像上的实验 ■ 低照度图像上的实验 ■ 消融研究 ■ 有效分析 结论 论文题目:Image-Adapti…...

【Elasticsearch】Set up a data stream 创建data stream

在 Elasticsearch 中,数据流(Data Stream)是一种用于管理时间序列数据的高级功能,它通过自动管理索引的生命周期和版本控制,简化了大规模时间序列数据的存储和查询。以下是结合上述翻译内容,对 Elasticsear…...

redhat无网利用iso搭建本地yum源

redhat8 挂载iso镜像到本地目录 第一种方法: 上传rhel8的iso文件到服务器。 mkdir /mnt/cdrom mount -t iso9660 -o loop rhel-8.10-x86_64-dvd.iso /mnt/cdrom 第二种方法: 如果是vmware等自己安装的虚拟机,可以直接挂载iso镜像到cd/dvd…...

我的ChatGPT怎么登不上?

近期,不少用户反馈在使用ChatGPT时遇到登录困难、连接超时等问题。本文将从技术角度分析常见原因,并提供合规、安全的解决方案,同时结合开发者实际需求推荐实用工具,助您高效应对登录障碍。 ChatGPT登录失败的常见原因 网络环境限…...

飞机大战lua迷你世界脚本

-- 迷你世界飞机大战 v1.2 -- 星空露珠工作室制作 -- 最后更新:2024年1月 ----------------------------- -- 迷你世界API适配配置 ----------------------------- local UI { BASE_ID 7477478487091949474-22856, -- UI界面ID ELEMENTS { BG 1, -- 背景 BTN_LE…...

链表常用技巧和操作总结

链表是我们数据结构很重要的一点,也是常考的点 接下来我会先进行技巧总结,然后再通过具体的题来进行详解 总结 1.常用技巧 画图: 用笔是肯定比只用脑子强的,画图会更加清晰 引入虚拟头节点: 便于处理边界: 如果没有头节点,也就是第一个节点就有有效数据,就需要考虑边界问题…...

装饰模式(Decorator Pattern)重构java邮件发奖系统实战

前言 现在我们有个如下的需求,设计一个邮件发奖的小系统, 需求 1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其…...

Objective-C常用命名规范总结

【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名(Class Name)2.协议名(Protocol Name)3.方法名(Method Name)4.属性名(Property Name)5.局部变量/实例变量(Local / Instance Variables&…...

对WWDC 2025 Keynote 内容的预测

借助我们以往对苹果公司发展路径的深入研究经验,以及大语言模型的分析能力,我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际,我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测,聊作存档。等到明…...

oracle与MySQL数据库之间数据同步的技术要点

Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异,它们的数据同步要求既要保持数据的准确性和一致性,又要处理好性能问题。以下是一些主要的技术要点: 数据结构差异 数据类型差异&#xff…...

Spring AI 入门:Java 开发者的生成式 AI 实践之路

一、Spring AI 简介 在人工智能技术快速迭代的今天,Spring AI 作为 Spring 生态系统的新生力量,正在成为 Java 开发者拥抱生成式 AI 的最佳选择。该框架通过模块化设计实现了与主流 AI 服务(如 OpenAI、Anthropic)的无缝对接&…...

GruntJS-前端自动化任务运行器从入门到实战

Grunt 完全指南:从入门到实战 一、Grunt 是什么? Grunt是一个基于 Node.js 的前端自动化任务运行器,主要用于自动化执行项目开发中重复性高的任务,例如文件压缩、代码编译、语法检查、单元测试、文件合并等。通过配置简洁的任务…...

Netty从入门到进阶(二)

二、Netty入门 1. 概述 1.1 Netty是什么 Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients. Netty是一个异步的、基于事件驱动的网络应用框架,用于…...

tomcat入门

1 tomcat 是什么 apache开发的web服务器可以为java web程序提供运行环境tomcat是一款高效,稳定,易于使用的web服务器tomcathttp服务器Servlet服务器 2 tomcat 目录介绍 -bin #存放tomcat的脚本 -conf #存放tomcat的配置文件 ---catalina.policy #to…...

Mysql故障排插与环境优化

前置知识点 最上层是一些客户端和连接服务,包含本 sock 通信和大多数jiyukehuduan/服务端工具实现的TCP/IP通信。主要完成一些简介处理、授权认证、及相关的安全方案等。在该层上引入了线程池的概念,为通过安全认证接入的客户端提供线程。同样在该层上可…...

从实验室到产业:IndexTTS 在六大核心场景的落地实践

一、内容创作:重构数字内容生产范式 在短视频创作领域,IndexTTS 的语音克隆技术彻底改变了配音流程。B 站 UP 主通过 5 秒参考音频即可克隆出郭老师音色,生成的 “各位吴彦祖们大家好” 语音相似度达 97%,单条视频播放量突破百万…...