Linux学习-83-MySQL安装过程

news2024/10/6 0:26:16

17.12 MySQL安装

  • 作为LAMP架构的后端,是一款流行的开源关系数据库系统。在企业网站、业务系统等应用中,各种账户信息、产品信息,客户资料、业务数据等都可以存储到MySQL数据库,其他程序可以通过SQL语句来查询,更改这些信息。
  • mysql5和 mysql8两版本安装方式不同,分别介绍下两种安装方式。推荐使用mysql8安装
17.12.1 mysql5安装

1.添加 mysql 用户和 mysql 用户组

#添加mysql用户组
[root@CncLucZK ~]# groupadd mysql
#创建普通用户管理mysql,指定mysql用户的初始组是mysql组
[root@CncLucZK ~]# useradd -s /sbin/nologin -g mysql mysql

这里添加的 mysql 用户和用户组是稍后用来给 MySQL 安装目录分配权限用的,所以并不需要设定密码,因为这个用户是不能直接登录 Linux 系统的。

2.进入 MySQL 解压缩目录,编译前配置,编译安装

#进入 MySQL 解压缩目录
[root@CncLucZK ~]# cd /usr/local/src/mysql-5.5.23
#编译前配置
[root@CncLucZK mysql-5.5.23]# cmake \ #命令
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ #指定安装位置
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \ #指定socket(套接字)文件位置
-DEXTRA_CHARSETS=all \ #支持所有的扩展字符集
-DDEFAULT_CHARSET=utf8 \ #指定默认字符集
-DDEFAULT_COLLATION=utf8_general_ci \ #指定默认字符校对
-DWITH_MYISAM_STORAGE_ENGINE=1 \ #安装myisam存储引擎
-DWITH_INNOBASE_STORAGE_ENGINE=1 \ #安装innodb存储引擎
-DWITH_MEMORY_STORAGE_ENGINE=1 \ #安装memory存储引擎
-DWITH_READLINE=1 \ #支持readline库
-DENABLED_LOCAL_INFILE=1 \ #启用加载本地数据
-DMYSQL_USER=mysql \ #指定MySQL运行用户
-DMYSQL_TCP_PORT=3306 #指定MySQL端口

[root@CncLucZK  mysql-5.5.23]# make && make install

cmake编译配置期间如果发现:-bash: cmake: command not found问题说明cmake没有安装。

使用 yum -y install cmake进行安装。然后使用 cmake --version查看下安装版本;

然后若出现cmake: symbol lookup error: cmake: undefined symbol: archive_write_add_filter_zstd这个问题,那么需要安装libarchive开源压缩库来访问许多压缩文件格式;输入该命令yum install libarchive,然后再次查看cmake版本cmake --version文件解决。

对于cmake: symbol lookup error问题,还可以安装低版本或者高版本的 cmake

卸载cmake程序:yum remove cmake 或 rpm -e cmake
重新安装cmake:网址:https://cmake.org/download/
创建软连接:ln -s /xx-path/cmake /usr/bin/cmake

使用 cmake 进行编译。如果编译过程中出现了报错,则不再使用“make clean”命令清除缓存及临时文件,而是直接删除“rm-rf CMakeCache.txt”文件。

3.生成MySQL的配置文件,并修改配置文件

  • 这个配置文件不用手工建立,在 MySQL 安装目录中给我们准备了模板文件,只需把模板文件复制到指定位置并改名即可。命令如下:
[root@CncLucZK mysql-5.5.23]#cp /usr/local/mysql/share/mysql/my-medium.cnf  /etc/my.cnf
#或者是support-files文件下的/my-default.cnf作为模板文件
[root@CncLucZK mysql-5.5.23]#cp support-files/my-default.cnf /etc/my.cnf
#配置系统识别mysql 服务,可以使用service mysql start
[root@CncLucZK mysql-5.5.23]#cp support-files/mysql.server /etc/init.d/mysqld
#配置mysql开机自启动服务
[root@CncLucZK mysql-5.5.23]#chkconfig --add /etc/init.d/mysqld
[root@CncLucZK mysql-5.5.23]#chkconfig  mysqld --level 35 on

#设置环境变量,申明/宣告mysql命令便于系统识别
[root@localhost mysql-5.6.26]#echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
#配置完环境变量后,需要执行source /etc/profile命令,使配置文件生效
[root@localhost mysql-5.6.26]#source /etc/profile
[root@localhost mysql-5.6.26]#echo $PATH			#测试变量值
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/mysql/bin

4.修改 MySQL 安装目录的权限

[root@CncLucZK mysql-5.5.23]# cd /usr/local/mysql/
#进入MySQL安装目录
[root@CncLucZK mysql]# chown -R mysql.
#把当前目录下所有文件的所有者改为root用户
[root@CncLucZK mysql]# chgrp -R mysql.
#把当前目录下所有文件的所属组改为mysql组

5.初始化数据库

  • 源码包安装的 MySQL 中所有的数据库默认都保存在 /usr/local/mysql/data/ 目录中,MySQL 的初始数据库 mysql 库和 test 库也会保存在这个目录中。但是,如果我们仔细查看 /usr/local/mysql/data/ 目录,就会发现这个目录中只有两个空目录,并没有任何数据。也就是说,MySQL 中的所有数据库是不存在的,那么这个 MySQL 是不能使用的,因为 MySQL 的所有用户是要保存在 user 表中的,而 user 表保存在 mysql 库中,而 mysql 库是保存在 /usr/local/mysql/data/ 目录中的。 那么,我们现在需要在 data 目录中建立 MySQL 的初始数据库。命令如下:
#初始化数据库
[root@CncLucZK mysql]# /usr/local/mysql/bin/mysql_install_db \ 
> --user=mysql \
> --ldata=/var/lib/mysql \
> --basedir=/usr/local/mysql\
> --datadir=/usr/local/mysql/data
[root@CncLucZK mysql]#vim /etc/init.d/mysqld
#46-47行
basedir=/usr/local/mysql 
datadir=/usr/local/mysql/data
  • 这条命令的 --user 选项表示使用 mysql 用户来初始化数据库,这个用户要和我们在步骤一中建立的用户一致。命令执行完成之后,/usr/local/mysal/data/ 目录中应该会出现很多相应的数据,证明数据库初始化成功。

6.继续修改MySQL安装目录的权限

[root@CncLucZK mysql]# chown -R root.
#把当前目录下所有文件的所有者改为root用户
#注意:修改的目录依然是/usr/local/mysql/目录下的文件
[root@CncLucZK mysql]# chown -R mysql data
#把data目录的所有者改为mysql用户

7.启动 MySQL 服务器,并保证 mysql 服务开机自启动

  • MySQL 服务器的安装已经完成,我们可以尝试启动 MySQL 服务器,命令如下:
#启动命令
[root@CncLucZK mysql]# /usr/local/mysql/bin/mysqld_safe ——user=mysql &
#或者是
[root@CncLucZK mysql]# service mysqld start

#使用mysql用户启动MySQL服务器,并在后台持续运行
[root@CncLucZK mysql]# netstat -tlun | grep 3306
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN
#3306端口已经开启了
  • 当然,我们还要保证 mysql 服务开机自启动,命令如下:
[root@localhost mysql]# vi /etc/rc.local
#修改自启动配置文件,加入如下的mysql服务标准启动命令
/usr/local/mysql/bin/mysqld_safe ——user=mysql &

8.设定 MySQL 中 root 用户的密码,并登录

  • MySQL 的管理员也是 root,不过这只是数据库的管理员,不要和 Linux 的 root 用户混淆了。我们需要给 MySQL 的本地用户设定一个密码。设定密码的方式有很多种,我们使用 Linux 的命令 mysqladmin 设定 MySQL 的 root 用户的密码。命令如下:
[root@localhost mysql]# /usr/local/mysql/bin/mysqladmin -u root password 123
#给MySQL的root用户设定密码为123
[root@localhost mysql]# /usr/local/mysql/bin/mysql -u root -p
#使用root用户登录mysql
Enter password: #输入正确的密码
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version:5.1.59-community-log Source distribution
Copyright (c) 2000, 2011, Oracle and/or its affiliates.All rights reserved.
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>
#看到了MySQL的交互界面
mysql> \s #查询服务器状态信息
…省略部分输出…
Server characterset: utf8
Db characterset: utf8
Client characterset: utf8
Conn. characterset: utf8
#编码格式已经修改为UTF-8
…省略部分输出…
mysql> exit
#退出MySQL
17.12.2 mysql8安装

1.卸载mysql

#检查是否安装
[root@CncLucZK src]# rpm -qa | grep mysql
#如已安装mysql,则删除
#rpm -e --nodeps +包名			#--nodeps可以不检测依赖性直接卸载,但此方式不推荐大家使用
#按依赖顺序卸载
[root@CncLucZK src]# rpm -e --nodeps mysql-8.0.21-1.module_el8.2.0+493+63b41e36.x86_64
[root@CncLucZK src]# rpm -e mysql-server-8.0.21-1.module_el8.2.0+493+63b41e36.x86_64
[root@CncLucZK src]# rpm -e mysql-errmsg-8.0.21-1.module_el8.2.0+493+63b41e36.x86_64
[root@CncLucZK src]# rpm -e mysql-devel-8.0.21-1.module_el8.2.0+493+63b41e36.x86_64
[root@CncLucZK src]# rpm -e mysql-libs-8.0.21-1.module_el8.2.0+493+63b41e36.x86_64
[root@CncLucZK src]# rpm -e mysql-common-8.0.21-1.module_el8.2.0+493+63b41e36.x86_64
#再次检查安装包是否全部删除
[root@CncLucZK src]# rpm -qa | grep mysql
#搜索mysql文件夹
[root@CncLucZK src]# find / -name mysql
#若有mysql文件夹,则删除
[root@CncLucZK src]# rm -rf +包名
#再次检查文件夹是否全部删除
[root@CncLucZK src]# find / -name mysql

2.在 /usr/local/src下 创建mysql文件夹,并在里面下载mysql,然后在此文件中解压缩

#进入源码下载目录
[root@CncLucZK ~]# cd /usr/local/src
创建mysql文件夹
[root@CncLucZK ~]# mkdir mysql
#切换到mysql文件夹下
[root@CncLucZK ~]# cd mysql
#下载mysql,根据自己需要的mysql版本进行输入版本号。也可以直接在官方下载最新版本官方下载选择linux系统对应的mysql版本
[root@CncLucZK ~]# wget https://cdn.mysql.com/archives/mysql-8.0/mysql-8.0.18-el7-x86_64.tar.gz
#解压mysql源码包,解压后查看是否存在bin文件,有些源码包不包含bin文件,是需要编译安装的
[root@CncLucZK ~]#tar zxvf mysql-8.0.18-el7-x86_64.tar.gz

3.将mysql-8.0.18解压缩文件移动到/usr/local/mysql下

[root@CncLucZK src]#  mv /usr/local/src/mysql/mysql-8.0.18-el7-x86_64  /usr/local/mysql

4.进入/usr/local/mysql文件后,创建data文件夹来存储数据

[root@CncLucZK src]# cd  /usr/local/mysql
[root@CncLucZK mysql]# mkdir data

5.创建用户组以及用户和密码

[root@CncLucZK src]# groupadd mysql		#有些linux版本,mysql用户及用户组已存在

[root@CncLucZK src]# useradd -g mysql mysql

6.将安装包授权用户

[root@CncLucZK mysql]# chown -R mysql.mysql /usr/local/mysql
[root@CncLucZK local]# ll -d mysql
drwxr-xr-x 12 mysql mysql 4096 Nov  2 23:33 mysql
#配置环境,编辑/etc/profile文件
[root@CncLucZK ~]# vi /etc/profile
export PATH=$PATH:/usr/local/mysql/bin:/usr/local/mysql/lib


[root@CncLucZK ~]# source /etc/profile

注意:配置完环境变量后,需要执行source /etc/profile命令,使配置文件生效

7.切换到/usr/local/mysql/bin目录下,初始化基础信息

[root@CncLucZK local]# cd /usr/local/mysql/bin
[root@CncLucZK local]#./mysqld --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ --lower-case-table-names=1 --initialize		#示表名不区分大小写

如果初始化中报错lc-messages-dir,则需要提前在/etc/my.cnf文件中添加以下配置

lc-messages=en_US
lc-messages-dir=/usr/local/mysql8/share/english/

然后再执行上述初始化指令:执行之前进入data目录,清空里面的文件数据

注意:MYSQL8以后,修改配置是无效的,如果缺少配置项,只能删除data目录,然后重新初始化

  • 得到临时密码
-datadir=/usr/local/mysql/data/ --lower-case-table-names=1 --initialize
2022-11-02T15:51:38.724390Z 0 [System] [MY-013169] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.18) initializing of server in progress as process 107484
2022-11-02T15:51:42.990431Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: :s%tnwCcp6,,

在这里插入图片描述
8.在/etc/目录下编辑my.cnf配置文件,若my.cnf不存在,直接新增

[root@CncLucZK bin]# vi /etc/my.cnf
[mysql]
default-character-set=utf8mb4

[client]
port=3306       
default-character-set=utf8mb4 

[mysqld]
port=3306
user=mysql
max_connections=200  
max_connect_errors=10
basedir=/usr/local/mysql/
datadir=/usr/local/mysql/data/
socket=/tmp/mysql.sock
character-set-server=utf8mb4
default-storage-engine=INNODB
lower_case_table_names=1
general_log = 1
general_log_file= /var/log/mysql/mysql.log
innodb_data_home_dir=/usr/local/mysql/data
innodb_log_group_home_dir=/usr/local/mysql/data/
symbolic-links=0

#如果初始化中报错lc-messages-dir,则需要添加以下配置
lc-messages=en_US
lc-messages-dir=/usr/local/mysql/share/english/


[mysqld_safe]
log-error=/usr/local/mysql/data/mysql.log
pid-file=/usr/local/mysql/data/mysql.pid

9.退出bin目录,回到=/usr/local/mysql目录下,将mysqld服务复制到/etc/init.d目录下系统,使系统识别服务

[root@CncLucZK mysql]# cp -a ./support-files/mysql.server /etc/init.d/mysql
[root@CncLucZK mysql]# cp -a ./support-files/mysql.server /etc/init.d/mysqld

#若/etc/init.d/mysql文件没有x权限,需要授权
[root@CncLucZK mysql]# chmod +x /etc/init.d/mysql
[root@CncLucZK mysql]# chmod +x /etc/init.d/mysqld

[root@CncLucZK mysql]# ll -d /etc/init.d/mysql
-rwxr-xr-x 1 mysql mysql 10576 Sep 20  2019 /etc/init.d/mysql
[root@CncLucZK mysql]# ll /etc/init.d/mysqld
-rwxr-xr-x 1 mysql mysql 10576 Sep 20  2019 /etc/init.d/mysqld


#让源码包安装的mysql服务能被chkconfig命令管理,才能开机自启动
[root@CncLucZK mysql]# chkconfig --add mysql
[root@CncLucZK ~]# chkconfig --list | grep mysql		#3,5on确实是开机自启动
mysql          	0:off	1:off	2:on	3:on	4:on	5:on	6:off

10.启动mysql,查看启动状态,并将mysql命令添加到服务

#启动mysql
[root@CncLucZK mysql]# service mysql start
#查看运行启动状态
[root@CncLucZK mysql]# service mysql status
 SUCCESS! MySQL running (112228)
#将mysql命令添加到服务,建立链接
[root@CncLucZK mysql]# ln -s /usr/local/mysql/bin/mysql /usr/bin

如果发现启动失败,可以先查看data里面的mysql.log,如果有提示3306这样的字样,第一个想到的应该是端口被占用,使用lsof -i:端口号,查看是哪个PID(进程号)占用了该端口,然后使用kill PID(进程号)杀掉进程,重新执行service mysql start

11.登录mysql -uroot -p 密码使用之前随机生成的密码

在 vim /etc/my.cnf文件中,在[mysqld]的段中加上一句:skip-grant-tables --跳过密码验证

然后保存退出,重启MySQL服务

[root@CncLucZK bin]# mysql -uroot -p :s%tnwCcp6,,	#密码使用之前随机生成的密码

#若登录过程中缺少libncurses.so.5,libtinfo.so.5文件,则先find查询系统中是否有这两个包,然后建立链接
[root@CncLucZK bin]# ln -s /usr/lib64/libncurses.so.6 libncurses.so.5
[root@CncLucZK bin]# ln -s /usr/lib64/libtinfo.so.6 libtinfo.so.5
#进入数据库
mysql> USE mysql ; 
#修改root密码
mysql> alter user 'root'@'localhost' identified with mysql_native_password by '你的密码';
#修改远程连接并生效.
#root用户的localhost表示只允许本机访问,要实现远程连接,可以将用户的host改为%,表示允许任意主机访问,如果需要设置只允许特定ip访问,则应改为对应的ip。
mysql> update mysql.user set host="%" where user="root";
#刷新配置
mysql> flush privileges;

存在问题1:连接mysql数据库报错:

mysql: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory

问题原因:没有libncurses.so.5文件

解决办法:

  1. 查找系统中存在的libncurses.so不同版本的文件,使用命令
[root@CncLucZK bin]# find / -name libncurses*
...
/usr/lib64/libncurses.so.6.1
/usr/lib64/libncursesw.so
/usr/lib64/libncurses++w.so.6
/usr/lib64/libncurses++.so.6
/usr/lib64/libncurses++w.so.6.1
/usr/lib64/libncurses++.so.6.1
/usr/lib64/libncurses.so.6
/usr/lib64/libncursesw.so.6
/usr/lib64/libncurses++w.so
/usr/lib64/libncurses.so
/usr/lib64/libncurses++.so
/usr/lib64/libncursesw.so.6.1
..

2.建立链接

ln -s /usr/lib64/libncurses.so.6 libncurses.so.5

3.如果没有找到的话,使用yum或apt安装即可

12.查看端口

mysql> show global variables like 'port';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| port          | 3306  |
+---------------+-------+
1 row in set (0.01 sec)

#退出
mysql> exit

13.MySQL8创建新用户及授权方式

create user ‘test’@‘%’ identified by ‘123456’;
grant all privileges on *.* to ‘test’@‘%’;
flush privileges;

14.远程连接mysql数据库

  • 查询访问权限
mysql> select user,host from mysql.user;
+------------------+-----------+
| user             | host      |
+------------------+-----------+
| root             | %         |
| mysql.infoschema | localhost |
| mysql.session    | localhost |
| mysql.sys        | localhost |
+------------------+-----------+
4 rows in set (0.00 sec)
  • 若root用户的host是localhost表示只允许本机访问,要实现远程连接,可以将用户的host改为%,表示允许任意主机访问,如果需要设置只允许特定ip访问,则应改为对应的ip。修改root用户的host字段为%
mysql> update mysql.user set host='%' where user='root';
  • 刷新配置
mysql> flush privileges;
  • 开放端口号:

    • ****如果是物理服务器:****查询3306端口是否开放
firewall-cmd --query-port=3306/tcp

没有开放则添加3306端口

firewall-cmd --zone=public --add-port=3306/tcp --permanent

添加端口后刷新防火墙

firewall-cmd --reload
    • **如果是云服务器:**配置安全组入站访问规则,增加3306端口号。
      在这里插入图片描述
  • navicat测试能否连接
    在这里插入图片描述
    存在问题2:远程能否连接

  • 使用mysql8.0搭建起数据库之后,在本地连接mysql的时候遇到报错:Client does not support authtication protocol requested by server;consider upgrading mysql client ,我这里是用的navicat for mysql客户端。这是由于mysql8.0更新了加密规则,mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password。而navicat当前版本还不支持最新的加密规则。

    • 可以在mysql的启动文件中配置加密规则
[mysqld]
default_authentication_plugin=mysql_native_password
    • 创建用户密码的时候指定加密规则,这个方便简单。
use mysql;	#选择数据库

create user '用户名'@'%' identified WITH mysql_native_password by '密码';

grant all privileges on 数据库名.* to '用户名'@'%' with grant option;

flush privileges;
    • 对于已经创建的用户修改一下加密规则即可。
ALTER USER '用户名'@'%' IDENTIFIED WITH mysql_native_password BY '密码';
FLUSH PRIVILEGES;
    • 另外记得之前在操作mysql8.0遇到不能直接使用grant privileges授权的同时创建用户,在8.0中这两步必须分开,即先创建用户然后再授权。常用的mysql相关配置如下(添加到mysql8中的/etc/my.cnf):
    [mysql]
    default-character-set=utf8mb4	
    
    [client]
    port=3306	#设置mysql客户端默认端口
    default-character-set=utf8mb4 #mysql客户端默认字符集
    
    [mysqld]
    port=3306	#端口
    user=mysql
    max_connections=200  # 允许最大连接数
    max_connect_errors=10 # 允许连接失败的次数
    character-set-server=utf8mb4  # 服务端默认字符集
    default-storage-engine=INNODB  # 创建表时默认存储引擎
    general_log = 1
    general_log_file= /var/log/mysql/mysql.log
    socket=/var/lib/mysql/mysql.sock
    lower_case_table_names=1
    basedir=/usr/local/mysql
    datadir=/usr/local/mysql/data
    #log-bin=/usr/local/mysql/data/mysql-bin
    innodb_data_home_dir=/usr/local/mysql/data
    innodb_log_group_home_dir=/usr/local/mysql/data/
    default_authentication_plugin=mysql_native_password # 默认使用加密规则
    sql_mode = ‘STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION‘
    symbolic-links=0
    #autocommit=1
    
    [mysqld_safe]
    log-error=/usr/local/mysql/data/mysql.log
    pid-file=/usr/local/mysql/data/mysql.pid
    
    • 最后使用systemctl status 和systemctl restart查看和重启mysql8。

      systemctl status mysqld.service
      systemctl restart mysqld.service
      
  • 存在问题3:在进入mysql命令行执行sql时,报错Ignoring query to other database,原因登录mysql时没有带u参数

[root@CncLucZK bin]# mysql -uroot -p

下一篇:Linux学习-84-安装PHP

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

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

相关文章

〖产品思维训练白宝书 - 产品思维认知篇①〗- 产品思维能够为我们带来多大的价值?

大家好,我是 哈士奇 ,一位工作了十年的"技术混子", 致力于为开发者赋能的UP主, 目前正在运营着 TFS_CLUB社区。 💬 人生格言:优于别人,并不高贵,真正的高贵应该是优于过去的自己。💬 &#x1f4e…

算法竞赛入门【码蹄集进阶塔335题】(MT2026-2050)

算法竞赛入门【码蹄集进阶塔335题】(MT2026-2050) 文章目录算法竞赛入门【码蹄集进阶塔335题】(MT2026-2050)前言为什么突然想学算法了?为什么选择码蹄集作为刷题软件?目录1. MT2026 二维坐标点移动2. MT2027 一秒成零3. MT2028 小…

开关量转4G模块直接阿里云操作介绍

开关量转4G模块直接阿里云操作介绍首先,设备接入阿里云阿里云的连接 同上,配置阿里云平台参数前,和华为云一样,首先要在阿里云控制台创建产品,添加设备获取设备证书 上云流程:创建产品--添加设备--获取证书…

USACO简介

USACO是美国信息学奥赛官网,网站为:USACO 其中还包括USACO TRAINING题目,这是一个可以做练习的网站,网站为USACO Training Gateway 进入USACO网站,我们可以看到以下图片 下来简要说一下关于USACO的注意事项 1.USACO…

python-(6-5-3)爬虫---处理防盗链获取视频

文章目录一 需求二 分析1 拿到contId2 拿到video_status返回的json -----> src Url3 对src Url 进行修整4 下载资源三 代码一 需求 想要获得某处的视频资源,但由于防盗链的存在,使得在使用浏览器的开发页面获得的视频地址与我们实际获取的地址产生差…

Spring源码深度解析十四:@Aspect方式的AOP上篇 - @EnableAspectJAutoProxy

一、前言 文章目录:Spring源码深度解析:文章目录 二、简介 Aop 即面向切面编程,而 Aspect 是Aop 思想的一种实现。 并不是所有的AOP框架都相同,它们在连接点模型上可能有强弱之分,有些允许在字段修饰符级别的应用通…

分享a股下单接口执行买入操作的流程代码

用户在使用a股下单接口&#xff0c;能够得到更多更准确的信息&#xff0c;让用户在股市当中&#xff0c;操作起来更加便捷和有效&#xff0c;对股市市场行情动向判断更加的准确一些。 下面看一下a股下单接口是如何执行买入操作的功能&#xff1a; std::cout << " …

小程序批发订货怎么做

小程序订货系统 批发订货是每个生产企业都不少不了的一个环节&#xff0c;伴随着信息化技术的不断更新&#xff0c;传统的订货方式已经不能满足生产企业的需求了&#xff0c;而鲜桥小程序订货系统基于微信生态&#xff0c;让你即买即用&#xff0c;轻松告别传统的订货方式&…

Java解析NC2018-2020降水量格点数据

经纬度范围 lon = 7849;lat = 5146;time = 12;double lon(lon=7849); :long_name = "longitude"; :unit = "degree"; double lat(lat=5146); :long_name = "latitude"; :unit = "degree"; double time(time=12); :long_nam…

【论文】Holistically-Nested Edge Detection

文章目录Development of Edge DetectionMulti-scale learning structureLoss FunctionNetwork Architecture&#x1f4c4;&#xff1a;Holistically-Nested Edge Detection&#x1f517;&#xff1a;https://openaccess.thecvf.com/content_iccv_2015/html/Xie_Holistically-Ne…

DSP篇--C6701功能调试系列之SRAM、ADC、喂狗测试

目录 1、SRAM测试 1.1 SRAM读写功能测试 1.2 EDAC测试 2、ADC测试 3、DSP喂狗测试 调试的前期准备可以参考前面的博文&#xff1a;DSP篇--C6701功能调试系列之前期准备_nanke_yh的博客-CSDN博客https://blog.csdn.net/nanke_yh/article/details/128277631 1、SRAM测试 1…

国税局验证码识别 识别不了我还不能input吗

前言 最近接到一个需求&#xff0c;就是在国税局的网页中输入 【发票代码】、【*发票号码】、【*开票日期】、【*开具金额(不含税)】、【*验证码】 然后将此发票进行下载&#xff0c;但是【验证码】真的是拦路虎啊&#xff0c;我也查询了好多大佬的论文&#xff0c;有的是通过J…

OTP语音芯片ic的工作原理,以及目前的现状和技术发展路线是什么?flash型

目录 otp工艺和flash工艺的区别和概念 衡量一个芯片的成本&#xff0c;简单可以归结为3个方面 芯片的生产工艺&#xff0c;比如OTP的工艺都是100nm左右的工艺、8寸晶圆&#xff0c;很便宜。并且OTP的技术需要光刻机光照的次数少&#xff0c;所以生产起来快&#xff0c;这样无…

openCV实战项目--人脸考勤

人脸任务在计算机视觉领域中十分重要&#xff0c;本项目主要使用了两类技术&#xff1a;人脸检测人脸识别。 代码分为两部分内容&#xff1a;人脸注册 和 人脸识别 人脸注册&#xff1a;将人脸特征存储进数据库&#xff0c;这里用feature.csv代替人脸识别&#xff1a;将人脸特…

【云计算与大数据技术】数据编码LZSS算法、Snappy压缩库及分布式通信系统的讲解(图文解释 超详细)

一、数据编码概述 数据编码概述 - 在分布式系统中需要处理大量的网络数据,为了加快网络数据的传输速度,通常需 要对传输数据进行编码压缩 数据压缩是以尽可能少的数码来表示信源所发出的信号&#xff0c;减少容纳给定的消息集合或数据采样集合的信号空间&#xff0c;这里讲的…

Linux安装Maven

目录 1.下载安装包 2.解压Maven 3.添加环境变量 4.检测Maven是否搭建成功 5. 编辑 Maven的settings.xml文件 5.1设置本地仓库 5.2添加阿里云镜像 1.下载安装包 访问查看需要的版本&#xff1a;Index of /dist/maven (apache.org) 安装包统一存放到/opt/software目录下…

Java基于springboot校园德育活动预约和评分管理系统+vue+elementUI

本系统结合计算机系统的结构、概念、模型、原理、方法&#xff0c;在计算机各种优势的情况下&#xff0c;采用JAVA语言&#xff0c;结合SpringBoot框架与Vue框架以及MYSQL数据库设计并实现的。本校园德育活动预约和评分管理系统主要包括个人中心、学生管理、活动信息管理、活动…

使用Docker实现容器之间的互通

目录 怎样实现容器之间的相互通信&#xff1f; 情况1&#xff1a;两个容器在同一网段上 情况2&#xff1a;两个容器在不同网段上 怎样实现容器之间的相互通信&#xff1f; 情况1&#xff1a;两个容器在同一网段上 命令拓展&#xff1a; 删除所有容器&#xff1a;docker rm …

NuSences 数据集解析以及 nuScenes devkit 的使用

文章目录一、官网介绍1.1 总览(Overview)1.1.1 数据搜集(Data collection)1.1.2 传感器同步&#xff08;Sensor synchronization&#xff09;1.2 数据格式&#xff08;Data format&#xff09;attributecalibrated_sensorcategoryego_poseinstancelidarseglogmapsamplesample_a…

安装包UI美化之路-升级安装与静默安装一键打包

在实际应用中&#xff0c;除了产品安装外&#xff0c;还需要能够持续升级到新的版本&#xff0c;这时候升级方案就显得比较重要&#xff1b;而还有一些使用场景&#xff0c;需要咱们的安装包在安装时&#xff0c;不要显示安装界面&#xff0c;直接在后台进行安装&#xff01; …