Mycat中间件综合部署高可用-读写分离-分库分表(1.6)

news2024/12/29 9:09:29

Mycat中间件综合部署(1.6)

实施拓扑

请添加图片描述

一,环境搭建

1.服务分配

主机服务
192.168.2.1MySQL-cluster-1
192.168.2.2MySQL-cluster-2
192.168.2.3Mycat

2.MySQL-cluster1分配

server-id端口角色
13306master1
23307slave1
33308master2
43309slave2

3.MySQL-cluster2分配

server-id端口角色
53306master1
63307slave1
73308master2
83309slave2

4.结构

请添加图片描述

二,MySQL-cluster-1搭建

1.搭建MySQL单台多实例

rpm -e mariadb-libs-5.5.52-1.el7.x86_64 --nodeps
yum install -y ncurses-devel libaio-devel autoconf
tar zxf mysql-5.7.36-linux-glibc2.12-x86_64.tar.gz
mv mysql-5.7.36-linux-glibc2.12-x86_64 mysql
mv mysql /usr/local/
useradd -s /sbin/nologin -M -r mysql

mkdir -p /mysql/330{6,7,8,9}/data
chown -R mysql:mysql  /mysql/
chown -R mysql:mysql /usr/local/mysql
ln -s /usr/local/mysql/bin/* /usr/local/bin/

2.MySQL配置文件

cat > /mysql/3306/my.cnf <<EOF
[mysqld]
basedir=/usr/local/mysql
datadir= /mysql/3306/data/
socket= /mysql/3306/mysql.sock
log_error= /mysql/3306/
port=3306
server_id=1
log_bin= /mysql/3306/data/mysql-bin
log-slave-updates=1
EOF


cat > /mysql/3307/my.cnf <<EOF
[mysqld]
basedir=/usr/local/mysql
datadir= /mysql/3307/data/
socket= /mysql/3307/mysql.sock
log_error= /mysql/3307/
port=3307
server_id=2
log_bin= /mysql/3307/data/mysql-bin
EOF


cat > /mysql/3308/my.cnf <<EOF
[mysqld]
basedir=/usr/local/mysql
datadir= /mysql/3308/data/
socket= /mysql/3308/mysql.sock
log_error= /mysql/3308/
port=3308
server_id=3
log_bin= /mysql/3308/data/mysql-bin
log-slave-updates=1
EOF

cat > /mysql/3309/my.cnf <<EOF
[mysqld]
basedir=/usr/local/mysql
datadir= /mysql/3309/data/
socket= /mysql/3309/mysql.sock
log_error= /mysql/3309/
port=3309
server_id=4
log_bin= /mysql/3309/data/mysql-bin
EOF

3.数据库初始化

mysqld --initialize-insecure  --user=mysql --datadir=/mysql/3306/data --basedir=/usr/local/mysql
mysqld --initialize-insecure  --user=mysql --datadir=/mysql/3307/data --basedir=/usr/local/mysql
mysqld --initialize-insecure  --user=mysql --datadir=/mysql/3308/data --basedir=/usr/local/mysql
mysqld --initialize-insecure  --user=mysql --datadir=/mysql/3309/data --basedir=/usr/local/mysql

4.数据库启动配置

cat > /etc/systemd/system/mysqld3306.service <<EOF
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld  --defaults-file=/mysql/3306/my.cnf --user=mysql
LimitNOFILE = 5000
EOF


cat > /etc/systemd/system/mysqld3307.service <<EOF
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld  --defaults-file=/mysql/3307/my.cnf --user=mysql
LimitNOFILE = 5000
EOF

cat > /etc/systemd/system/mysqld3308.service <<EOF
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld  --defaults-file=/mysql/3308/my.cnf --user=mysql
LimitNOFILE = 5000
EOF

cat > /etc/systemd/system/mysqld3309.service <<EOF
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld  --defaults-file=/mysql/3309/my.cnf --user=mysql
LimitNOFILE = 5000
EOF

5.启动所有MySQL

systemctl start mysqld3306.service
systemctl start mysqld3307.service
systemctl start mysqld3308.service
systemctl start mysqld3309.service

6.主从配置

注意:master的二进制日志的名称和位置,开启从后检查状态

mysql -S /mysql/3306/mysql.sock
mysql> show master status;
 mysql-bin.000004 |      439

grant all on *.* to root@'%' identified by '1234.Com';
exit

mysql -S /mysql/3307/mysql.sock
change master to master_host='192.168.2.1',master_user='root',master_password='1234.Com',master_port=3306 ,master_log_file='mysql-bin.000004',master_log_pos=439;
start slave;
grant all on *.* to root@'%' identified by '1234.Com';

mysql -S /mysql/3308/mysql.sock
grant all on *.* to root@'%' identified by '1234.Com';
mysql> show master status;
mysql-bin.000001 |      439

change master to master_host='192.168.2.1',master_user='root',master_password='1234.Com',master_port=3306 ,master_log_file='mysql-bin.000004',master_log_pos=439;
start slave;

mysql -S /mysql/3309/mysql.sock
change master to master_host='192.168.2.1',master_user='root',master_password='1234.Com',master_port=3308 ,master_log_file='mysql-bin.000001',master_log_pos=439;
start slave;
grant all on *.* to root@'%' identified by '1234.Com';

mysql -S /mysql/3306/mysql.sock
change master to master_host='192.168.2.1',master_user='root',master_password='1234.Com',master_port=3308 ,master_log_file='mysql-bin.000001',master_log_pos=439;

三,MySQL-cluster-2搭建

1.搭建MySQL单台多实例

rpm -e mariadb-libs-5.5.52-1.el7.x86_64 --nodeps
yum install -y ncurses-devel libaio-devel autoconf
tar zxf mysql-5.7.36-linux-glibc2.12-x86_64.tar.gz
mv mysql-5.7.36-linux-glibc2.12-x86_64 mysql
mv mysql /usr/local/
useradd -s /sbin/nologin -M -r mysql

mkdir -p /mysql/330{6,7,8,9}/data
chown -R mysql:mysql  /mysql/
chown -R mysql:mysql /usr/local/mysql
ln -s /usr/local/mysql/bin/* /usr/local/bin/

2.MySQL配置文件

cat > /mysql/3306/my.cnf <<EOF
[mysqld]
basedir=/usr/local/mysql
datadir= /mysql/3306/data/
socket= /mysql/3306/mysql.sock
log_error= /mysql/3306/
port=3306
server_id=5
log_bin= /mysql/3306/data/mysql-bin
log-slave-updates=1
EOF


cat > /mysql/3307/my.cnf <<EOF
[mysqld]
basedir=/usr/local/mysql
datadir= /mysql/3307/data/
socket= /mysql/3307/mysql.sock
log_error= /mysql/3307/
port=3307
server_id=6
log_bin= /mysql/3307/data/mysql-bin
EOF


cat > /mysql/3308/my.cnf <<EOF
[mysqld]
basedir=/usr/local/mysql
datadir= /mysql/3308/data/
socket= /mysql/3308/mysql.sock
log_error= /mysql/3308/
port=3308
server_id=7
log_bin= /mysql/3308/data/mysql-bin
log-slave-updates=1
EOF

cat > /mysql/3309/my.cnf <<EOF
[mysqld]
basedir=/usr/local/mysql
datadir= /mysql/3309/data/
socket= /mysql/3309/mysql.sock
log_error= /mysql/3309/
port=3309
server_id=8
log_bin= /mysql/3309/data/mysql-bin
EOF

3.数据库初始化

mysqld --initialize-insecure  --user=mysql --datadir=/mysql/3306/data --basedir=/usr/local/mysql
mysqld --initialize-insecure  --user=mysql --datadir=/mysql/3307/data --basedir=/usr/local/mysql
mysqld --initialize-insecure  --user=mysql --datadir=/mysql/3308/data --basedir=/usr/local/mysql
mysqld --initialize-insecure  --user=mysql --datadir=/mysql/3309/data --basedir=/usr/local/mysql

4.数据库启动配置

cat > /etc/systemd/system/mysqld3306.service <<EOF
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld  --defaults-file=/mysql/3306/my.cnf --user=mysql
LimitNOFILE = 5000
EOF


cat > /etc/systemd/system/mysqld3307.service <<EOF
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld  --defaults-file=/mysql/3307/my.cnf --user=mysql
LimitNOFILE = 5000
EOF

cat > /etc/systemd/system/mysqld3308.service <<EOF
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld  --defaults-file=/mysql/3308/my.cnf --user=mysql
LimitNOFILE = 5000
EOF

cat > /etc/systemd/system/mysqld3309.service <<EOF
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld  --defaults-file=/mysql/3309/my.cnf --user=mysql
LimitNOFILE = 5000
EOF


5.启动所有MySQL

systemctl start mysqld3306.service
systemctl start mysqld3307.service
systemctl start mysqld3308.service
systemctl start mysqld3309.service

6.主从配置

mysql -S /mysql/3306/mysql.sock
mysql> show master status;
mysql-bin.000001 |       434

grant all on *.* to root@'%' identified by '1234.Com';

mysql -S /mysql/3307/mysql.sock
change master to master_host='192.168.2.2',master_user='root',master_password='1234.Com',master_port=3306 ,master_log_file='mysql-bin.000001',master_log_pos= 434;
start slave;
grant all on *.* to root@'%' identified by '1234.Com';

mysql -S /mysql/3308/mysql.sock
grant all on *.* to root@'%' identified by '1234.Com';
mysql> show master status;
mysql-bin.000001 |      434

change master to master_host='192.168.2.2',master_user='root',master_password='1234.Com',master_port=3306 ,master_log_file='mysql-bin.000001',master_log_pos=434;
start slave;

mysql -S /mysql/3309/mysql.sock
change master to master_host='192.168.2.2',master_user='root',master_password='1234.Com',master_port=3308 ,master_log_file='mysql-bin.000001',master_log_pos=434;
start slave;
grant all on *.* to root@'%' identified by '1234.Com';

mysql -S /mysql/3306/mysql.sock
change master to master_host='192.168.2.2',master_user='root',master_password='1234.Com',master_port=3308 ,master_log_file='mysql-bin.000001',master_log_pos=434;
start slave;

四,MyCat搭建

1.安装MyCat

[root@localhost ~]# ls
anaconda-ks.cfg  jdk-8u171-linux-x64.tar.gz  Mycat-server-1.6.7.3-release-20210913163959-linux.tar.gz  

mysql-connector-java-8.0.22.jar 
tar -zxf jdk-8u171-linux-x64.tar.gz
mv jdk1.8.0_171/ /usr/local/java
vi /etc/profile
source /etc/profile
tar zxf Mycat-server-1.6.7.3-release-20210913163959-linux.tar.gz -C /usr/local/
mv mysql-connector-java-8.0.22.jar /usr/local/mycat/lib/
chmod 777 /usr/local/mycat/lib/* -R

2.schema结构

请添加图片描述

3.schema配置

<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">
	<schema name="DB01" checkSQLschema="true" sqlMaxLimit="100">
		<table name="TB_ORDER" dataNode="dn1,dn2" rule="mod-long" />
    <table name="TB01" dataNode="dn1,dn2" rule="mod-long" />
	</schema>
	
	<dataNode name="dn1" dataHost="dhost1" database="db01" />
	<dataNode name="dn2" dataHost="dhost2" database="db01" />
	
	<dataHost name="dhost1" maxCon="1000" minCon="10" balance="1"
			  writeType="0" dbType="mysql" dbDriver="jdbc" switchType="1"  slaveThreshold="100">
		<heartbeat>select user()</heartbeat>
		
		<writeHost host="master1" url="jdbc:mysql://192.168.2.1:3306?useSSL=false&amp;serverTimezone=Asia/Shanghai&amp;characterEncoding=utf8" user="root" password="1234.Com">
     <readHost host="slave1" url="jdbc:mysql://192.168.2.1:3307?useSSL=false&amp;serverTimezone=Asia/Shanghai&amp;characterEncoding=utf8" user="root" password="1234.Com" />
   </writeHost>
   
   <writeHost host="master2" url="jdbc:mysql://192.168.2.1:3308?useSSL=false&amp;serverTimezone=Asia/Shanghai&amp;characterEncoding=utf8" user="root" password="1234.Com">
     <readHost host="slave2" url="jdbc:mysql://192.168.2.1:3309?useSSL=false&amp;serverTimezone=Asia/Shanghai&amp;characterEncoding=utf8" user="root" password="1234.Com" />
   </writeHost>
   
	</dataHost>
	
 
	<dataHost name="dhost2" maxCon="1000" minCon="10" balance="1"
			  writeType="0" dbType="mysql" dbDriver="jdbc" switchType="1"  slaveThreshold="100">
		<heartbeat>select user()</heartbeat>
		
		<writeHost host="master3" url="jdbc:mysql://192.168.2.2:3306?useSSL=false&amp;serverTimezone=Asia/Shanghai&amp;characterEncoding=utf8" user="root" password="1234.Com">
     <readHost host="slave3" url="jdbc:mysql://192.168.2.2:3307?useSSL=false&amp;serverTimezone=Asia/Shanghai&amp;characterEncoding=utf8" user="root" password="1234.Com" />
   </writeHost>
   
   <writeHost host="master4" url="jdbc:mysql://192.168.2.2:3308?useSSL=false&amp;serverTimezone=Asia/Shanghai&amp;characterEncoding=utf8" user="root" password="1234.Com">
     <readHost host="slave4" url="jdbc:mysql://192.168.2.2:3309?useSSL=false&amp;serverTimezone=Asia/Shanghai&amp;characterEncoding=utf8" user="root" password="1234.Com" />
   </writeHost>
	</dataHost>
	
 
</mycat:schema>

4.server.xml配置

<user name="root" defaultAccount="true">
		<property name="password">123456</property>
		<property name="schemas">DB01</property>

5.rule.xml配置

<function name="mod-long" class="io.mycat.route.function.PartitionByMod">
		<!-- how many data nodes -->
		<property name="count">2</property>
	</function>

五,测试

create database db01;

use db01;

create table tb01(
	id int(11) not null,
	name varchar(50) not null,
	sex varchar(1),
	primary key (id)
)engine=innodb default charset=utf8;

insert into tb01(id,name,sex) values(1,'Tom','1');
insert into tb01(id,name,sex) values(2,'Trigger','0');
insert into tb01(id,name,sex) values(3,'Dawn','1');

insert into tb01(id,name,sex) values(4,'Jack Ma','1');
insert into tb01(id,name,sex) values(5,'Coco','0');
insert into tb01(id,name,sex) values(6,'Jerry','1');



insert into tb01(id,name,sex) values(7,'JackKK Ma','1');
insert into tb01(id,name,sex) values(8,'CCCoco','0');
insert into tb01(id,name,sex) values(9,'JerryYY','1');



insert into tb01(id,name,sex) values(10,'JackKK MaAA','1');
insert into tb01(id,name,sex) values(11,'CCCocoAA','0');
insert into tb01(id,name,sex) values(12'JerryYYAA','1');

Dawn’,‘1’);

insert into tb01(id,name,sex) values(4,‘Jack Ma’,‘1’);
insert into tb01(id,name,sex) values(5,‘Coco’,‘0’);
insert into tb01(id,name,sex) values(6,‘Jerry’,‘1’);

insert into tb01(id,name,sex) values(7,‘JackKK Ma’,‘1’);
insert into tb01(id,name,sex) values(8,‘CCCoco’,‘0’);
insert into tb01(id,name,sex) values(9,‘JerryYY’,‘1’);

insert into tb01(id,name,sex) values(10,‘JackKK MaAA’,‘1’);
insert into tb01(id,name,sex) values(11,‘CCCocoAA’,‘0’);
insert into tb01(id,name,sex) values(12,‘JerryYYAA’,‘1’);


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

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

相关文章

c语言中字符串比较的库函数是什么

说起比较运算&#xff0c;肯定第一时间想到了C语言中关于比较的相关运算符 “>、<、&#xff01;、>、<、”&#xff0c;那么要比较两个字符串是否相等是不是直接用“”比较就行了。下面就来看看这种方法行不行&#xff1f; 先看一个例子 void main( void ) {cha…

chatgpt赋能python:Python中如何使用局部变量

Python中如何使用局部变量 Python是一种高级编程语言&#xff0c;它是一种解释型语言&#xff0c;因此它的速度可能不如C 或Java等编译型语言快&#xff0c;但是Python的语法简洁&#xff0c;易于阅读和编写&#xff0c;并且具有强大的功能。 在Python中&#xff0c;变量是一…

SAP VK11税码的理解

背景:销售订单税率获取逻辑 1.工厂&#xff0c;工厂定义维护了国家代码信息 (SO–工厂–国家代码) 2.客户主数据通用数据维护了国家代码 (SO-客户–国家代码) 3.客户主数据销售数据维护了国家代码对应的税分类&#xff08;此国家代码由销售组织对应国家代码维护的国家代码带出来…

DAY08_JavaScript

目录 1 JavaScript简介2 JavaScript引入方式2.1 内联脚本2.2 内部脚本2.3 外部脚本 3 JavaScript基础语法3.1 书写语法3.2 输出语句3.3 变量3.4 数据类型3.5 运算符3.5.1 \和区别3.5.2 类型转换 3.6 流程控制语句3.6.1 if 语句3.6.2 switch 语句3.6.3 for 循环语句3.6.4 while …

c++ ——day1 homework

1.整理思维导图 2.有以下定义&#xff0c;哪些变量可以改变 const和*的位置&#xff0c;const在前&#xff0c;里面的值不能动*p&#xff0c;地址可以动p const在后&#xff0c;地址不能动&#xff0c;值可以动 const char *p&#xff1a;内容不可变&#xff0c;地址可变 co…

PCL点云处理之添加高斯噪点的两种方法(详细注释版)(一百八十一)

PCL点云处理之添加高斯噪点的两种方法(详细注释版)(一百八十一) 一、实验效果二、算法简介三、具体流程四、PCL自带函数实现1.代码2.结果五、Boost函数实现1.代码2.结果总结一、实验效果 通过实验测试,效果如上所示,算法可以正常运行 二、算法简介 高斯噪声是指它的概率…

实习内容总结

目录 项目BMS后台管理系统FantasyPayment通用支付框架 技术文档 实习时间&#xff1a;2022.12 &#xff5e; 2023.06 公司是初创公司&#xff0c;主要专精于AIGC方向&#xff0c;之前主要是To C的业务&#xff0c;做三消类游戏。今年刚刚转向To B业务&#xff0c;我去的时候Go…

Java性能权威指南-总结6

Java性能权威指南-总结6 垃圾收集入门垃圾收集概述GC算法选择GC算法 垃圾收集入门 垃圾收集概述 GC算法 JVM提供了以下四种不同的垃圾收集算法: Serial垃圾收集器 Serial垃圾收集器是四种垃圾收集器中最简单的一种。如果应用运行在Client型虚拟机(Windows平台上的32位JVM或…

【TaskMatrix.AI - Visual ChatGPT】连接超大模型和超多API来完成任务

Github项目地址&#xff1a;https://github.com/microsoft/TaskMatrix 目前大规模预训练模型&#xff08;比如ChatGPT&#xff09;已经能够完成多个任务&#xff0c;例如 提供强大的对话功能&#xff0c;in-context learning能力和代码生成能力生成高层次的解决问题框架 然而…

Vue.js 比较重要知识点总结四

概述 ref toRef toRefs进阶&#xff0c;深入理解vue3 setupVue3为何比Vue2快&#xff1f;怎样理解 Vue 的单向数据流&#xff1f;Vue 中事件绑定原理vue3 mitt 使用 ref toRef toRefs进阶&#xff0c;深入理解 为何需要ref&#xff1f; 返回值类型&#xff0c;会丢失响应式se…

【常用设计模式】待补充

Github仓库地址 概述 23中设计模型分为常见的三大类&#xff1a;创建型模式、结构型模式和行为型模式 创建型模式 简单工厂模式 描述 简单工厂模式不是23中设计模式中的。简单工厂模式不直接向客户端暴露对象创建的细节&#xff0c;而是通过一个工厂类来负责创建产品类的实…

12.MSP432E4 Keil烧录报错Error Flash Download failed - Cortex-M4

一、简介 前段时间琢磨了一块新板子&#xff0c;ESP432E401Y。 遇到一个问题&#xff0c;简单记录一下&#xff0c;问题是在keil中正常烧录程序后&#xff0c;在CCS下也烧录了一次程序&#xff0c;然后就一直无法再到keil中烧录&#xff0c;但是CCS一直是正常烧录的。keil报错…

Spark集群搭建

系列文章目录 Ubuntu常见基本问题 Hadoop3.1.3安装&#xff08;单机、伪分布&#xff09; Hadoop集群搭建 HBase2.2.2安装&#xff08;单机、伪分布&#xff09; Zookeeper集群搭建 HBase集群搭建 Spark安装和编程实践&#xff08;Spark2.4.0&#xff09; Spark集群搭建 文章目…

linux开发:linux最大线程数分析

linux最大线程数分为&#xff0c;进程最大线程数&#xff0c;用户最大进程数&#xff0c; 整个系统已用的线程或进程数。 我们可以用下面命令进行查询这三个进程数。 linux系统可生成最大线程数可以用这个命令查询 cat /proc/sys/kernel/threads-max 进程最大线程数查询方式 ps…

家用儿童帆布床出口欧盟CE认证EN716测试

1.标准适用范围 该标准规定了内部长度大于900mm但不超过1400mm的家用童床的安全要求。该安全要求适用于完全组装完毕待用的童床。可以转换成其它产品的童床&#xff08;如&#xff1a;可变产品、游戏床&#xff09;转换后应该符合相关欧洲标准。该标准不适用于提篮、婴儿床和摇…

hacknet攻略(更新中)

序章 然后点自己的电脑&#xff0c;再点一下SCAN(扫描可用主机)&#xff0c;再点断开 然后点蓝色的电脑&#xff0c;是连接的意思 点中间Probe系统图标&#xff0c;看开放端口数 若端口数为0可以使用porthakc命令直接黑入系统 几个会用到的命令cd, rm * ,dc关闭连接&…

Unity制作二次元卡通渲染角色材质——4 、内外描边和细节添加

Unity制作二次元材质角色 回到目录 大家好&#xff0c;我是阿赵。 这里继续讲二次元角色材质。这次打算讲一下描边和细节的添加。 一、外描边 外描边的做法也不止一种&#xff0c;比如后处理方法的偏导数ddx/ddy之类的&#xff0c;也能整个屏幕的求出边缘。但一般来说单模型渲…

MySQL数据库学习笔记(九)实验课六之触发器和存储过程

没想到这就是最后一次实验了。 一点知识&#xff1a; 道具 – delimiter / DELIMITER 这是用于指定语句分隔符的特殊命令 默认情况下&#xff0c;MySQL使用分号&#xff08;;&#xff09;作为语句的结束符。然而&#xff0c;当我们需要定义存储过程、触发器或函数等包含多条S…

51智能小车-串口控制、循迹、避障

目录 1.串口控制小车 2.循迹小车 3.避障小车 1.串口控制小车 L9110s概述 接通VCC&#xff0c;GND 模块电源指示灯亮&#xff0c; 以下资料来源官方&#xff0c;但是不对&#xff0c;根据下节课实际调试 IA1输入高电平&#xff0c;IA1输入低电平&#xff0c;【OA1 OB1】电机…

总结890

学习目标&#xff1a; 月目标&#xff1a;6月&#xff08;线性代数强化9讲2遍&#xff0c;背诵15篇短文&#xff0c;考研核心词过三遍&#xff09; 周目标&#xff1a;线性代数强化3讲&#xff0c;英语背3篇文章并回诵&#xff0c;检测 每日必复习&#xff08;5分钟&#xff…