您正在查看: Surou 发布的文章

Ubuntu 安装MySql 8.0

首先清理干净本地的旧版Mysql

关闭apparmor

sudo /etc/init.d/apparmor stop

关闭mysql

sudo /etc/init.d/mysql stop

删除旧版本

sudo apt-get remove --purge mysql-\*
sudo find  / -name mysql -print //手动删除遗留文件  sudo rm -rf somedir
sudo apt-get remove --purge libmysqlclien\*
sudo apt-get remove apparmor
sudo apt autoremove

添加MySQL Apt存储库

目前已经有了现成可用于安装 MySQL Server、客户端和其它组件的 APT 存储库,我们需要先将 MySQL 存储库添加到 Ubuntu 18.04 的软件包源列表中:

  • 先使用 wget 下载存储库软件包:
    wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.10-1_all.deb
  • 然后使用以下 dpkg 命令安装下载好的 MySQL 存储库软件包:
    sudo dpkg -i mysql-apt-config_0.8.10-1_all.deb

    注意:在软件包安装过程中,系统会提示您选择 MySQL 服务器版本和其他组件,例如群集、共享客户端库或配置要安装 MySQL 的工作台。
    默认 MySQL 服务器版本 mysql-8.0 的源将被自动选中,我们只需最终确定就可以完成发行包的配置和安装。

    在Ubuntu 18.04中安装MySQL 8服务器

    从所有已配置的存储库(包括新添加的 MySQL 8存储库)中下载最新的软件包信息:

    sudo apt update

    然后运行如下命令安装 MySQL 8 社区服务器、客户端和数据库公用文件:

    sudo apt-get install mysql-common mysql-server

    通过安装过程,将会要求为 MySQL 8 服务器的 root 用户输入密码,在输入和再次验证后按回车继续。

    再次输入密码

    此后,需要选择将要使用的默认身份认证插件,选择好之后按回车即可完成程序包配置。

身份认证插件有如下 2 种可供选择:

  • 使用存储密码加密(推荐)
  • 使用传统认证模式(MySQL 5.x 兼容)

问题

如果出现依赖问题

dpkg: error processing package mysql-server (--configure):
 dependency problems - leaving unconfigured
Processing triggers for libc-bin (2.23-0ubuntu10) ...
Errors were encountered while processing:
 mysql-community-server
 mysql-server
E: Sub-process /usr/bin/dpkg returned an error code (1)

检查下依赖

sudo apt-get install -f

将 Ubuntu 16.04 LTS 升级到 Ubuntu 18.04 LTS

在升级之前, 您应该先更新当前的16.04. 建议升级之前更新/升级所有已安装的软件包.

  • 运行以下命令
    sudo apt update && sudo apt dist-upgrade && sudo apt autoremove
  • 安装Ubuntu update manager
    更新完 系统后,运行以下命令安装update-manager-core(如果您没有安装).
    sudo apt-get install update-manager-core
  • 打开update-manager配置文件并确保提示行设置为 lts
    sudo nano /etc/update-manager/release-upgrades

  • 执行升级命令:
    sudo do-release-upgrade -d
  • 当屏幕出现升级提示是 选择y
    等待所有的软件包下载...安装...到重启...
    当安装完成后,你的系统就升级到最新的Ubuntu开发版本

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版本代码

开启sql_db_plugin编译支持

  1. 打开eos/plugins/CMakeLists.txt
    取消add_subdirectory(sql_db_plugin)前面的#注释
  2. 打开 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 安装

  • 参考 Ubuntu 安装MySql 8.0
  • 接下来我们安装 soci。soci 是 C++ 连接 MySQL 的 Library。Ubuntu 可以快速安装,命令如下:
    sudo apt-get -y install libsoci-dev
  • 安装 mysql-client
    sudo apt-get -y install mysql-client
    sudo apt-get install libmysqlclient-dev

配置Eos数据库

  • 进入mysql
    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;

  • 导入数据库(eos.db)
    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

常见问题

  • ERROR 1273 (HY000): Unknown collation: 'utf8mb4_0900_ai_ci'
    MySql 8.0才支持的默认字符集
  • 查看Ubuntu版本
    cat /etc/issue

参考链接

EOS 合约代码中的print 输出到终端

修改~/.local/share/eosio/nodeos/config/config.ini

contracts-console = true

安装EOS 数据获取API Server EOSTracker-API

获取源代码

git clone https://github.com/EOSEssentials/EOSTracker-API.git

开始编译

cd EOSTracker-API
composer install

开始运行

php bin/console server:run


常见问题

  • ubuntu add-apt-repository command not found解决方法
    apt-get install software-properties-common
  • Ubuntu PHP升级到最新版本
    add-apt-repository ppa:ondrej/php
    apt-get update
    apt-get upgrade php
  • The requested PHP extension ext-apcu * is missing from your system. Install or enable PHP's apcu extension
    apt-get install php7.2-apcu //修改为当前版本  php -v
  • The requested PHP extension ext-intl * is missing from your system. Install or enable PHP's intl extension
    apt-get install php7.2-intl //修改为当前版本  php -v
  • The requested PHP extension ext-mbstring * is missing from your system. Install or enable PHP's mbstring extension
    apt-get install php7.2-mbstring //修改为本地版本  php -v
  • The requested PHP extension ext-redis * is missing from your system. Install or enable PHP's redis extension
    apt-get install php7.2-redis //修改为本地版本  php -v
  • Installation request for symfony/symfony v3.4.11 -> satisfiable by symfony/symfony[v3.4.11].
    symfony/symfony v3.4.11 requires ext-xml * -> the requested PHP extension xml is missing from your system.
       apt-get install php7.2-xml //修改为本地版本 PHP -v