使用build_chain.sh离线搭建匹配的区块链,并通过命令配置各群组节点的MySQL数据库

【任务】 登陆Linux服务器,以MySQL分布式存储方式安装并部署如图所示的三群组、四机构、 七节点的星形组网拓扑区块链系统。其中,三群组名称分别为group1、group2和group3, 四个机构名称为agencyA、agencyB、agencyC、agencyD。p2p_port、channel_port、 jsonrpc_port 起始端口分别为 30340、20240、8545,MySQL 数据库命名"db_Group 组群编号_机构编号"。其中,group1 群组中机构 agencyA 的数据库命名示例为 db_Group1_A。具体任务如下:

配置区块链网络

复制代码
vi ipconf

-----------
配置如下图所示

搭建区块链

复制代码
bash build_chain.sh -f ipconf -p 30340,20240,8545 -e ./fisco-bcos

配置数据库

复制代码
1修改配置
vi /etc/mysql/mysql.conf.d
2添加如下配置
max_allowed_packet = 1024M
sql_mode =STRICT_TRANS_TABLE
ssl =0
default_authentication_plugin = mysql_native_password

加一条

重启mysql

复制代码
sudo service mysql restart

-------------
进入mysql检查
mysql -uroot -p
123456

mysql>   show variables like 'max_allowed_packet%';
+--------------------+------------+
| Variable_name      | Value      |
+--------------------+------------+
| max_allowed_packet | 1073741824 |
+--------------------+------------+
1 row in set (0.00 sec)


mysql>    show variables like 'sql_mode%';
+---------------+---------------------+
| Variable_name | Value               |
+---------------+---------------------+
| sql_mode      | STRICT_TRANS_TABLES |
+---------------+---------------------+
1 row in set (0.00 sec)

配置各群组节点的MySQL数据库

bash 复制代码
sed -i 's/type=rocksdb/type=mysql/g' ~/fisco/nodes/127.0.0.1/node*/conf/group.1.ini
sed -i 's/type=rocksdb/type=mysql/g' ~/fisco/nodes/127.0.0.1/node*/conf/group.2.ini
sed -i 's/type=rocksdb/type=mysql/g' ~/fisco/nodes/127.0.0.1/node*/conf/group.3.ini
sed -i 's/db_username=/db_username=root/g' ~/fisco/nodes/127.0.0.1/node*/conf/group.1.ini
sed -i 's/db_username=/db_username=root/g' ~/fisco/nodes/127.0.0.1/node*/conf/group.2.ini
sed -i 's/db_username=/db_username=root/g' ~/fisco/nodes/127.0.0.1/node*/conf/group.3.ini
sed -i 's/db_passwd=/db_passwd=123456/g' ~/fisco/nodes/127.0.0.1/node*/conf/group.1.ini
sed -i 's/db_passwd=/db_passwd=123456/g' ~/fisco/nodes/127.0.0.1/node*/conf/group.2.ini
sed -i 's/db_passwd=/db_passwd=123456/g' ~/fisco/nodes/127.0.0.1/node*/conf/group.3.ini

#-------------------------------
#[命令解析]
#sed -i 's/修改前的内容/修改后的内容/g' 作用文件地址
#-------------------------------
#博主为了方便区分先配置单群组的节点
#-------------------------------
#[node3]
sed -i 's/db_name=/db_name=db_Group1_B/g' ~/fisco/nodes/127.0.0.1/node3/conf/group.1.ini
#[node6]
sed -i 's/db_name=/db_name=db_Group3_D/g' ~/fisco/nodes/127.0.0.1/node6/conf/group.3.ini
#-------------------------------
#[多群组]
#[node0--2 g1-2]
sed -i 's/db_name=/db_name=db_Group1_A/g' ~/fisco/nodes/127.0.0.1/node0/conf/group.1.ini
sed -i 's/db_name=/db_name=db_Group1_A/g' ~/fisco/nodes/127.0.0.1/node1/conf/group.1.ini
sed -i 's/db_name=/db_name=db_Group1_A/g' ~/fisco/nodes/127.0.0.1/node2/conf/group.1.ini
sed -i 's/db_name=/db_name=db_Group2_A/g' ~/fisco/nodes/127.0.0.1/node0/conf/group.2.ini
sed -i 's/db_name=/db_name=db_Group2_A/g' ~/fisco/nodes/127.0.0.1/node1/conf/group.2.ini
sed -i 's/db_name=/db_name=db_Group2_A/g' ~/fisco/nodes/127.0.0.1/node2/conf/group.2.ini
#[node4--5 g2-3]
sed -i 's/db_name=/db_name=db_Group2_C/g' ~/fisco/nodes/127.0.0.1/node4/conf/group.2.ini
sed -i 's/db_name=/db_name=db_Group2_C/g' ~/fisco/nodes/127.0.0.1/node5/conf/group.2.ini
sed -i 's/db_name=/db_name=db_Group3_C/g' ~/fisco/nodes/127.0.0.1/node4/conf/group.3.ini
sed -i 's/db_name=/db_name=db_Group3_C/g' ~/fisco/nodes/127.0.0.1/node5/conf/group.3.ini

通过命令启动所有7个节点,查看并验证节点进程状态;

验证进程状态

bash 复制代码
ps -ef | grep -v grep | grep fisco-bcos

检查区块链节点node0的连接状态以及node0和node4的共识状态日志输出

bash 复制代码
#node0的连接状态
tail -f nodes/127.0.0.1/node0/log/log * |grep connected
#node0和node4的共识状态日志输
tail -f nodes/127.0.0.1/node0/log/log * |grep +++
tail -f nodes/127.0.0.1/node4/log/log * |grep +++

检查MySQL分布式存储数据库状态,登陆MySQL数据库并查看所有节点的数据库信息。

通过控制台发起CRUD操作,并通过MySQL客户端查询状态数据信息

bash 复制代码
添加一个测试表
 create table t_demo(name varchar, item_id varchar, item_name varchar, primary key(name))
向表中插入数据
insert into t_demo (name, item_id, item_name) values (fruit, 1, apple1)
进入数据库
mysql -uroot -p 
123456
查询测试demo的状态
select * from u_t_demo;
相关推荐
vx_Biye_Design7 小时前
springboot宠物领养与救助平台64334-计算机课程设计、毕业设计
java·vue.js·spring boot·后端·mysql·课程设计·宠物
Elastic 中国社区官方博客7 小时前
错误最多的服务运行正常:使用 ES|QL 从日志进行根因分析
大数据·运维·数据库·sql·elasticsearch·搜索引擎·全文检索
做运维的阿瑞8 小时前
mysql数据库视图笔记:创建、修改、删除与适用场景
数据库·笔记·mysql
Seraphina368 小时前
DVWA(SQL Injection-High,XSS Reflected-Medium,XSS Stored-Medium)
数据库·经验分享·sql·网络安全·xss
@Mike@8 小时前
12-数据库学习笔记(五种连接算法)
数据库·笔记·学习
Omics Pro8 小时前
之江实验室NAR|虚拟细胞3阶段训练范式
数据库·人工智能·算法·机器学习·自然语言处理
龙亘川8 小时前
探索智慧文化服务:建设初衷、整体架构、技术支撑、发展现状与实践影响
大数据·数据库·架构
风早爽太8 小时前
Python 学习笔记:数据库迁移工具 ‌Alembic
数据库·python·fastapi·alembic
java1234_小锋8 小时前
【技术专题】Mysql8 数据库 - Mysql8 数据库基本操作
数据库·mysql
其实防守也摸鱼9 小时前
DeepSeek Harness 开源贡献手记:从 Issue 到 Merge 的完整旅程
android·数据库·学习·ai·oracle·自动化