培训第二十二天(mysql数据库主从搭建)
上午
1、为mysql添加开机启动chkconfig
[root@mysql1 ~]# chkconfig --list //列出系统服务在不同运行级别下的启动状态注:该输出结果只显示 SysV 服务,并不包含原生 systemd 服务。SysV 配置数据可能被原生 systemd 配置覆盖。 要列出 systemd 服务,请执行 'systemctl list-unit-files'。查看在具体 target 启用的服务请执行'systemctl list-dependencies [target]'。netconsole 0:关 1:关 2:关 3:关 4:关 5:关 6:关network 0:关 1:关 2:开 3:开 4:开 5:开 6:关[root@mysql1 ~]# chkconfig --add mysql8 //将名为 mysql8 的服务添加到系统的服务管理列表中,以便通过 chkconfig 工具来管理它在不同运行级别的启动状态[root@mysql ~]# chkconfig mysql8 on //设置 mysql8 服务在特定运行级别(或多个运行级别)自动启动
2、编辑配置文件my.cnf
[root@mysql1 ~]# vim /usr/local/mysql/my.cnf[mysqld]basedir=/usr/local/mysql/ #指明了 MySQL 的安装根目录datadir=/usr/local/mysql/data #指明了数据文件的存储目录socket=/tmp/mysql.sock #定义了 MySQL 服务器用于本地连接的套接字文件路径[root@mysql1 ~]# service mysql8 restart[root@mysql1 ~]# /usr/local/mysql/bin/mysql_secure_installation //增强 MySQL 服务器安全性
3、修改环境变量
将mysql的bin也添加到$PATH[root@mysql1 ~]# sed -i '$a export PATH=/usr/local/mysql/bin/:$PATH' /etc/profile[root@mysql1 ~]# source /etc/profile
4、mysql角色授权
[root@mysql1 ~]# mysql -uroot -p'Root@123456'mysql> select host,user from mysql.user;+-----------+------------------+| host | user |+-----------+------------------+| localhost | mysql.infoschema || localhost | mysql.session || localhost | mysql.sys || localhost | root |+-----------+------------------+4 rows in set (0.01 sec)mysql> create user 'aaa'@'%' identified by 'aaa';Query OK, 0 rows affected (0.11 sec)[root@mysql1 ~]# firewall-cmd --zone=public --add-port=3306/tcp --permanent //防火墙打开3306端口success[root@mysql1 ~]# firewall-cmd --reload //重新加载防火墙successmysql> create role a;Query OK, 0 rows affected (0.06 sec)mysql> select host,user from mysql.user;+-----------+------------------+| host | user |+-----------+------------------+| % | a || % | aaa || localhost | mysql.infoschema || localhost | mysql.session || localhost | mysql.sys || localhost | root |+-----------+------------------+6 rows in set (0.00 sec)mysql> show grants for a;+-------------------------------+| Grants for a@% |+-------------------------------+| GRANT USAGE ON *.* TO `a`@`%` |+-------------------------------+1 row in set (0.00 sec)mysql> grant all on *.* to a;Query OK, 0 rows affected (0.02 sec)mysql> grant a to aaa;Query OK, 0 rows affected (0.01 sec)mysql> show grants for aaa;+---------------------------------+| Grants for aaa@% |+---------------------------------+| GRANT USAGE ON *.* TO `aaa`@`%` || GRANT `a`@`%` TO `aaa`@`%` |+---------------------------------+2 rows in set (0.00 sec)
角色不生效
在配置文件中不添加activate_all_roles_on_login=on
glibc安装,my.cnf在项目目录之下
rpm安装,my.cnf文件在/etc/my.cnf
[root@mysql1 ~]# vim /usr/local/mysql/my.cnfactivate_all_roles_on_login=on #在登录时激活所有的角色[root@mysql1 ~]# service mysql8 restartShutting down MySQL... SUCCESS! Starting MySQL........ SUCCESS!
5、自动安装mysql脚本(主)
#!/bin/bashyum list installed |grep libaio #在已安装的软件包列表中搜索包含 libaio 字样的软件包if [ $? -ne 0 ]; thenyum -y install libaio #如果没有安装这个软件包就安装这个软件fiecho libaio yesrm -rf /etc/my.cnf #删除/etc/my.cnf文件,后续要创建到项目中(/usr/local/mysql/)echo remo my.cnf yes#tar -xf mysql-8.0.33-linux-glibc2.12-x86_64.tar#echo tar yestar -xf mysql-8.0.33-linux-glibc2.12-x86_64.tar.xz #解压软件包echo tar xz yescp -r ~/mysql-8.0.33-linux-glibc2.12-x86_64 /usr/local/mysql #将root家目录下的已经解压过的软件包下的内容复制到/usr/local/mysql目录下echo copy file to /usr/local/mysql yesmkdir /usr/local/mysql/mysql-files #在/usr/local/mysql目录下创建mysql-files目录echo mysql-files yesgrep mysql /etc/passwd #查看是否有mysql用户 useradd -r -s /sbin/nologin mysql #创建mysql用户(-r 选项表示创建一个系统用户(通常系统用户的 UID 范围在 1 到 499 之间))chown mysql:mysql /usr/local/mysql/mysql-files #使mysql-files目录的所属主和所属组都为mysqlchmod 750 /usr/local/mysql/mysql-files #设置mysql-files目录的权限为750/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ #初始化 MySQL 数据库服务器/usr/local/mysql/bin/mysql_ssl_rsa_setup --datadir=/usr/local/mysql/data #为 MySQL 服务器设置 SSL(Secure Sockets Layer,安全套接层)和 RSA(Rivest–Shamir–Adleman,一种非对称加密算法)相关的配置cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql8 #将/usr/local/mysql/support-files/mysql.server文件复制到/etc/init.d/目录下并改名为mysql8,方便后续启服务sed -i '$aexport PATH=/usr/local/mysql/bin:$PATH' /etc/profile #修改环境变量,方便后续进入mysqlsource /etc/profile #激活配置
--initialize
选项会执行初始化操作,包括生成随机的初始密码、创建必要的数据库结构等。
--user=mysql
指定以 mysql
用户来运行数据库服务。
--basedir=/usr/local/mysql/
指明了 MySQL 的安装根目录。
执行此命令后,您可以在输出中找到生成的初始密码,请注意记录好这个密码,以便后续登录和修改密码使用。
--datadir=/usr/local/mysql/data
选项指定了 MySQL 数据文件的存储目录。
执行此命令可以帮助确保 MySQL 服务器在通信过程中的安全性,通过使用 SSL 加密连接来保护数据传输。
6、数据库时间同步
[root@slave-mysql ~]# yum -y install ntpdate.x86_64 [root@slave-mysql ~]# ntpdate cn.ntp.org.cn6 Aug 11:21:15 ntpdate[1165]: adjust time server 203.107.6.88 offset 0.000143 sec[root@mysql ~]# yum -y install ntpdate.x86_64 [root@mysql ~]# ntpdate cn.ntp.org.cn6 Aug 11:21:15 ntpdate[1165]: adjust time server 203.107.6.88 offset 0.000143 sec
下午
环境准备:主从服务器关闭防火墙和selinux,时间同步
1、使用脚本重新搭建主服务器
[root@mysql ~]# sh mysql.sh[root@mysql ~]# vim /usr/local/mysql/my.cnf [mysqld]basedir=/usr/local/mysql/datadir=/usr/local/mysql/datasocket=/tmp/mysql.sockactivate_all_roles_on_login=onport=3306 #指定了 MySQL 服务器监听的端口为 3306,这是 MySQL 的默认端口,客户端连接时将使用这个端口进行通信log-error=/usr/local/mysql/data/db01-master.err #定义了错误日志的存储路径为 /usr/local/mysql/data/db01-master.err,服务器运行过程中的错误信息将被记录到这个文件中log-bin=/usr/local/mysql/data/binlog #启用了二进制日志,并指定其存储位置为 /usr/local/mysql/data/binlog,二进制日志可用于数据备份、主从复制等场景server-id=10 #为服务器分配了一个唯一的标识符 10,在主从复制架构中用于区分不同的服务器character_set_server=utf8mb4 #设置了服务器的默认字符集为 utf8mb4,确保在处理数据时使用这种更广泛支持 Unicode 字符的字符集[root@mysql ~]# service mysql8 restartShutting down MySQL. SUCCESS! Starting MySQL... SUCCESS! [root@mysql-zhu ~]# mysql -uroot -p'y-Hqum4J)X!='mysql> alter user 'root'@'localhost' identified by '123'; //修改root密码Query OK, 0 rows affected (0.07 sec)
2、使用脚本重新搭建从服务器
[root@mysql-slave ~]# vim mysql.sh #!/bin/bashyum list installed |grep libaioif [ $? -ne 0 ]; thenyum -y install libaiofiecho libaio yesrm -rf /etc/my.cnfecho remo my.cnf yes#tar -xf mysql-8.0.33-linux-glibc2.12-x86_64.tar#echo tar yestar -xf mysql-8.0.33-linux-glibc2.12-x86_64.tar.xzecho tar xz yescp -r ~/mysql-8.0.33-linux-glibc2.12-x86_64 /usr/local/mysqlecho copy file to /usr/local/mysql yesmkdir /usr/local/mysql/mysql-filesecho mysql-files yesgrep mysql /etc/passwduseradd -r -s /sbin/nologin mysqlchown mysql:mysql /usr/local/mysql/mysql-fileschmod 750 /usr/local/mysql/mysql-files#/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ 从服务器不初始化mysql#/usr/local/mysql/bin/mysql_ssl_rsa_setup --datadir=/usr/local/mysql/data 也就没有data目录cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql8sed -i '$aexport PATH=/usr/local/mysql/bin:$PATH' /etc/profilesource /etc/profile[root@mysql-slave ~]# source mysql.sh[root@mysql-slave ~]# vim /usr/local/mysql/my.cnf[mysqld]basedir=/usr/local/mysqldatadir=/usr/local/mysql/datasocket=/tmp/mysql.sockport=3310 #指定了 MySQL 服务器监听的端口为 3310log-error=/usr/local/mysql/data/db01-slave.errrelay-log=/usr/local/mysql/data/relaylogserver-id=11 #为服务器分配了一个唯一的标识符 11,在主从复制架构中用于区分不同的服务器character_set_server=utf8mb4
3、数据同步
[root@mysql-zhu ~]# service mysql8 stop //停止主mysql服务Shutting down MySQL. SUCCESS! [root@mysql-zhu ~]# ls /usr/local/mysql/data/auto.cnf //主要用于存储一些服务器自动生成的配置信息,其中可能包括服务器的 UUID(Universally Unique Identifier,通用唯一标识符)等重要的标识信息[root@mysql-zhu ~]# rm -rf /usr/local/mysql/data/auto.cnf[root@mysql-zhu ~]# yum -y install rsync //下载同步软件[root@mysql-slave ~]# yum -y install rsync //下载同步软件[root@mysql-zhu ~]# rsync -av /usr/local/mysql/data root@10.0.0.60:/usr/local/mysql/ //将主中的data目录同步到从中[root@mysql-slave ~]# ls /usr/local/mysql/data/binlog.000001 client-key.pem #innodb_redo public_key.pembinlog.000002 db01-master.err #innodb_temp server-cert.pembinlog.index #ib_16384_0.dblwr mysql server-key.pemca-key.pem #ib_16384_1.dblwr mysql.ibd sysca.pem ib_buffer_pool performance_schema undo_001client-cert.pem ibdata1 private_key.pem undo_002[root@mysql-slave ~]# service mysql8 start //启动从的mysql服务Starting MySQL.... SUCCESS! [root@mysql-slave ~]# mysql -P3310 -p123 //可以登录到从的mysql中了
4、主从复制实现
replication slave
:指定授予的权限类型为复制从服务器的权限
[root@mysql-zhu ~]# service mysql8 start //启动主的mysql服务Starting MySQL.... SUCCESS! [root@mysql-zhu ~]# mysql -uroot -p'123' //登录到主的mysql中mysql> create user 'slave'@'%' identified by '123'; //创建一个slave用户,%表示在每个主机上都可以使用slave登录到该主机上的mysqlQuery OK, 0 rows affected (0.06 sec)mysql> grant replication slave on *.* to 'slave'@'%'; //将所有的数据库的所有表的replication slave操作权限给到slave用户Query OK, 0 rows affected (0.01 sec)mysql> flush privileges; //重新加载权限表Query OK, 0 rows affected (0.00 sec)mysql> flush tables with read lock; //刷新所有表并施加一个全局读锁Query OK, 0 rows affected (0.00 sec)mysql> create database if not exists abc charset utf8;ERROR 1223 (HY000): Can't execute the query because you have a conflicting read lockmysql> show master status; //显示主服务器当前二进制日志的状态信息,+---------------+----------+--------------+------------------+-------------------+| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |+---------------+----------+--------------+------------------+-------------------+| binlog.000003 | 1067 | | | |+---------------+----------+--------------+------------------+-------------------+1 row in set (0.01 sec)File:当前正在写入的二进制日志文件的名称。Position:当前写入的位置(偏移量)在二进制日志文件中的位置。[root@mysql-slave ~]# mysql -uslave -p123 -h10.0.0.51 -P3306 --get-server-public-key //用于以指定的用户 slave 和密码 123 连接到主机地址为 10.0.0.51 、端口为 3306 的 MySQL 服务器,并获取服务器的公共密钥[root@mysql-slave ~]# mysql -P3310 -p123 //登录到从的数据库中mysql> change master to-> master_host='10.0.0.51', //指定主服务器的主机地址-> master_user='slave', //指定用于连接主服务器进行复制的用户名-> master_password='123', //指定对应的密码-> master_port=3306, //指定主服务器的端口-> master_log_file='binlog.000003', //指定从哪个二进制日志文件开始复制-> master_log_pos=1067; //指定在指定的二进制日志文件中的起始位置Query OK, 0 rows affected, 9 warnings (0.01 sec)mysql> start slave; //启动从服务器的复制进程Query OK, 0 rows affected, 1 warning (0.03 sec)mysql> show slave status\G //查看从服务器的复制状态详细信息
5、同步测试
主服务器
mysql> unlock tables; //释放之前通过 LOCK TABLES 命令施加的表锁Query OK, 0 rows affected (0.00 sec)mysql> create database if not exists test charset utf8mb4; //创建数据库testQuery OK, 1 row affected (0.02 sec)mysql> use test; //使用test数据库Database changedmysql> create table user(id int primary key,username varchar(45) not null,passwordvarchar(45) not null); //创建user表Query OK, 0 rows affected (0.03 sec)mysql> insert into user values(1,'zhangsan','abc'); //向user表中插入数据Query OK, 1 row affected (0.03 sec)
从服务器
mysql> show databases; //查看数据库+--------------------+| Database |+--------------------+| information_schema || mysql || performance_schema || sys || test |+--------------------+5 rows in set (0.02 sec)mysql> use test; //使用test数据库Reading table information for completion of table and column namesYou can turn off this feature to get a quicker startup with -ADatabase changedmysql> show tables; //查看所有表+----------------+| Tables_in_test |+----------------+| user |+----------------+1 row in set (0.00 sec)mysql> select * from user; //查看user表的内容+----+----------+----------+| id | username | password |+----+----------+----------+| 1 | zhangsan | abc |+----+----------+----------+1 row in set (0.00 sec)
相关文章:

培训第二十二天(mysql数据库主从搭建)
上午 1、为mysql添加开机启动chkconfig [rootmysql1 ~]# chkconfig --list //列出系统服务在不同运行级别下的启动状态注:该输出结果只显示 SysV 服务,并不包含原生 systemd 服务。SysV 配置数据可能被原生 systemd 配置覆盖。 要列出 systemd 服务…...
速盾:CDN回源失败都有什么原因?
CDN(内容分发网络)是一种通过将内容分发到全球各个边缘节点来提高网站访问速度和用户体验的网络技术。CDN回源失败是指CDN节点无法正常获取源站(原始服务器)上的内容。下面是一些可能导致CDN回源失败的常见原因: 网络故…...

C语言 | Leetcode C语言题解之第328题奇偶链表
题目: 题解: struct ListNode* oddEvenList(struct ListNode* head) {if (head NULL) {return head;}struct ListNode* evenHead head->next;struct ListNode* odd head;struct ListNode* even evenHead;while (even ! NULL && even->…...

8月6日笔记
8月6日 红日靶场打靶继续 SHOW VARIABLES #用于显示服务器运行时的各种系统变量的当前设置。这些变量可以控制服务器的行为在 MySQL 中,general_log 和 general_log_file 是两个与“general”相关的系统变量,它们控制着服务器是否启用一般查询日志以及…...

爱可声助听器:在全球听力市场中破冰前行
早在2021年,全球助听器市场规模就已经达到了101亿美元,Grand View Research数据显示,这一规模会持续增大,在未来的6年间,该数据将以4.9%的复合年增长率(CAGR)增长。 作为发展中国家,…...
华为OD面试 - 最佳升级时间窗(Java JS Python C C++)
题目描述 有一套系统需升级,为减小系统升级期间的影响,需根据系统过去一段时间内的每小时平均访问数据,来预测最佳升级时间窗。 现给长度为168(7 * 24)的整数数组,表示一个周期(假设从周一00:00到周日24:00)的每小时历史数据,最佳升级时间窗选择规则如下: 时间窗内…...

LE-50821F/FA激光扫描传感器|360°避障雷达之性能参数与配置清单说明
LE系列激光扫描传感器|360避障雷达涵盖LE-50711、LE-50711F、 LE-50621、LE-50821F、LE-50621F、LE-50821FA、LE-50711FA、LE-50621FA等型号,广泛应用于自动化工厂、物流与仓储、汽车制造与物流、机械设备、能源与环境等领域的环境感知、高精度定位(…...

精准洞察农田生态,智慧农业物联网环境监测与数据采集系统来袭
随着智慧农业的快速发展,利用物联网技术实现对农田种植状态的精准监测变得愈发重要。为了确保监测的准确性、一致性和有效性,规范农田物联网监测设备的技术参数、部署安装以及数据对接等技术指标势在必行。 本文技术说明旨在为相关设备的选择、安装和集…...

sql注入复现(1-14关)
目录 第一关(字符型注入) 第二关(数字型注入) 第三关(闭合方式不同) 第四关(用双引号闭合) 第五关(不会数据回显) 第六关(闭合方式不同双引…...
Spring Boot-12
JavaConfig 是一种通过 Java 代码来配置 Spring 应用程序的方式,取代了传统的 XML 配置文件。这 什么是 JavaConfig JavaConfig 是 Spring Framework 的一部分,它允许你使用纯 Java 代码来定义 Spring Beans 和配置应用程序,而不需要 XML 配…...
【Linux】进程详解
1、定义 使用编译器将代码编译成的可执行文件称为程序,程序存储在磁盘上; 将程序从磁盘装载到内存中,并通过指令调用、各级缓存、寄存器运行起来的实例,称为进程; 一个程序可以同时运行多个进程;每个进程具有自己的内存空间、寄存器和文件描述符等资源。 进程ID:…...

python的多线程
python的threading模块,它提供了丰富的接口来创建和管理线程。 定义一个函数print_numbers,这个函数将由线程执行。在这个函数中,我们使用一个循环来打印数字,并使用time.sleep(1)来模拟每个数字打印之间有1秒的延迟。 在 if __…...

在Kylin服务器安装PostgreSQL16数据库
1、下载PostgreSQL16安装包 下载地址https://www.postgresql.org/ftp/source/v16.3/ 2、安装依赖和ICU库 查看服务器版本 yum install -y perl-ExtUtils-Embed readline-devel zlib-devel pam-devel libxml2-devel libxslt-devel openldap-devel python-devel gcc-c opens…...

【第15章】Spring Cloud之Gateway网关过滤器(URL黑名单)
文章目录 前言一、常用网关过滤器1. 常用过滤器2. 示例3. Default Filters 二、定义接口服务1. 定义接口 三、自定义过滤器1. 过滤器类2. 应用配置 四、单元测试1. 正常2. 黑名单 总结 前言 上一章我们通过,路由断言根据请求IP地址的黑名单功能,作用范围…...

pytorch和deep learning技巧和bug解决方法短篇收集
有一些几句话就可以说明白的观点或者解决的的问题,小虎单独收集到这里。 torch.hub.load how does it work 下载预训练模型再载入,用程序下载链接可能失效。 model torch.hub.load(ultralytics/yolov5, yolov5s)model torch.hub.load(ultralytics/y…...

【socket编程】UDP网络通信 {简单的服务器echo程序;简单的远程控制程序;简单的网络聊天室程序}
今天我们通过以下的几个surver/client模型了解一下UDP网络通信 一、简单的服务器echo程序 以下部分内容转载自「网络编程」简单UDP网络通信程序的实现_socket udp-CSDN博客 1.1 服务端 首先明确,这个简单的UDP网络程序分客户端…...
大数据存储解决方案:HDFS与NoSQL数据库详解
大数据存储解决方案:HDFS与NoSQL数据库详解 大数据存储解决方案在现代数据处理和分析中扮演着至关重要的角色。随着数据量的迅猛增长,传统的存储方式已经无法满足需求。HDFS(Hadoop分布式文件系统)和NoSQL数据库是当前最常用的两…...

如何用 ChatGPT 提升学术写作:15 个高效提示
在本文,我们详细探讨了如何利用 ChatGPT 提升学术写作的各个方面。我们帮助学术作者通过生成创意点子、构建论证结构、克服写作障碍以及格式化引用,从而显著提升其学术论文的质量。这 15 条提示不仅可以单独使用,还可作为学习的良好范例。 本…...

【算法】贪心算法
应用场景——集合覆盖问题 假设存在下面需要付费的广播台,以及广播台信号可以覆盖的地区。如何选择最少的广播台,让所有的地区都可以接收到信号 贪心算法介绍 1.贪心算法是指在对问题进行求解时,在每一步选择中都采取最好或者最优的选择 2…...

常见中间件漏洞复现之【Jboss】!
Jboss介绍 JBoss是⼀个基于J2EE的开发源代码的应⽤服务器。JBoss代码遵循LGPL许可,可以在任何商业应⽤中免费使⽤。JBoss是⼀个管理EJB的容器和服务器,⽀持EJB1.1、EJB 2.0和EJB3的规范。但JBoss核⼼服务不包括⽀持servlet/JSP的WEB容器,⼀般…...

深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录
ASP.NET Core 是一个跨平台的开源框架,用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录,以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...

手游刚开服就被攻击怎么办?如何防御DDoS?
开服初期是手游最脆弱的阶段,极易成为DDoS攻击的目标。一旦遭遇攻击,可能导致服务器瘫痪、玩家流失,甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案,帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...
AI编程--插件对比分析:CodeRider、GitHub Copilot及其他
AI编程插件对比分析:CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展,AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者,分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...

智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制
在数字化浪潮席卷全球的今天,数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具,在大规模数据获取中发挥着关键作用。然而,传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时,常出现数据质…...
Java 二维码
Java 二维码 **技术:**谷歌 ZXing 实现 首先添加依赖 <!-- 二维码依赖 --><dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.5.1</version></dependency><de…...
vue3 daterange正则踩坑
<el-form-item label"空置时间" prop"vacantTime"> <el-date-picker v-model"form.vacantTime" type"daterange" start-placeholder"开始日期" end-placeholder"结束日期" clearable :editable"fal…...

Elastic 获得 AWS 教育 ISV 合作伙伴资质,进一步增强教育解决方案产品组合
作者:来自 Elastic Udayasimha Theepireddy (Uday), Brian Bergholm, Marianna Jonsdottir 通过搜索 AI 和云创新推动教育领域的数字化转型。 我们非常高兴地宣布,Elastic 已获得 AWS 教育 ISV 合作伙伴资质。这一重要认证表明,Elastic 作为 …...

Matlab实现任意伪彩色图像可视化显示
Matlab实现任意伪彩色图像可视化显示 1、灰度原始图像2、RGB彩色原始图像 在科研研究中,如何展示好看的实验结果图像非常重要!!! 1、灰度原始图像 灰度图像每个像素点只有一个数值,代表该点的亮度(或…...
WEB3全栈开发——面试专业技能点P4数据库
一、mysql2 原生驱动及其连接机制 概念介绍 mysql2 是 Node.js 环境中广泛使用的 MySQL 客户端库,基于 mysql 库改进而来,具有更好的性能、Promise 支持、流式查询、二进制数据处理能力等。 主要特点: 支持 Promise / async-await…...

性能优化中,多面体模型基本原理
1)多面体编译技术是一种基于多面体模型的程序分析和优化技术,它将程序 中的语句实例、访问关系、依赖关系和调度等信息映射到多维空间中的几何对 象,通过对这些几何对象进行几何操作和线性代数计算来进行程序的分析和优 化。 其中࿰…...