使用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;
相关推荐
程序员塔塔喵36 分钟前
【MySQL篇|第一篇】索引失效的情况
数据库·mysql·索引失效
paopaokaka_luck41 分钟前
宠物门店经营管理系统(销售与库存联动、进货自动记账、 退换与退款关联、员工个人业绩、ECharts 经营分析、滞销识别与客户分层、宠物档案年龄计算)
前端·javascript·spring boot·mysql·echarts·mybatis·1024程序员节
北京青蓝智慧马老师1 小时前
比外部黑客更难防的,是那个有权限的自己人(3 个脱敏复盘)
大数据·数据库·人工智能
笃行3502 小时前
拆一台数据集成产品:KFS 的骨架、肌肉和神经
数据库
4SAPI2 小时前
搭建 AI 数据分析工具大模型 API 选型指南
数据库·人工智能·架构·php·1024程序员节
paopaokaka_luck3 小时前
心理咨询管理系统(WebSocket实时沟通、基于用户的协同过滤、 ECharts多维分析、 预约业务流程、预约校验与定时处理)
java·vue.js·spring boot·mysql·spring·echarts·1024程序员节
码士集团小青3 小时前
面霸篇:高频 Java 基础问题(核心卷一)
linux·服务器·数据库·redis·缓存·1024程序员节
2301_32241428043 小时前
springboot农产品交易平台的设计与实现08055-计算机毕设 原创(免费领源码+部署教程+开发环境)
java·spring boot·redis·mysql·tomcat·maven·mybatis
LMT流氓兔4 小时前
第五单元——第十二课:把脚本整理成项目
java·数据库·python·langchain·1024程序员节
cuijiecheng20184 小时前
WeFlow 无法使用怎么办?一次数据库组件到期问题的排查与修复
数据库·oracle