当前位置: 首页 > 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…...

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...

微信小程序 - 手机震动

一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注&#xff1a;文档 https://developers.weixin.qq…...

Nuxt.js 中的路由配置详解

Nuxt.js 通过其内置的路由系统简化了应用的路由配置&#xff0c;使得开发者可以轻松地管理页面导航和 URL 结构。路由配置主要涉及页面组件的组织、动态路由的设置以及路由元信息的配置。 自动路由生成 Nuxt.js 会根据 pages 目录下的文件结构自动生成路由配置。每个文件都会对…...

2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面

代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口&#xff08;适配服务端返回 Token&#xff09; export const login async (code, avatar) > {const res await http…...

Web 架构之 CDN 加速原理与落地实践

文章目录 一、思维导图二、正文内容&#xff08;一&#xff09;CDN 基础概念1. 定义2. 组成部分 &#xff08;二&#xff09;CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 &#xff08;三&#xff09;CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 &#xf…...

浪潮交换机配置track检测实现高速公路收费网络主备切换NQA

浪潮交换机track配置 项目背景高速网络拓扑网络情况分析通信线路收费网络路由 收费汇聚交换机相应配置收费汇聚track配置 项目背景 在实施省内一条高速公路时遇到的需求&#xff0c;本次涉及的主要是收费汇聚交换机的配置&#xff0c;浪潮网络设备在高速项目很少&#xff0c;通…...

基于 TAPD 进行项目管理

起因 自己写了个小工具&#xff0c;仓库用的Github。之前在用markdown进行需求管理&#xff0c;现在随着功能的增加&#xff0c;感觉有点难以管理了&#xff0c;所以用TAPD这个工具进行需求、Bug管理。 操作流程 注册 TAPD&#xff0c;需要提供一个企业名新建一个项目&#…...

A2A JS SDK 完整教程:快速入门指南

目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库&#xff…...

【JavaSE】多线程基础学习笔记

多线程基础 -线程相关概念 程序&#xff08;Program&#xff09; 是为完成特定任务、用某种语言编写的一组指令的集合简单的说:就是我们写的代码 进程 进程是指运行中的程序&#xff0c;比如我们使用QQ&#xff0c;就启动了一个进程&#xff0c;操作系统就会为该进程分配内存…...

(一)单例模式

一、前言 单例模式属于六大创建型模式,即在软件设计过程中,主要关注创建对象的结果,并不关心创建对象的过程及细节。创建型设计模式将类对象的实例化过程进行抽象化接口设计,从而隐藏了类对象的实例是如何被创建的,封装了软件系统使用的具体对象类型。 六大创建型模式包括…...