使用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;
相关推荐
ZWZhangYu6 小时前
LangChain 构建向量数据库和检索器
数据库·langchain·easyui
feifeigo1237 小时前
升级到MySQL 8.4,MySQL启动报错:io_setup() failed with EAGAIN
数据库·mysql·adb
火龙谷8 小时前
【nosql】有哪些非关系型数据库?
数据库·nosql
焱焱枫9 小时前
Oracle获取执行计划之10046 技术详解
数据库·oracle
qq_3923971211 小时前
Redis常用操作
数据库·redis·wpf
A__tao12 小时前
一键将 SQL 转为 Java 实体类,全面支持 MySQL / PostgreSQL / Oracle!
java·sql·mysql
一只fish12 小时前
MySQL 8.0 OCP 1Z0-908 题目解析(17)
数据库·mysql
花好月圆春祺夏安13 小时前
基于odoo17的设计模式详解---装饰模式
数据库·python·设计模式
A__tao13 小时前
SQL 转 Java 实体类工具
java·数据库·sql
m0_6530313613 小时前
腾讯云认证考试报名 - TDSQL数据库交付运维专家(TCCE PostgreSQL版)
运维·数据库·腾讯云