使用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;
相关推荐
木易士心10 分钟前
MyBatis数据源切换全面解析
数据库
Whyn12 分钟前
MySQL 学习笔记(二)
mysql
新中地GIS开发老师19 分钟前
地信职业百科④:GIS开发工程师
前端·数据库·gis·webgis·三维gis开发
云和恩墨27 分钟前
从“第二存储”到多智能体协作,云和恩墨充实数据基础设施产品矩阵
数据库
北冥you鱼27 分钟前
OpenZeppelin Contracts 完全指南:从入门到精通,构建安全的智能合约
安全·区块链·智能合约
ClouGence33 分钟前
SAP HANA 到 Doris 数据迁移:4 种方案对比与迁移教程
数据库·后端·dba
霸道流氓气质34 分钟前
ApiPost 中配置自动获取 Token 并调用业务接口完整指南
java·服务器·数据库
我不想名字重复38 分钟前
redis缓存和数据库数据保持一致
数据库·redis·缓存
宇宙第一小趴菜1 小时前
三、Oracle 核心原理
数据库·oracle
码出钞能力2 小时前
apache-shardingsphere-5.5.3自定义分片算法
数据库