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

mysql的源码包安装

安装方式一:(编译好的直接安装)

1.添加一块10G的硬盘,给root逻辑卷扩容

(下面安装方式二有,一模一样的装就行,我就不写了,再写的话篇幅就太长了)

2.下载编译好的源码包mysql


下载方式1

通过网盘分享的文件:mysql-compile-finish-5.25.tar.gz
链接: https://pan.baidu.com/s/1D46ncApOlt1Unvf5zTzg1w?pwd=4pn6 提取码: 4pn6


下载方式2

我用夸克网盘分享了「mysql-compile-finish-5.25.tar.gz」,点击链接即可保存。打开「夸克APP」,无需下载在线播放视频,畅享原画5倍速,支持电视投屏。
链接:https://pan.quark.cn/s/29a844ed63fb


3.解压

 [root@xxx ~]# tar -xvf /mysql-compile-finish-5.25.tar.gz -C /usr/local/

4.创建mysql用户与数据目录

[root@xxx /]# id mysql        #查看mysql用户,没有的创建一个
uid=27(mysql) gid=27(mysql) 组=27(mysql)

[root@xxx /]# useradd -u 27 -d /var/lib/mysql -s /bin/false mysql        #创建mysql用户

[root@xxx /]# mkdir /usr/local/mysql/data

5.修改权限

[root@xxx /]# chown -R mysql.mysql /usr/local/mysql/

6.创建和编写配置文件

[root@xxx /]# mv /etc/my.cnf /etc/my.cnf.bak        #不使用rpm产生的配置文件(如果之前安装过rpm包的mysql就会产生,这个会影响源码包mysql的启动)

[root@xxx /]# touch /etc/my.cnf        #创建一个配置文件
[root@xxx /]# vim /etc/my.cnf        #编写配置文件

[mysqld]
socket=/tmp/mysql.sock

[mysql]
socket=/tmp/mysql.sock

7.初始化

[root@xxx /]# cd /usr/local/mysql/        #切换到/usr/local/mysql/目录下

[root@xxx mysql]# /usr/local/mysql/bin/mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data        #初始化

(报错就一行一行的复制)

初始化时 数据目录data必须为空目录,记得把密码给复制下来。

8.启动登录mysql

[root@xxx /]# /usr/local/mysql/bin/mysqld_safe --user=mysql &        #启动mysql

[root@xxx mysql]# netstat -anplt | grep :3306        #检查端口

[root@xxx mysql]# ps -aux | grep mysql        #检查进程

可以查看到mysql的端口与进程,成功启动源码包的mysql服务端!

[root@xxx ~]#  /usr/local/mysql/bin/mysql -uroot -p"6eVVkWjt/kkL"        #登录mysql

登录成功!

9.修改密码

mysql> set password=password('123');

修改成功

10.修改源码mysql服务端的启动方式

原因

由于每次启动都要输入/usr/local/mysql/bin/mysqld_safe --user=mysql & 这么长的命令很不方便,所以我们要修改一下启动方式,使之和rpm包安装的mysql的启动方式相同。

修改

[root@xxx mysql]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqldd

#复制启动脚本到/etc/init.d/下并重命名为mysqldd

#/etc/init.d/目录通常用于存放系统服务的启动脚本

[root@xxx mysql]# chkconfig --add mysqldd

#将指定的服务mysqldd添加到系统服务列表

# chkconfig是用于管理系统服务启动和停止的工具

[root@xxx mysql]# service mysqldd restart

#重启源码包的mysql服务检验是否添加成功

创建成功!

注意事项和说明

(注意:cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqldd和chkconfig --add mysqldd的顺序不能反,只有先将源码包mysql的启动脚本复制到/etc/init.d/目录下,chkconfig工具才能找到并识别mysqldd服务,进而将其添加到系统服务列表中。)

(说明:cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqldd这里的mysqldd就是启动脚本的脚本名,改成啥都行,别跟系统自带的脚本冲突了就行,都能启动,这里改成mysqldd是因为我这里以前安装过rpm包的mysq,里面已经有一个叫mysql的脚本了,必须区分开,不过你后面的chkconfig --add mysqldd的名字要对应上,就是说你前面写的脚本名叫abc,这里chkconfig --add abc也要改成abc)

11.修改源码客户端的登录方式

原因

由于每次启动都要输入/usr/local/mysql/bin/mysqld_safe --user=mysql & 这么长的命令很不方便,所以我们要修改一下启动方式,使之和rpm包安装的mysql的启动方式相同。

修改

[root@xxx ~]# $PATH        #查看对应的可执行文件所在的目录
-bash: /usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:

(随便一个)

[root@xxx ~]# ln -s /usr/local/mysql/bin/mysql /usr/local/bin/mysqldd        #创建软链接

/usr/local/mysql/bin/mysql        #源文件路径

/usr/local/bin/mysqldd        #要创建的符号链接的路径和名称

创建成功!

12.设置开启自启动

[root@xxx /]# chkconfig --add mysqldd

[root@xxx /]# chkconfig mysqldd on

也可以

[root@xxx /]# systemctl restart mysqldd


报错解决:


报错1

解决方法:

一行一行的复制,这个报错是因为命令行中存在不可见的特殊字符,像空格、制表符等,他这个博客文本复制粘贴有问题,粘过来不能调节,一行一行复制就行了。


报错2

解决方法一(跳过授权表修改密码来登录):

[root@xxx ~]# vim /etc/my.cnf        #(添加skip-grant-tables,在启动时跳过权限验证系统)

[mysqld]
socket=/tmp/mysql.sock
skip-grant-tables       
[mysql]
socket=/tmp/mysql.sock

[root@xxx ~]# systemctl restart mysqldd        #重启mysql使配置生效(没有就去配置软链接,就在上面)

MySQL [(none)]> update mysql.user set authentication_string=null where User='root';
Query OK, 0 rows affected (0.00 sec)
Rows matched: 1  Changed: 0  Warnings: 0

#清空 之前root 用户 MySQL 密码信息

MySQL [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

#刷新权限表

MySQL [(none)]> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '456';
Query OK, 0 rows affected (0.00 sec)

#修改密码

MySQL [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

#再次刷新权限表

MySQL [(none)]> exit
Bye

#退出

[root@xxx ~]# vim /etc/my.cnf        #(删除skip-grant-tables)

[mysqld]
socket=/tmp/mysql.sock
[mysql]
socket=/tmp/mysql.sock

[root@xxx ~]# systemctl restart mysqldd        #重启使配置生效

[root@xxx ~]# mysql -uroot -p456        #登录

登录成功!

解决方法二(删库重新初始化登录,一次不行就多试几次):

[root@xxx ~]# killall mysqld        #停止mysql进程(一次杀不死多杀几次,这个mysql的进程挺难杀的,直到显示没有这个进程)

[root@xxx ~]# rm -rf /usr/local/mysql/data/*        #删库

[root@xxx /]# cd /usr/local/mysql/        #切换到/usr/local/mysql/目录下
[root@xxx mysql]# /usr/local/mysql/bin/mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data        #初始化

(报错就一行一行的复制)

初始化时 数据目录data必须为空目录,记得把密码给复制下来。

然后后面再登录就行了


报错3

CMake Error at cmake/boost.cmake:81 (MESSAGE):

You can download it with -DDOWNLOAD_BOOST=1 -DWITH_BOOST=

This CMake script will look for boost in . If it is not there,

it will download and unpack it (in that directory) for you.

If you are inside a firewall, you may need to use an http proxy:

export http_proxy=Example Domain

解决方法:

删除缓存文件

[root@localhost mysql-5.7.18]# rm -rf CMakeCache.txt

boost 版本过低

1.在/usr/local下创建一个名为boost的文件夹

mkdir -p /usr/local/boost

2.进入这个新创建的文件夹然后下载boost

wget http://www.sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz

3.解压

tar -xvzf boost_1_59_0.tar.gz

4.继续cmake,添加上红色部分

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc -DWITH_READLINE=1 -DMYSQL_TCP_PORT=3306 -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock -DENABLED_LOCAL_INFILE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/boost


报错4

CMake Error at cmake/readline.cmake:64 (MESSAGE):

Curses library not found. Please install appropriate package,

remove CMakeCache.txt and rerun cmake.On Debian/Ubuntu, package name is libncurses5-dev, on Redhat and derivates it is ncurses-devel.

Call Stack (most recent call first):

cmake/readline.cmake:107 (FIND_CURSES)

cmake/readline.cmake:197 (MYSQL_USE_BUNDLED_EDITLINE)

CMakeLists.txt:488 (MYSQL_CHECK_EDITLINE)

-- Configuring incomplete, errors occurred!

解决方法:

yum install ncurses-devel

[root@localhost [root@localhost mysql-5.7.18]# rm -rf CMakeCache.txt

[root@localhost mysql-5.7.18]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc -DWITH_READLINE=1 -DMYSQL_TCP_PORT=3306 -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock -DENABLED_LOCAL_INFILE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/boost


报错5

解决方法:

yum install gcc gcc-c++


报错6

Cannot find appropriate system libraries for WITH_SSL=system.

Make sure you have specified a supported SSL version.

Valid options are :

system (use the OS openssl library),

yes (synonym for system),

解决方法:

yum install openssl-devel


报错7

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

情况1: socket文件没有在 /var/lib/mysql/mysql.sock

情况2: mysqld服务未启动

解决:

1.查看mysld服务端口 netstat -anplt | grep :3306

a.没端口服务未启动

b.有端口,文件位置不正确

cat /etc/my.cnf

socket=/var/lib/mysql/mysql.sock

mysql配置文件

[root@mail ~]# vim /etc/my.cnf

[mysqld]

socket=/var/lib/mysql/mysql.sock

[mysql]

socket=/var/lib/mysql/mysql.sock

user=root

password=123


安装方式二:(自己编译安装)

1.添加一块10G的硬盘,给root逻辑卷扩容

硬盘添加

扩容

(如果感觉自己的硬盘空间充足可以不用扩容)

[root@xxx ~]# pvcreate /dev/sdj        #创建物理卷

[root@xxx ~]# vgextend centos /dev/sdj        #扩容卷组

[root@xxx ~]# lvextend -l +100%FREE /dev/centos/root        #扩容逻辑卷

[root@xxx ~]# xfs_growfs /        #扩容文件系统

2.下载mysql


下载方式1

阿里镜像/官网下载:

(官网太慢了,我这里用的阿里的镜像站)

阿里巴巴开源镜像站-OPSX镜像站-阿里云开发者社区

mysql-MySQL-5.7安装包下载_开源镜像站-阿里云

[root@xxx /]# wget https://mirrors.aliyun.com/mysql/MySQL-5.7/mysql-5.7.38.tar.gz

下载成功!


下载方式2

网盘:

通过网盘分享的文件:mysql-5.7.38.tar.gz
链接: https://pan.baidu.com/s/1MvdMR0GHTQufvD_NjkZL_w?pwd=ity7 提取码: ity7


下载方式3

夸克:

我用夸克网盘分享了「mysql-5.7.38.tar.gz」,点击链接即可保存。打开「夸克APP」,无需下载在线播放视频,畅享原画5倍速,支持电视投屏。
链接:https://pan.quark.cn/s/4235e8494137


3.下载boost C++ 开源库集合


下载方式1

网盘:

通过网盘分享的文件:boost_1_59_0.tar.gz
链接: https://pan.baidu.com/s/1VivJhxdPuGLmD3ah770S3w?pwd=yg7u 提取码: yg7u


下载方式2

夸克:

我用夸克网盘分享了「boost_1_59_0.tar.gz」,点击链接即可保存。打开「夸克APP」,无需下载在线播放视频,畅享原画5倍速,支持电视投屏。链接:https://pan.quark.cn/s/108b3f664e3b


4.创建mysql用户

[root@xxx /]# id mysql        #查看mysql用户,没有的创建一个
uid=27(mysql) gid=27(mysql) 组=27(mysql)

[root@xxx /]# useradd -u 27 -d /var/lib/mysql -s /bin/false mysql        #创建mysql用户

5.编译安装

安装前要有这两个

[root@xxx /]# tar -xvf /mysql-5.7.38.tar.gz -C /usr/local/src/        #解压到/usr/local/src/目录下

[root@xxx /]# tar -xvf /boost_1_59_0.tar.gz -C /usr/local/        #解压到/usr/local/目录下

[root@xxx /]# mv /usr/local/boost_1_59_0/ /usr/local/boost/        #重命名

[root@xxx ~]# yum install cmake        #安装编译工具

[root@xxx ~]# yum install gcc gcc-c++        #安装gcc与gcc-c++编译器

[root@xxx ~]# yum install openssl-devel        #安装openssl-devel

[root@xxx ~]# yum install ncurses-devel         #安装ncurses-devel包

[root@xxx ~]# cd /usr/local/src/mysql-5.7.38/        #切换到mysql-5.7.38目录下

[root@xxx mysql-5.7.38]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc -DMYSQL_TCP_PORT=3306 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DENABLED_LOCAL_INFILE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/boost       

#配置编译参数(他这个博客的文本复制过来调节不了了,一行一行的复制哈,兄弟们,这个一整个全复制,可能会有问题,可能是带上空格了,但一行一行的复制绝对没问题)

参数说明:

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql 安装路径

-DMYSQL_DATADIR=/usr/local/mysql/data 数据目录

-DSYSCONFDIR=/etc -DWITH_READLINE=1 支持readline

-DMYSQL_TCP_PORT=3306 端口

-DMYSQL_UNIX_ADDR=/tmp/mysql.sock socket文件位置

-DENABLED_LOCAL_INFILE=1 local_infile服务器变量指示能否使用load data local infile命令

-DEXTRA_CHARSETS=all 支持所有字符集

-DDEFAULT_CHARSET=utf8 支持utf-8

-DDEFAULT_COLLATION=utf8_general_ci 支持utf-8通用字符集

-DDOWNLOAD_BOOST=1 启动文件

-DWITH_BOOST=/usr/local/boost 启动文件位置

[root@xxx mysql-5.7.38]# make        #编译(编译时间较长,需要耐心等待)

[root@xxx mysql-5.7.38]# make install        #安装

6.创建数据目录

[root@xxx /]# mkdir /usr/local/mysql/data        #创建数据目录

7.修改权限

[root@xxx mysql]# chown -R mysql.mysql /usr/local/mysql/        #修改权限
[root@xxx mysql]# ls -l /usr/local/mysql/

8.创建与编写配置文件

[root@xxx /]# mv /etc/my.cnf /etc/my.cnf.bak        #不使用rpm产生的配置文件(如果之前安装过rpm包的mysql就会产生,这个会影响源码包mysql的启动)

[root@xxx /]# touch /etc/my.cnf        #创建一个配置文件
[root@xxx /]# vim /etc/my.cnf        #编写配置文件

[mysqld]
socket=/tmp/mysql.sock

[mysql]
socket=/tmp/mysql.sock

 9.初始化

[root@xxx /]# cd /usr/local/mysql/        #切换到/usr/local/mysql/目录下
[root@xxx mysql]# /usr/local/mysql/bin/mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data        #初始化

(报错就一行一行的复制)

初始化时 数据目录data必须为空目录,记得把密码给复制下来。

10.启动登录mysql

[root@xxx /]# /usr/local/mysql/bin/mysqld_safe --user=mysql &        #启动mysql

[root@xxx mysql]# netstat -anplt | grep :3306        #检查端口

[root@xxx mysql]# ps -aux | grep mysql        #检查进程

可以查看到mysql的端口与进程,成功启动源码包的mysql服务端!

[root@xxx mysql]# /usr/local/mysql/bin/mysql -uroot -p"BfyZaGad=5hZ"        #登录

启动成功!

11.修改密码

mysql> set password=password('123');

修改成功!

12.修改源码mysql服务端的启动方式

原因

由于每次启动都要输入/usr/local/mysql/bin/mysqld_safe --user=mysql & 这么长的命令很不方便,所以我们要修改一下启动方式,使之和rpm包安装的mysql的启动方式相同。

修改

[root@xxx mysql]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqldd

#复制启动脚本到/etc/init.d/下并重命名为mysqldd

#/etc/init.d/目录通常用于存放系统服务的启动脚本

[root@xxx mysql]# chkconfig --add mysqldd

#将指定的服务mysqldd添加到系统服务列表

# chkconfig是用于管理系统服务启动和停止的工具

[root@xxx mysql]# service mysqldd restart

#重启源码包的mysql服务检验是否添加成功

创建成功!


注意事项和说明

(注意:cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqldd和chkconfig --add mysqldd的顺序不能反,只有先将源码包mysql的启动脚本复制到/etc/init.d/目录下,chkconfig工具才能找到并识别mysqldd服务,进而将其添加到系统服务列表中。)

(说明:cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqldd这里的mysqldd就是启动脚本的脚本名,改成啥都行,别跟系统自带的脚本冲突了就行,都能启动,这里改成mysqldd是因为我这里以前安装过rpm包的mysq,里面已经有一个叫mysql的脚本了,必须区分开,不过你后面的chkconfig --add mysqldd的名字要对应上,就是说你前面写的脚本名叫abc,这里chkconfig --add abc也要改成abc)


13.修改源码客户端的登录方式

原因

由于每次启动都要输入/usr/local/mysql/bin/mysqld_safe --user=mysql & 这么长的命令很不方便,所以我们要修改一下启动方式,使之和rpm包安装的mysql的启动方式相同。

修改

[root@xxx ~]# $PATH        #查看对应的可执行文件所在的目录
-bash: /usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:

(随便一个)

[root@xxx ~]# ln -s /usr/local/mysql/bin/mysql /usr/local/bin/mysqldd        #创建软链接

/usr/local/mysql/bin/mysql        #源文件路径

/usr/local/bin/mysqldd        #要创建的符号链接的路径和名称

创建成功!

14.设置开机自启动

[root@xxx /]# chkconfig --add mysqldd

[root@xxx /]# chkconfig mysqldd on

也可以

[root@xxx /]# systemctl restart mysqldd


报错解决


报错1

一行一行的复制,这个报错是因为命令行中存在不可见的特殊字符,像空格、制表符等,他这个博客文本复制粘贴有问题,粘过来不能调节,一行一行复制就行了。


报错2

方法一(跳过授权表修改密码来登录):

[root@xxx ~]# vim /etc/my.cnf        #(添加skip-grant-tables,在启动时跳过权限验证系统)

[mysqld]
socket=/tmp/mysql.sock
skip-grant-tables       
[mysql]
socket=/tmp/mysql.sock

[root@xxx ~]# systemctl restart mysqldd        #重启mysql使配置生效(没有就去配置软链接,就在上面)

MySQL [(none)]> update mysql.user set authentication_string=null where User='root';
Query OK, 0 rows affected (0.00 sec)
Rows matched: 1  Changed: 0  Warnings: 0

#清空 之前root 用户 MySQL 密码信息

MySQL [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

#刷新权限表

MySQL [(none)]> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '456';
Query OK, 0 rows affected (0.00 sec)

#修改密码

MySQL [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

#再次刷新权限表

MySQL [(none)]> exit
Bye

#退出

[root@xxx ~]# vim /etc/my.cnf        #(删除skip-grant-tables)

[mysqld]
socket=/tmp/mysql.sock
[mysql]
socket=/tmp/mysql.sock

[root@xxx ~]# systemctl restart mysqldd        #重启使配置生效

[root@xxx ~]# mysql -uroot -p456        #登录

登录成功!

方法二(删库重新初始化登录,一次不行就多试几次):

[root@xxx ~]# killall mysqld        #停止mysql进程(一次杀不死多杀几次,这个mysql的进程挺难杀的,直到显示没有这个进程)

[root@xxx ~]# rm -rf /usr/local/mysql/data/*        #删库

[root@xxx /]# cd /usr/local/mysql/        #切换到/usr/local/mysql/目录下
[root@xxx mysql]# /usr/local/mysql/bin/mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data        #初始化

(报错就一行一行的复制)

初始化时 数据目录data必须为空目录,记得把密码给复制下来。

然后后面再登录就行了


感谢支持!

相关文章:

mysql的源码包安装

安装方式一:(编译好的直接安装) 1.添加一块10G的硬盘,给root逻辑卷扩容 (下面安装方式二有,一模一样的装就行,我就不写了,再写的话篇幅就太长了) 2.下载编译好的源码包…...

win11系统无法打开软件_组策略无法打开_gpedit.msc不生效_为了对电脑进行保护,已经阻止此应用---Windows工作笔记057

碰到这个问题挺麻烦的,要用的软件打不开了. 其实解决方法就是去组策略中修改一个策略就可以了,但是: 先来说: 而且,使用cmd输入的gpedit.msc也打不开了. 这个怎么解决? @echo off pushd "%~dp0"dir /b C:\Windows\servicing\Packages\Microsoft-Windows-GroupPo…...

【JAVA】io流之缓冲流

①BufferedInputStream、BufferedOutputStream(适合读写非普通文本文件) ②BufferedReader、BufferedWriter(适合读写普通文本文件。) 缓冲流的读写速度快,原理是:在内存中准备了一个缓存。读的时候从缓存中…...

from flask_session import Session 为什么是Session(app)这么用?

在 Flask 中,from flask_session import Session 和 Session(app) 的用法是为了配置和使用 Flask-Session 扩展,将用户的会话(Session)数据存储到服务器端(如 Redis、数据库或文件系统),而不是默…...

AI赋能的未来城市:如何用智能化提升生活质量?

这会是我们憧憬的未来城市吗? 随着技术的不断进步和城市化进程的加速,现代城市面临着诸多挑战——交通拥堵、环境污染、能源消耗、人口老龄化等问题愈发突出。为了应对这些挑战,建设智慧城市已成为全球发展的重要趋势。在这一进程中&#xf…...

【Go】Go wire 依赖注入

1. wire 简介 wire 是一个 Golang 的依赖注入框架(类比 Spring 框架提供的依赖注入功能) ⭐ 官方文档:https://github.com/google/wire 这里关乎到编程世界当中一条好用的设计原则:A用到了B,那么B一定是通过依赖注入的…...

深度集成DeepSeek与Java开发:智能编码新纪元全攻略 [特殊字符]

一、DeepSeek:Java开发者的第二大脑 🧠 1.1 传统开发痛点VS智能开发体验 传统开发DeepSeek智能辅助效率提升对比手动编写重复代码一键生成模板代码代码量减少70%↑调试全靠断点日志智能定位缺陷根源问题排查时间缩短60%↓文档维护耗时费力自动生成更新…...

WEB前端将指定DOM生成图片并下载最佳实践(html2canvas)

前言: html2canvas 是一个 JavaScript 库,其主要作用是将 HTML 元素或其部分内容渲染为 Canvas 图像。通过它,开发者可以将网页中的任意 DOM 元素(包括文本、图片、样式等)转换为图片格式(如 PNG 或 JPEG&…...

掌握.NET Core后端发布流程,如何部署后端应用?

无论你是刚接触.NET Core的新手还是已有经验的开发者,在这篇文章中你将会学习到一系列实用的发布技巧与最佳实践,帮助你高效顺利地将.NET Core后端应用部署到生产环境中 目录 程序发布操作 Docker容器注册表 文件夹发布 导入配置文件 网站运行操作 …...

深度学习学习笔记(34周)

目录 摘要 Abstracts 简介 Hourglass Module(Hourglass 模块) 网络结构 Intermediate Supervision(中间监督) 训练过程细节 评测结果 摘要 本周阅读了《Stacked Hourglass Networks for Human Pose Estimation》&#xf…...

C++ 设计模式-备忘录模式

游戏存档实现&#xff0c;包括撤销/重做、持久化存储、版本控制和内存管理 #include <iostream> #include <memory> #include <deque> #include <stack> #include <chrono> #include <fstream> #include <sstream> #include <ct…...

TOGAF之架构标准规范-信息系统架构 | 应用架构

TOGAF是工业级的企业架构标准规范&#xff0c;信息系统架构阶段是由数据架构阶段以及应用架构阶段构成&#xff0c;本文主要描述信息系统架构阶段中的应用架构阶段。 如上所示&#xff0c;信息系统架构&#xff08;Information Systems Architectures&#xff09;在TOGAF标准规…...

第一届网谷杯

统计四场的所有题目&#xff08;共计12题&#xff0c;四场比赛一共上了21题【包括换题】&#xff09; 随便记记&#xff0c;以免老题复用&#xff08;已经复用了&#xff09; Web 文件包含 1 伪协议 http://120.202.175.143:8011/?cphp://filter/convert.base64-encode/reso…...

Linux(ubuntu) GPU CUDA 构建Docker镜像

一、创建Dockerfile FROM ubuntu:20.04#非交互式&#xff0c;以快速运行自动化任务或脚本&#xff0c;无需图形界面 ENV DEBIAN_FRONTENDnoninteractive# 安装基础工具 RUN apt-get update && apt-get install -y \curl \wget \git \build-essential \software-proper…...

mysql -DQL语句和DCL语句

DQL 数据查询语言&#xff08;Data Query Language&#xff0c;DQL&#xff09;是数据库操作语言的重要组成部分&#xff0c;主要用于从数据库中检索数据&#xff0c;核心关键字为SELECT。以下从语法结构、常见操作及示例等方面详细介绍&#xff1a; 语法结构 DQL 的标准语法…...

掌握 ElasticSearch 组合查询:Bool Query 详解与实践

掌握 ElasticSearch 组合查询&#xff1a;Bool Query 详解与实践 一、引言 (Introduction)二、Bool 查询基础2.1 什么是 Bool 查询&#xff1f;2.2 Bool 查询的四种子句2.3 语法结构 三、Bool 查询的四种子句详解与示例3.1 must 子句3.2 filter 子句3.3 should 子句3.4 must_no…...

C++ 类和对象(友元、内部类、匿名对像)

目录 一、前言 二、正文 1.友元 1.1友元函数的使用 1.1.1外部友元函数可访问类的私有成员&#xff0c;友员函数仅仅是一种声明&#xff0c;他不是类的成员函数。 1.1.2一个函数可以是多个类的友元函数 2.友元类的使用 2.1什么是友元类 2.2 友元类的关系是单向的&#x…...

PostgreSQL 常用函数

PostgreSQL 常用函数 在数据库管理系统中&#xff0c;函数是执行特定任务的基本构建块。PostgreSQL 是一个功能强大的开源关系数据库管理系统&#xff0c;提供了丰富的内置函数&#xff0c;这些函数极大地增强了数据库操作的能力。以下是一些在 PostgreSQL 中常用的函数&#…...

掌握 ElasticSearch 四种match查询的原理与应用

文章目录 一、引言 (Introduction)二、准备工作&#xff1a;创建索引和添加示例数据三、match 查询四、match_all 查询五、multi_match 查询六、match_phrase 查询七、总结 (Conclusion) 一、引言 (Introduction) 在信息爆炸的时代&#xff0c;快速准确地找到所需信息至关重要…...

解决:Conda虚拟环境中未设置CUDA_HOME的问题

背景&#xff1a;我是Ubuntu22.04系统&#xff0c;最近在复现FoundationPose算法&#xff0c;按照README构建部署环境时&#xff0c;有一步一直卡住&#xff0c;看了下是未找到CUDA_HOME这个环境变量。 网上搜了下这个错误&#xff0c;需要设置CUDA_HOME的环境变量路径&#x…...

如何优化SQL存储过程数据合并_使用MERGE语句高效更新

...

从基础到进阶:最短路径辅助的快速扫描法(SPAFSM)在复杂介质走时计算中的精度提升实践

1. 快速扫描法(FSM)基础与原理解析 快速扫描法(Fast Sweeping Method, FSM)是地震波走时计算中的经典算法&#xff0c;由Zhao在2005年首次提出。它的核心思想是通过有限差分法求解程函方程(Eikonal equation)&#xff0c;模拟地震波在地下介质中的传播时间。想象一下&#xff0…...

告别机械对焦!用Python+OpenCV玩转光场相机数字重聚焦(附实战代码)

用PythonOpenCV实现光场相机数字重聚焦&#xff1a;从原理到实战 在传统摄影中&#xff0c;对焦是一个需要精确控制的机械过程——镜头组前后移动&#xff0c;直到光线在传感器上形成清晰的像。而光场相机彻底颠覆了这一范式&#xff0c;它通过微透镜阵列记录光线的方向和位置信…...

告别散装工具链:用Hugging Face LeRobot一站式搞定机器人学习(附SO-101机械臂实战)

告别散装工具链&#xff1a;用Hugging Face LeRobot一站式搞定机器人学习&#xff08;附SO-101机械臂实战&#xff09; 机器人学习领域长期存在一个令人头疼的问题&#xff1a;工具链过于分散。想象一下&#xff0c;你需要同时处理HDF5格式的数据集、Gym风格的仿真环境、Stable…...

别再死记硬背了!用动画图解二叉排序树的插入与删除(附C++代码调试技巧)

动画拆解二叉排序树&#xff1a;从插入删除到调试实战 二叉排序树是数据结构中最经典的平衡与搜索思想的结合体&#xff0c;但很多初学者在理解插入和删除操作时&#xff0c;常常陷入机械记忆的困境。本文将通过动画分步演示和IDE调试技巧&#xff0c;带您真正掌握二叉排序树的…...

影刀RPA自动化上架前的数据准备怎么实现?基于大模型的商品属性结构化方案

在电商多平台矩阵铺货的实战开发中&#xff0c;许多技术团队通过影刀 RPA 成功打通了商品发布的自动化流程。然而&#xff0c;当业务真正投入生产环境后&#xff0c;往往会暴露处一个极具挑战性的效率瓶颈&#xff1a;前端的 UI 填表动作虽然实现了自动化&#xff0c;但上架前复…...

从 .NET 8 到 .NET 9 RC:C# 14 AOT 对 Dify 客户端的 ABI 兼容性断层已确认——3 类 runtime panic 场景、2 种 patch 方案、1 小时热修复指南

第一章&#xff1a;C# 14 原生 AOT 部署 Dify 客户端 安全性最佳方案C# 14 原生 AOT&#xff08;Ahead-of-Time&#xff09;编译能力显著提升了 .NET 应用的启动性能与攻击面收敛能力&#xff0c;结合 Dify 的 RESTful API 设计&#xff0c;可构建零依赖、无 JIT、内存隔离的客…...

你的STM32数据存对了吗?FatFS文件系统在SD卡与SPI Flash上的性能实测与选型指南

STM32存储方案实战&#xff1a;FatFS在SD卡与SPI Flash上的性能对决与工程选型 当你的嵌入式设备需要记录传感器数据、存储配置文件或保存用户日志时&#xff0c;选择哪种存储方案最合适&#xff1f;面对市面上琳琅满目的SD卡、SPI Flash芯片&#xff0c;工程师往往陷入性能、成…...

终极指南:5分钟免费定制Windows UEFI开机画面,告别千篇一律的厂商Logo

终极指南&#xff1a;5分钟免费定制Windows UEFI开机画面&#xff0c;告别千篇一律的厂商Logo 【免费下载链接】HackBGRT Windows boot logo changer for UEFI systems 项目地址: https://gitcode.com/gh_mirrors/ha/HackBGRT 厌倦了每次开机都看到那个一成不变的Window…...

避坑指南:S32K1xx系列Flash操作的那些“对齐”陷阱与中断安全

S32K1xx系列Flash操作实战&#xff1a;规避对齐陷阱与中断安全的最佳实践 在嵌入式开发中&#xff0c;Flash操作一直是系统可靠性的关键环节。S32K1xx系列微控制器凭借其出色的性能和丰富的外设资源&#xff0c;在汽车电子和工业控制领域广受欢迎。然而&#xff0c;许多开发者在…...