美文网首页
MacOS安装YugaByte DB,并创建第一个demo

MacOS安装YugaByte DB,并创建第一个demo

作者: delicacylee | 来源:发表于2019-07-25 20:42 被阅读0次

官方网站:https://www.yugabyte.com/

1、先决条件

# 确定是否安装python2,暂时不支持python3
python --version
Python 2.7.10(系统默认)
# 打开文件数量限制
launchctl limit maxfiles
maxfiles 256 unlimited(系统默认)

我们需要提高打开文件数量限制(系统要求为1048576)
打开目录 /Library/LaunchDaemons/创建limit.maxfiles.plist文件,文件内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
  <plist version="1.0">
    <dict>
      <key>Label</key>
        <string>limit.maxfiles</string>
      <key>ProgramArguments</key>
        <array>
          <string>launchctl</string>
          <string>limit</string>
          <string>maxfiles</string>
          <string>1048576</string>
          <string>1048576</string>
        </array>
      <key>RunAtLoad</key>
        <true/>
      <key>ServiceIPC</key>
        <false/>
    </dict>
  </plist>

修改文件权限

sudo chown root:wheel /Library/LaunchDaemons/limit.maxfiles.plist
sudo chmod 644 /Library/LaunchDaemons/limit.maxfiles.plist

加载plist文件

sudo launchctl load -w /Library/LaunchDaemons/limit.maxfiles.plist

确认修改后限制

launchctl limit maxfiles
maxfiles 1048576 1048576 (修改后)

2、下载
浏览器下载比较慢,建议用工具来下载,地址为https://downloads.yugabyte.com/yugabyte-1.3.0.0-darwin.tar.gz

3、配置

sudo ifconfig lo0 alias 127.0.0.2
sudo ifconfig lo0 alias 127.0.0.3
sudo ifconfig lo0 alias 127.0.0.4
sudo ifconfig lo0 alias 127.0.0.5
sudo ifconfig lo0 alias 127.0.0.6
sudo ifconfig lo0 alias 127.0.0.7

4、创建本地服务

./bin/yb-ctl create

5、运行本地客户端
http://127.0.0.1:7000/

6、编写测试范例
创建数据库

# 进入yugabyte的命令行
./bin/ysqlsh  --echo-queries
# 创建数据库
CREATE DATABASE yb_demo;
GRANT ALL ON DATABASE yb_demo to postgres;
# 连接数据库
\c yb_demo;

在Laravel项目中创建新的路由,位置在routes/web.php

Route::get('/yugabyte', function () {
   return view('yugabyte');
});

创建试图文件yugabyte.blade.php

<?php
try {
    /* Establish connection. */
    $dbh = new PDO('pgsql:host=127.0.0.1;port=5433;dbname=yb_demo;user=postgres;password=postgres',
        'postgres', null, array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
            PDO::ATTR_EMULATE_PREPARES => true,
            PDO::ATTR_PERSISTENT => true));

    /* Create the table if it doesn't exist. */
    $stmt = 'CREATE TABLE IF NOT EXISTS employee (id int PRIMARY KEY,
                                                name   varchar,
                                                salary int,
                                                dept   varchar)';
    $dbh->exec($stmt);

    /* Prepare the insert statement. */
    $insert_stmt = $dbh->prepare('INSERT INTO employee(id, name, salary, dept) ' .
        'VALUES (:id, :name, :salary, :dept)');

    /* Insert a row. */
    $insert_stmt->bindValue(':id', 10, PDO::PARAM_INT);
    $insert_stmt->bindValue(':name', 'Jane', PDO::PARAM_STR);
    $insert_stmt->bindValue(':salary', 150000, PDO::PARAM_INT);
    $insert_stmt->bindValue(':dept', 'Engineering', PDO::PARAM_STR);
    $insert_stmt->execute();

    /* Insert a row. */
    $insert_stmt->bindValue(':id', 11, PDO::PARAM_INT);
    $insert_stmt->bindValue(':name', 'Joe', PDO::PARAM_STR);
    $insert_stmt->bindValue(':salary', 140000, PDO::PARAM_INT);
    $insert_stmt->bindValue(':dept', 'Finance', PDO::PARAM_STR);
    $insert_stmt->execute();

    echo "Inserted new records successfully.\n";

    /* Prepare query statement to retrieve user info by id */
    $query = $dbh->prepare('SELECT name, salary, dept FROM employee WHERE id = :id');

    $query->bindValue(':id', 11, PDO::PARAM_INT);
    $query->execute();
    $user_info = $query->fetch(PDO::FETCH_ASSOC);

    echo "Retrieving info for user id 11...\n";
    print_r($user_info);
} catch (Exception $excp) {
    print "EXCEPTION: " . $excp->getMessage() . "\n";
    exit(1);
}

最后输入地址:http://localhost:8888/yugabyte

界面显示Inserted new records successfully. Retrieving info for user id 11... Array ( [name] => Joe [salary] => 140000 [dept] => Finance )表示执行成功。

P.S.如果缺少驱动的话,需要自行编译php-pgsql,一般情况下PHP默认自带该驱动。

相关文章

  • MacOS安装YugaByte DB,并创建第一个demo

    官方网站:https://www.yugabyte.com/ 1、先决条件 我们需要提高打开文件数量限制(系统要求...

  • Golang操作MySQL

    数据库创建demo表 创建DB连接,创建结构体Demo 使用QueryRow查询 使用Query查询 新增INSE...

  • 2018-06-01

    白山云 YugaByte DB OpenJ9 和 HotSpot 的对比 Part 1 Rust新增存在类型支持 ...

  • Cocoapods生成静态库(完整)

    1、Cocoapods环境安装 2、终端cd 到目录创建SDK 并根据提示完成创建demo工程 3、工程中完善iC...

  • 2020-05-28 mysql操作命令记录

    【创建数据库db1】 mysql> create DATABASE db1; 【创建并授权一个业务用户,能够对db...

  • [DB] MacOS 本地安装 MongoDB

    官网下载 MongoDB Community Server[https://www.mongodb.com/try...

  • mongodb集合

    创建集合 db.createCollection("demo") 固定集合 固定集合无法使用remove,只能使用...

  • db2 主备机在线备份

    前提数据库以安装完成,并创建好sample库 1、开始数据库归档模式 db2 connect to sample;...

  • nodejs外部模块mongodb数据库

    第一步: 从www.mongodb.com下载数据库并安装 第二部: 在你安装的目录下创建/data/db文件 第...

  • mongo总结

    基本 库的基本操作 创建库# 创建并且切换到demouse demo;# 展示当前所在库位置db;# 查看所有数据...

网友评论

      本文标题:MacOS安装YugaByte DB,并创建第一个demo

      本文链接:https://www.haomeiwen.com/subject/evjkrctx.html