区块链中文技术社区

EOS 支持 sql_db_plugin及连接测试

更新sql_db_plugin代码

git clone https://github.com/superoneio/eos_sql_db_plugin
cp -rv eos_sql_db_plugin/sql_db_plugin/* /home/surou/Documents/github/eos/plugins/sql_db_plugin

对比了以下几个维护的sql_db_plugin版本代码

其中superoneio的版本,发帖此时是更新最新,最全的。

开启sql_db_plugin编译支持

  1. 打开eos/plugins/CMakeLists.txt

取消add_subdirectory(sql_db_plugin)前面的#注释

  1. 打开 eos/programs/nodeos/CMakeLists.txt
// 取消下面代码前的注释,如果无注释,则忽略此步骤。
if(TARGET sql_db_plugin)
    target_link_libraries( nodeos PRIVATE -Wl,${whole_archive_flag} sql_db_plugin -Wl,${no_whole_archive_flag} )
   endif()

重新编译EOS

./eosio_build.sh
cd build
sudo make install

编译完成后,执行

nodeos --help | grep "sql_db-uri"

如果输出如下内容,证明编译成功。

–sql_db-uri arg Sql DB URI connection string If not

Mysql 8.0 安装

sudo apt-get -y install libsoci-dev
sudo apt-get -y install mysql-client
sudo apt-get install libmysqlclient-dev

配置Eos数据库

mysql -p
CREATE DATABASE eos DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
GRANT ALL PRIVILEGES ON eos.* TO 你的账户名@'%' IDENTIFIED BY '你的密码';
GRANT ALL PRIVILEGES ON eos.* TO 你的账户名@'127.0.0.1' IDENTIFIED BY '你的密码';
mysql > show databases;

mysql > use eos;  //切换到eos 数据库
mysql > source eos_sql_db_plugin/sql_db_plugin/eos.db; //导入数据库

执行数据同步

nodeos --sql_db-uri="mysql://db=eos user=root host=127.0.0.1 password='数据库密码'" --sql_db-block-start=0  --delete-all-blocks

常见问题

MySql 8.0才支持的默认字符集

cat /etc/issue

参考链接

当前页面是本站的「Google AMP」版。查看和发表评论请点击:完整版 »