<?xml version="1.0" encoding="UTF-8" ?>
<feed xmlns="http://www.w3.org/2005/Atom">
   <title type="text">Wiki Tutorials</title>
      <subtitle type="html">Wiki Tutorials</subtitle>
      <updated>2013-06-18T17:01:19-07:00</updated>
   <id>http://www.cubrid.org/wiki_tutorials/atom</id>
   <link rel="alternate" type="text/html" hreflang="en" href="http://www.cubrid.org/?mid=wiki_tutorials"/>
   <link rel="self" type="application/atom+xml" href="http://www.cubrid.org/wiki_tutorials/atom"/>
   <generator uri="http://www.xpressengine.com/" version="1.4.4.1">XpressEngine</generator>
   <entry>
      <title>cannot restore segment prot after reloc: Permission denied</title>
      <id>http://www.cubrid.org/672632</id>
      <published>2013-06-06T00:49:01-07:00</published>
      <updated>2013-06-06T00:51:39-07:00</updated>
      <link rel="alternate" type="text/html" href="http://www.cubrid.org/672632"/>
      <link rel="replies" type="text/html" href="http://www.cubrid.org/672632#comment"/>
      <author>
         <name>CUBRID</name>
                  <uri>http://www.cubrid.org</uri>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;By default, CentOS 5 has the &lt;b&gt;SE Linux&lt;/b&gt; feature set to &lt;b&gt;enforcing&lt;/b&gt;. So, sometimes when you install CUBRID on CentOS and try to start the cubrid services using &lt;b&gt;cubrid service start&lt;/b&gt;, you may encounter the following error:&lt;/p&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;[cubrid@localhost ~]$ cubrid service start
cubrid: error while loading shared libraries: /opt/cubrid/lib/libcubridsa.so.8: cannot restore segment prot after reloc: Permission denied&lt;/pre&gt;
&lt;p&gt;&lt;span style=&quot;font-family: Calibri, &apos;Times New Roman&apos;, Verdana, Arial, sans;&quot;&gt;To temporarily disable enforcement on a running system, type&lt;/span&gt;&lt;/p&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;/usr/sbin/setenforce 0&lt;/pre&gt;
&lt;p&gt;&lt;span style=&quot;font-family: Calibri, &apos;Times New Roman&apos;, Verdana, Arial, sans;&quot;&gt;To permanently disable enforcement during a system startup&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: Calibri, &apos;Times New Roman&apos;, Verdana, Arial, sans;&quot;&gt;change &quot;&lt;b&gt;enforcing&lt;/b&gt;&quot; to &quot;&lt;b&gt;disabled&lt;/b&gt;&quot; in &apos;&apos;&lt;b&gt;/etc/selinux/config&lt;/b&gt;&apos;&apos; and reboot.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;If this did not solve your problem, please check out the Permission Denied Error page for details on how to troubleshoot the problem:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;/wiki_tutorials/entry/permission-denied-error&quot;&gt;http://www.cubrid.org/wiki_tutorials/entry/permission-denied-error&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</content>
                  <category term="selinux"/>
            <category term="permissions"/>
            
   </entry>
   <entry>
      <title>How to ... using CUBRID Tutorials</title>
      <id>http://www.cubrid.org/471587</id>
      <published>2012-10-29T01:17:39-07:00</published>
      <updated>2013-06-06T00:46:14-07:00</updated>
      <link rel="alternate" type="text/html" href="http://www.cubrid.org/471587"/>
      <link rel="replies" type="text/html" href="http://www.cubrid.org/471587#comment"/>
      <author>
         <name>CUBRID</name>
                  <uri>http://www.cubrid.org</uri>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;div class=&quot;grid col2&quot;&gt;&lt;span&gt;
&lt;h3&gt;Configuring CUBRID&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;[CUBRID Installation Instructions]&lt;/li&gt;
&lt;li&gt;[Connecting to a remote CUBRID Database]&lt;/li&gt;
&lt;li&gt;[How to Build CUBRID from Source on Fedora/Centos]&lt;/li&gt;
&lt;li&gt;[How to Build CUBRID from Source on Ubuntu]&lt;/li&gt;
&lt;li&gt;[How to Create a CUBRID Database]&lt;/li&gt;
&lt;li&gt;[How to Start or Autostart a CUBRID Database]&lt;/li&gt;
&lt;li&gt;[How to Start / Stop / Restart CUBRID Service]&lt;/li&gt;
&lt;li&gt;[Getting started with demodb (CUBRID Demo Database)]&lt;/li&gt;
&lt;li&gt;[How to Upgrade CUBRID Safely on Ubuntu]&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;CUBRID Specific Features&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;[CUBRID Database File Types and Their Meaning]&lt;/li&gt;
&lt;li&gt;[CUBRID DATETIME Data Type]&lt;/li&gt;
&lt;li&gt;[CUBRID iptables Firewall Configuration]&lt;/li&gt;
&lt;li&gt;[CUBRID Log Files]&lt;/li&gt;
&lt;li&gt;[How to Drop Some / All Tables]&lt;/li&gt;
&lt;li&gt;[How to Enable/Disable AutoCommit Mode]&lt;/li&gt;
&lt;li&gt;[How to Get Primary Keys]&lt;/li&gt;
&lt;li&gt;[How to Get Foreign Keys]&lt;/li&gt;
&lt;li&gt;[How to Insert Data into Tables with AUTO_INCREMENT Column(s)]&lt;/li&gt;
&lt;li&gt;[How to Quote Reserved Keywords]&lt;/li&gt;
&lt;li&gt;[How to Reduce Disk Space Occupied by CUBRID]&lt;/li&gt;
&lt;li&gt;[How to Show Create Table Statement]&lt;/li&gt;
&lt;/ul&gt;
&lt;/span&gt; &lt;span&gt;
&lt;h3&gt;Error Handling&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;[Common Microsoft Errors]&lt;/li&gt;
&lt;li&gt;[DLL Load Failed]&lt;/li&gt;
&lt;li&gt;[Dropping Primary Key Error]&lt;/li&gt;
&lt;li&gt;[Permission Denied Error]&lt;/li&gt;
&lt;li&gt;[Unable to Resolve Host]&lt;/li&gt;
&lt;li&gt;[Unique Constraint Violation Error]&lt;/li&gt;
&lt;li&gt;[Update / Delete Operations Restriction Error]&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Calibri, &apos;Times New Roman&apos;, Verdana, Arial, sans;&quot;&gt;[cannot restore segment prot after reloc: Permission denied]&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Export/Import Database/Tables&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;[Copy / Clone Database]&lt;/li&gt;
&lt;li&gt;[Exporting / Unloading a Database Using CUBRID Manager]&lt;/li&gt;
&lt;li&gt;[How to Run a SQL Script / File]&lt;/li&gt;
&lt;li&gt;[Importing / Loading a Database Using CUBRID Manager]&lt;/li&gt;
&lt;li&gt;[Migrating Tables Using CUBRID Manager]&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Troubleshooting Drivers&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;[How to Get PHP Version]&lt;/li&gt;
&lt;/ul&gt;
&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;</content>
                  <category term="error handling"/>
            <category term="export"/>
            <category term="import"/>
            
   </entry>
   <entry>
      <title>How to Create a CUBRID Database</title>
      <id>http://www.cubrid.org/299700</id>
      <published>2012-02-20T23:38:54-08:00</published>
      <updated>2013-05-27T00:56:36-07:00</updated>
      <link rel="alternate" type="text/html" href="http://www.cubrid.org/299700"/>
      <link rel="replies" type="text/html" href="http://www.cubrid.org/299700#comment"/>
      <author>
         <name>Esen Sagynov</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;In this tutorial you will learn how to quickly create a database in CUBRID. If you use a Desktop version of the OS and prefer using GUI tools instead of a terminal, you may perform all of the commands below in &lt;a href=&quot;/wiki_tools/entry/cm_manual_database&quot; target=&quot;_self&quot;&gt;CUBRID Manager&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;To start with let&apos;s create a sample database. Type the following command in the terminal. This assumes that CUBRID is installed in your system (or see [CUBRID Installation Instructions|installation instructions]). If necessary, replace &lt;span style=&quot;font-style: italic;&quot;&gt;sample_db&lt;/span&gt; with your own database name.&lt;/p&gt;
&lt;pre class=&quot;brush:bash;gutter:false&quot;  title=&quot;&quot;&gt;cubrid createdb sample_db&lt;/pre&gt;
&lt;p&gt;This will create a database in your current working directory with a user &lt;span style=&quot;font-weight: bold;&quot;&gt;dba&lt;/span&gt; and a blank password. If necessary, you can &lt;a target=&quot;_self&quot; href=&quot;/questions/235456#answer-236467&quot;&gt;set a user password&lt;/a&gt; at this step or [Change database user password|change it later].&lt;/p&gt;
&lt;blockquote class=&quot;q4&quot;&gt;
&lt;p&gt;If you want to keep your databases in a certain directory, first navigate to that directory and then execute the above &lt;span style=&quot;font-weight: bold;&quot;&gt;createdb&lt;/span&gt; command in that directory.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Once you have created a database, &lt;strong&gt;you need to start it&lt;/strong&gt; before you try to connect to it.&lt;/p&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;cubrid server start sample_db&lt;/pre&gt;
&lt;p&gt;If you decided to use a command line terminal, you need to connect to  a database to execute SQL queries. CUBRID provides CSQL command line  SQL interpreter for this. Let&apos;s connect to a database.&lt;/p&gt;
&lt;pre class=&quot;brush:plain&quot;  title=&quot;&quot;&gt;csql sample_db -u dba

CSQL Interpreter

Type `;help&apos; for help messages.

csql&amp;gt;&lt;/pre&gt;
&lt;p&gt;Now create a table to hold users&apos; data. SQL in CUBRID is very much same to that of MySQL.&lt;/p&gt;
&lt;pre class=&quot;brush:sql&quot;  title=&quot;&quot;&gt;CREATE TABLE &quot;tbl_users&quot;(
    &quot;id&quot; integer AUTO_INCREMENT,
    &quot;email&quot; varchar(100) NOT NULL UNIQUE,
    &quot;join_date&quot; integer NOT NULL,
    CONSTRAINT pk_tbl_users_id PRIMARY KEY(&quot;id&quot;)
);&lt;/pre&gt;
&lt;p&gt;Copy and paste the above schema declaration in the CSQL and press Enter.&lt;/p&gt;
&lt;p&gt;Now let&apos;s insert some data into the table using CSQL.&lt;/p&gt;
&lt;pre class=&quot;brush:sql&quot;  title=&quot;&quot;&gt;INSERT INTO tbl_users (email, join_date) VALUES
(&apos;7hyn6@peg30xmw1hcdrcg.gov&apos;, 1328523265),
(&apos;29ggzm3@cexbebaju9pkrq.net&apos;, 1328534265),
(&apos;4yn69iqqe@rh6c5b28xaw.gov&apos;, 1328528265),
(&apos;dyku2b8@wzfofw5aqymu7.biz&apos;, 1323423265),
(&apos;7au9hv1u@boi1ba1wowlfj3m.org&apos;, 1328523665);&lt;/pre&gt;
&lt;p&gt;At this point you have learnt how to create a database and a table as well as insert sample data.&lt;/p&gt;
&lt;h2&gt;Can&apos;t start your database?&lt;/h2&gt;
&lt;p&gt;There can be several reasons why your database may fail to start.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Make sure your &lt;code&gt;hostname&lt;/code&gt; resolves (by editing &lt;strong&gt;hosts&lt;/strong&gt; file) to the IP of your server (eg. &lt;strong&gt;localhost&lt;/strong&gt; or &lt;strong&gt;127.0.0.1&lt;/strong&gt;). It is common that &lt;a href=&quot;/forum/663411#comment_664041&quot;&gt;users forget&lt;/a&gt; to ensure this. Note that CUBRID doesn&apos;t support IPv6, which means your&amp;nbsp;&lt;span style=&quot;font-family: monospace;&quot;&gt;hostname&lt;/span&gt;&amp;nbsp;should resolve to an IPv4 address.&lt;/li&gt;
&lt;li&gt;Make sure your server has enough memory. By default CUBRID Server is configured (via &lt;a href=&quot;/manual/91/en/admin/config.html#memory-parameters&quot;&gt;data_buffer_size&lt;/a&gt;&amp;nbsp;server parameter) to demand 512MB of memory to start a single database. Your options are either to increase your memory to satisfy the minimum requirements, or decrease the &lt;code&gt;data_buffer_size&lt;/code&gt; parameter value.&lt;/li&gt;
&lt;/ol&gt;
&lt;div style=&quot;display: none;&quot; id=&quot;endic_ext_wrapper&quot;&gt;&lt;/div&gt;&lt;/div&gt;</content>
                  <category term="CSQL"/>
            <category term="CREATE TABLE"/>
            <category term="createdb"/>
            <category term="INSERT"/>
            <category term="SQL"/>
            
   </entry>
   <entry>
      <title>Getting Started with CUBRID Database AMI (Amazon Machine Image)</title>
      <id>http://www.cubrid.org/568716</id>
      <published>2013-01-29T01:33:36-08:00</published>
      <updated>2013-05-21T19:59:36-07:00</updated>
      <link rel="alternate" type="text/html" href="http://www.cubrid.org/568716"/>
      <link rel="replies" type="text/html" href="http://www.cubrid.org/568716#comment"/>
      <author>
         <name>Esen Sagynov</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;For those users looking to seamlessly deploy CUBRID Database on Amazon Web Services (AWS), we have created Amazon EC2 Machine Images (AMI) with CUBRID and its APIs installed. In this tutorial I will explain the key steps you need to perform in order to get everything started on AWS. We will:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Review available CUBRID AMIs.&lt;/li&gt;
&lt;li&gt;Review the software stack of the CUBRID AMI.&lt;/li&gt;
&lt;li&gt;Create an account on Amazon Web Services.&lt;/li&gt;
&lt;li&gt;Launch your instances based on CUBRID AMI.&lt;/li&gt;
&lt;li&gt;Configure your instance.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;CUBRID AMI&lt;/h2&gt;
&lt;p&gt;The following is a list of CUBRID AMI we (&lt;strong&gt;owner ID:&amp;nbsp;&lt;/strong&gt;&lt;b&gt;024941853939&lt;/b&gt;) provide officially. We distribute CUBRID AMIs to all available regions (&lt;em&gt;if a new region is available and we do not distribute there, let us know and we will add it as well&lt;/em&gt;).&amp;nbsp;Shortly we will add AMIs based on other Linux distirbutions as well.&lt;/p&gt;
&lt;table border=&quot;0&quot;&gt;
&lt;thead&gt; 
&lt;tr&gt;
&lt;td&gt;Owner ID&lt;/td&gt;
&lt;td&gt;CUBRID Version&lt;/td&gt;
&lt;td&gt;OS&lt;/td&gt;
&lt;td&gt;Root Device&lt;/td&gt;
&lt;td&gt;Image Size&lt;/td&gt;
&lt;td&gt;AMI ID&lt;/td&gt;
&lt;td&gt;EC2 Region&lt;/td&gt;
&lt;/tr&gt;
&lt;/thead&gt; 
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;024941853939&lt;/td&gt;
&lt;td&gt;CUBRID 8.4.3.1005 x64&lt;/td&gt;
&lt;td&gt;Ubuntu 12.04.1 x64&lt;/td&gt;
&lt;td&gt;EBS&lt;/td&gt;
&lt;td&gt;8GB&lt;/td&gt;
&lt;td&gt;ami-cd8713a4&lt;/td&gt;
&lt;td&gt;us-east-1 (N. Virginia)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;text-align: center;&quot;&gt;=&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;text-align: center;&quot;&gt;=&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;text-align: center;&quot;&gt;=&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;text-align: center;&quot;&gt;=&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;=&lt;/td&gt;
&lt;td&gt;ami-5aea606a&lt;/td&gt;
&lt;td&gt;us-west-2 (Oregon)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;=&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;=&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;=&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;=&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;=&lt;/td&gt;
&lt;td&gt;ami-6ae4c72f&lt;/td&gt;
&lt;td&gt;us-west-1 (N. California)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;=&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;=&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;=&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;=&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;=&lt;/td&gt;
&lt;td&gt;ami-9ee3edea&lt;/td&gt;
&lt;td&gt;eu-west-1 (Ireland)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;=&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;=&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;=&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;=&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;=&lt;/td&gt;
&lt;td&gt;ami-980c41ca&lt;/td&gt;
&lt;td&gt;ap-southeast-1 (Singapore)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;=&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;=&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;=&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;=&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;=&lt;/td&gt;
&lt;td&gt;ami-77c14576&lt;/td&gt;
&lt;td&gt;ap-northeast-1 (Tokyo)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;=&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;=&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;=&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;=&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;=&lt;/td&gt;
&lt;td&gt;ami-ee5accd4&lt;/td&gt;
&lt;td&gt;ap-southeast-2 (Sydney)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;=&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;=&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;=&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;=&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;=&lt;/td&gt;
&lt;td&gt;ami-039c471e&lt;/td&gt;
&lt;td&gt;sa-east-1 (S&amp;atilde;o Paulo)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;I will explain how to use these Amazon Machine Images below. First, let&apos;s see what software will be available for you in this Amazon Machine Image.&lt;/p&gt;
&lt;h2&gt;Software Stack&lt;/h2&gt;
&lt;h3&gt;OS&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Official Ubuntu&lt;/strong&gt; 12.04.1 (precise) x64 LTS cloud AMI &lt;a href=&quot;https://help.ubuntu.com/community/EC2StartersGuide&quot;&gt;distributed&lt;/a&gt; by Canonical (AMI ID:&amp;nbsp;ami-8e109ebe; note, this is &lt;em&gt;not&lt;/em&gt; CUBRID AMI ID).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We will soon provide CentOS based CUBRID AMIs.&lt;/p&gt;
&lt;h3&gt;Default software&lt;/h3&gt;
&lt;p&gt;The following software is installed on Ubuntu 12.04.1 by default.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Python&lt;/strong&gt; 2.7.3 with pip 1.0&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Perl&lt;/strong&gt; 5.14.2 with CPAN 1.57&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Custom software&lt;/h3&gt;
&lt;p&gt;Now here we have installed the software necessary to work with CUBRID Database Server.&amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;CUBRID Database Server&lt;/strong&gt;&amp;nbsp;8.4.3.1005 x64&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Python driver&lt;/strong&gt; v8.4.3.0002&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Perl driver&lt;/strong&gt;&amp;nbsp;8.4.3.0001&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;PHP&amp;nbsp;&lt;/strong&gt;5.3.10 with PECL/PEAR&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;PHP driver&lt;/strong&gt;&amp;nbsp;8.4.3.0001&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;PDO driver&lt;/strong&gt;&amp;nbsp;8.4.3.0001&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Apache HTTP Server&lt;/strong&gt;&amp;nbsp;2.2.22 (installed automatically by PHP)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These are all you need to get started with CUBRID Database on Amazon Web Services.&lt;/p&gt;
&lt;h2&gt;Getting Started&lt;/h2&gt;
&lt;h3&gt;Create an account on Amazon Web Services&lt;/h3&gt;
&lt;p&gt;If you already have an AWS account, you can skip this step and continue. If you do not have one:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Go to &lt;a href=&quot;http://aws.amazon.com&quot;&gt;http://aws.amazon.com&lt;/a&gt;, and click on the &lt;strong&gt;Sign Up&lt;/strong&gt; button. Sign in to your existing AWS account or create a new one.&lt;/li&gt;
&lt;li&gt;Go to&amp;nbsp;&lt;a href=&quot;http://aws.amazon.com/ec2&quot;&gt;http://aws.amazon.com/ec2&lt;/a&gt;&amp;nbsp;and clck on teh &lt;strong&gt;Sign Up Now&lt;/strong&gt;&amp;nbsp;button. If it is the first time you are signing up, you may be eligible for&amp;nbsp;free&amp;nbsp;750&amp;nbsp;hours of Micro instance every month for one year.&lt;ol&gt;
&lt;li&gt;Enter your credit card information and complete your signup for the Amazon EC2 service.&amp;nbsp;It takes from several hours to couple of days for your EC2 account to set up. Eventually you should receive a confirmation email from Amazon Web Services.&lt;/li&gt;
&lt;/ol&gt;&lt;/li&gt;
&lt;li&gt;Once you have your EC2 account set up, go to &lt;a href=&quot;https://console.aws.amazon.com/ec2/&quot;&gt;EC2 Web Console&lt;/a&gt;.&lt;ol&gt;
&lt;li&gt;Create a &lt;strong&gt;key pair&lt;/strong&gt;. You will need this key pair to launch EC2 instances and connect to them via SSH. The public key will remain in your EC2 account, while you will use the private key when establising an SSH connection to newly created instances.&lt;ol&gt;
&lt;li&gt;Click &lt;strong&gt;Key Pairs&lt;/strong&gt; under &lt;em&gt;Networking and Security&lt;/em&gt; in the Navigation pane and then click the &lt;strong&gt;Create Key Pair&lt;/strong&gt; button (save it in e.g. &lt;em&gt;~/.ec2/ec2.pem&lt;/em&gt;).&amp;nbsp;&lt;span style=&quot;color: #ff0000;&quot;&gt;Download the private key.&lt;/span&gt;&amp;nbsp;You will not be able to download it later. Do it now!&lt;/li&gt;
&lt;/ol&gt;&lt;/li&gt;
&lt;li&gt;Set up your Amazon &lt;strong&gt;API credentials&lt;/strong&gt;. For this you need to create a new certificate.&lt;ol&gt;
&lt;li&gt;On the top right corner of the EC2 page go to the menu displayed by your name, there choose &lt;strong&gt;Security Credentials&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Under the &lt;em&gt;Access Credentials&lt;/em&gt; click on the &lt;strong&gt;X.509 Certificates&lt;/strong&gt; tab.&lt;/li&gt;
&lt;li&gt;Create a new certificate.&lt;/li&gt;
&lt;li&gt;Once created, download the private key and the certificate (save them in e.g. &lt;em&gt;~/.ec2/cert-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.pem&lt;/em&gt; and &lt;em&gt;~/.ec2/pk-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.pem&lt;/em&gt;).&lt;/li&gt;
&lt;li&gt;Make your credential files private. In your command line type:&lt;br /&gt;&lt;code&gt;chmod go-rwx ~/.ec2/*.pem&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;If at a later time you need to create a new certificate, you can come back here and create a new certificate again.&lt;/li&gt;
&lt;/ol&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;ol&gt;&lt;/ol&gt;
&lt;p&gt;Congratulations! Now you are ready to create your first Amazon EC2 instance.&lt;/p&gt;
&lt;h3&gt;Launching CUBRID Instance&lt;/h3&gt;
&lt;p&gt;There are different ways you can find and launch CUBRID Amazon Machine Images. Below I will explain two ways:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;From AWS site&lt;/li&gt;
&lt;li&gt;From your EC2 Web Console&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;From AWS site&lt;/h4&gt;
&lt;p&gt;You can navigate to&amp;nbsp;&lt;a href=&quot;http://aws.amazon.com/amis/cubrid-8-4-3-sql-database-ebs-64-bit-ubuntu-12-04-1&quot;&gt;http://aws.amazon.com/amis/cubrid-8-4-3-sql-database-ebs-64-bit-ubuntu-12-04-1&lt;/a&gt;&amp;nbsp;public AMI listing and press the Launch Instance button from there. Then continue as described below.&lt;/p&gt;
&lt;p&gt;&lt;img height=&quot;531&quot; width=&quot;737&quot; alt=&quot;aws_cubrid_ami_public_listing_8.4.3.png&quot; src=&quot;/files/attach/images/245686/716/568/aws_cubrid_ami_public_listing_8.4.3.png&quot; /&gt;&lt;/p&gt;
&lt;h4&gt;From your EC2 Web Console&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;Go back to your&amp;nbsp;&lt;a href=&quot;https://console.aws.amazon.com/ec2/&quot;&gt;EC2 Web Console&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;At the top right corner of the page you will see a dropdown menu with a list of &lt;a href=&quot;http://aws.amazon.com/about-aws/globalinfrastructure/&quot;&gt;availability zones&lt;/a&gt;.&amp;nbsp;Switch to the one you&amp;nbsp;think is most suitable for your needs.&lt;/li&gt;
&lt;li&gt;Once the Web Console is refreshed, you will see a &lt;strong&gt;Launch Instance&lt;/strong&gt; button. Press it&amp;nbsp;in order to&amp;nbsp;see the Launch Wizard.&lt;/li&gt;
&lt;li&gt;Select the&amp;nbsp;&lt;strong&gt;Classic Wizard&lt;/strong&gt;&amp;nbsp;and press &lt;strong&gt;Continue&lt;/strong&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;h4&gt;Configure EC2 Instance&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;Now you need to choose one of CUBRID AMIs.ins&lt;ol&gt;
&lt;li&gt;Press on the &lt;strong&gt;Community AMIs&lt;/strong&gt; tab.&lt;/li&gt;
&lt;li&gt;In the search box type &lt;strong&gt;cubrid&lt;/strong&gt;&amp;nbsp;or directly enter one of&amp;nbsp;the CUBRID AMI IDs available in that region. The system will list matching AMIs as shown in the schreenshot below.&lt;br /&gt;&lt;img src=&quot;/files/attach/images/245686/716/568/aws_choose_cubrid_ami.png&quot; alt=&quot;aws_choose_cubrid_ami.png&quot; width=&quot;655&quot; height=&quot;179&quot; /&gt; &lt;/li&gt;
&lt;li&gt;Make sure the&amp;nbsp;&lt;strong&gt;owner ID is&amp;nbsp;&lt;/strong&gt;&lt;b&gt;024941853939&lt;/b&gt;. You can find it the &lt;strong&gt;Manifest&lt;/strong&gt;&amp;nbsp;field as shown above. This owner ID proves that the selected AMI is created by us, the CUBRID Team, and we will provide support. In case another owner ID is set for some of our CUBRID AMIs, we will mention so in the table above.&lt;/li&gt;
&lt;li&gt;To select the desired CUBRID AMI, press the &lt;strong&gt;Select&lt;/strong&gt; button on the right of that image.&lt;/li&gt;
&lt;li&gt;Next,&amp;nbsp;configure your instances.&lt;ol&gt;
&lt;li&gt;Choose the &lt;strong&gt;number of instances&lt;/strong&gt;. In this tutorial we will choose to launch only 1 instance.&lt;/li&gt;
&lt;li&gt;Then choose the&amp;nbsp;&lt;strong&gt;&lt;a href=&quot;http://aws.amazon.com/ec2/instance-types/&quot;&gt;Instance Type&lt;/a&gt;&lt;/strong&gt;&amp;nbsp;you want to launch. Each type differs in CPU units, CPU cores, Memory, and Price. You may want to check out the &lt;a href=&quot;http://aws.amazon.com/ec2/pricing/&quot;&gt;EC2 Pricing&lt;/a&gt; to make the right decision. For this tutorial we will choose the smallest T1.Micro instance which provides &lt;em&gt;613MB of memory&lt;/em&gt; and &lt;em&gt;up to 2 EC units (&lt;/em&gt;&lt;i&gt;for short periodic bursts)&lt;/i&gt;. &lt;strong&gt;Notice&lt;/strong&gt;, though, that this Micro instance does &lt;strong&gt;not&lt;/strong&gt; guarantee 2 EC units. In fact, it will provide&amp;nbsp;only short periodic bursts of 2 EC units, and often it will fall way below the expectation. For more details and test results on this matter check out&amp;nbsp;Greg Wilson&apos;s blog about&amp;nbsp;&lt;a href=&quot;http://gregsramblings.com/2011/02/07/amazon-ec2-micro-instance-cpu-steal/&quot;&gt;Amazon EC2 Micro Instance and Stolen CPU&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Next, you may choose between &lt;strong&gt;Launch Instances&lt;/strong&gt;&amp;nbsp;(the normal EC2 instances) and &lt;strong&gt;&lt;a href=&quot;http://aws.amazon.com/ec2/spot-instances/&quot;&gt;Request Spot Instances&lt;/a&gt;&lt;/strong&gt;. If you are just beginning, I suggest you go with a common&amp;nbsp;&lt;strong&gt;Launch Instances&lt;/strong&gt;&amp;nbsp;option. This is what we will do in this tutorial.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Availability Zone&lt;/strong&gt;: if you have no preference on where exactly in your current region should the instance launch, simply leave it as &lt;strong&gt;No Preference&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Once done, press the &lt;strong&gt;Continue&lt;/strong&gt; button.&lt;br /&gt;&lt;img height=&quot;407&quot; width=&quot;615&quot; alt=&quot;aws_cubrid_ami_details.png&quot; src=&quot;/files/attach/images/245686/716/568/aws_cubrid_ami_details.png&quot; /&gt;&amp;nbsp;&lt;/li&gt;
&lt;/ol&gt;&lt;/li&gt;
&lt;li&gt;Next, the Launch Wizard will show &lt;strong&gt;Advanced Options&lt;/strong&gt;. You may leave everything with the default settings, and press &lt;strong&gt;Continue&lt;/strong&gt;.&lt;br /&gt;&lt;img height=&quot;438&quot; width=&quot;655&quot; alt=&quot;aws_cubrid_ami_advanced_options.png&quot; src=&quot;/files/attach/images/245686/716/568/aws_cubrid_ami_advanced_options.png&quot; /&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Storage Device Configuration&lt;/strong&gt;: the defult configuration of the CUBRID AMI will attach an 8GB EBS volume storage device (&lt;em&gt;default from Ubuntu by Canonical&lt;/em&gt;) to the newly launched instance. You may leave it with the default settings, or if necessary change it by pressing on the &lt;em&gt;Edit&lt;/em&gt; button. When done, press on the &lt;strong&gt;Continue&lt;/strong&gt; button.&lt;br /&gt;&lt;img height=&quot;436&quot; width=&quot;655&quot; alt=&quot;aws_cubrid_ami_storage_device.png&quot; src=&quot;/files/attach/images/245686/716/568/aws_cubrid_ami_storage_device.png&quot; /&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Next, add tags to your instance. For example, you can give a&amp;nbsp;&lt;strong&gt;Name&lt;/strong&gt;&amp;nbsp;to your instance such as&amp;nbsp;&lt;strong&gt;My new instance with CUBRID 8.4.3&lt;/strong&gt;&amp;nbsp;or something of that sort. Then press the &lt;strong&gt;Continue&lt;/strong&gt; button.&lt;br /&gt;&lt;img height=&quot;438&quot; width=&quot;655&quot; alt=&quot;aws_cubrid_ami_tags.png&quot; src=&quot;/files/attach/images/245686/716/568/aws_cubrid_ami_tags.png&quot; /&gt;&lt;/li&gt;
&lt;li&gt;Now you need to choose the &lt;strong&gt;Key Pairs&lt;/strong&gt;&amp;nbsp;to let the EC2 know which keys will allow users to access this instance via SSH. Now, you have already created your Key Pair above when you created your EC2 account, have not you? If you have previously created your Key Pair &lt;strong&gt;and&lt;/strong&gt;&amp;nbsp;you have the private key downloaded, then choose it from the given list as shown below. If you have not created the Key Pair before or want to create a new one now, then choose the &lt;strong&gt;Create a new Key Pair&lt;/strong&gt; option, and create one. In this tutorial, I will use the previously created Key Pair. &lt;em&gt;Remember&lt;/em&gt;, that once you set this Key Pair in this step, you will not be able to change it after the instance is launched.&lt;br /&gt;&amp;nbsp;&lt;img height=&quot;437&quot; width=&quot;655&quot; alt=&quot;aws_cubrid_ami_key_pairs.png&quot; src=&quot;/files/attach/images/245686/716/568/aws_cubrid_ami_key_pairs.png&quot; /&gt; &lt;/li&gt;
&lt;li&gt;Next, &lt;strong&gt;Configure the Firewall&lt;/strong&gt;.&lt;ol&gt;
&lt;li&gt;If you have not created any &lt;strong&gt;Security Group&lt;/strong&gt; before, you will be given a &lt;strong&gt;Default&lt;/strong&gt;&amp;nbsp;group as shown in the following screenshot. This default security group restricts any kind of access to this instance from outside. But we will not choose it. Instead, we will create a new Security Group specifically for CUBRID Database usage. So, continue reading.&lt;br /&gt;&lt;img height=&quot;412&quot; width=&quot;615&quot; alt=&quot;aws_cubrid_ami_firewall.png&quot; src=&quot;/files/attach/images/245686/716/568/aws_cubrid_ami_firewall.png&quot; /&gt;&lt;/li&gt;
&lt;li&gt;We will create a new Security Group to open CUBRID database related ports. So choose the &lt;strong&gt;Create a new Security Group&lt;/strong&gt; option.&lt;ol&gt;
&lt;li&gt;For a &lt;strong&gt;Group Name&lt;/strong&gt; enter &lt;strong&gt;CUBRID&lt;/strong&gt;&amp;nbsp;for you to know what this Security Group is related to.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Group Description&lt;/strong&gt;:&amp;nbsp;&lt;strong&gt;Open CUBRID Database related ports&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Choose &lt;strong&gt;Custom TCP rule&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Enter &lt;strong&gt;8001-8003&lt;/strong&gt;&amp;nbsp;to a &lt;strong&gt;Port range&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Leave &lt;strong&gt;Source&lt;/strong&gt;&amp;nbsp;as &lt;strong&gt;0.0.0.0/0&lt;/strong&gt;. This tells EC2 that the above specified port will listen to connections from any IP. If you want to limit only specific IP to have an access to this instance, enter the IP here.&lt;/li&gt;
&lt;li&gt;Once done, press the &lt;strong&gt;Add Rule&lt;/strong&gt; button.&lt;/li&gt;
&lt;li&gt;Now repeat the last 3 steps to enter separate rules for &lt;strong&gt;30000&lt;/strong&gt;, &lt;strong&gt;33000&lt;/strong&gt;, &lt;strong&gt;8282&lt;/strong&gt;, &lt;strong&gt;1523&lt;/strong&gt; ports as shown in the screenshot below.&lt;/li&gt;
&lt;li&gt;Finally open the SSH port 22. This time choose &lt;strong&gt;SSH&lt;/strong&gt; from the &lt;em&gt;Create a new rule&lt;/em&gt; dropdown box and press on the &lt;strong&gt;Add Rule&lt;/strong&gt; button.&lt;/li&gt;
&lt;li&gt;We are done! Press the &lt;strong&gt;Continue&lt;/strong&gt; button.&lt;br /&gt;&lt;img height=&quot;385&quot; width=&quot;575&quot; alt=&quot;aws_cubrid_ami_firewall_cubrid.png&quot; src=&quot;/files/attach/images/245686/716/568/aws_cubrid_ami_firewall_cubrid.png&quot; /&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;/li&gt;
&lt;li&gt;Now, &lt;strong&gt;Review the Summary&lt;/strong&gt;. If necessary, you can go back and customize any option as you wish. Once ready, press the &lt;strong&gt;Launch&lt;/strong&gt; button to take off.&lt;br /&gt;&lt;img height=&quot;538&quot; width=&quot;615&quot; alt=&quot;aws_cubrid_ami_summary.png&quot; src=&quot;/files/attach/images/245686/716/568/aws_cubrid_ami_summary.png&quot; /&gt;&amp;nbsp;&lt;/li&gt;
&lt;/ol&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Quite a long way but you have made it! So, congratulations with your new CUBRID Instance! In fact, you can apply the same process with any other AMI distributed by other vendors.&lt;/p&gt;
&lt;h2&gt;SSH Connection&lt;/h2&gt;
&lt;p&gt;Now let&apos;s connect to our CUBRID Amazon Server via SSH and have a sightseeing tour! For this we need two items:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;A Private Key.&lt;/li&gt;
&lt;li&gt;A Public DNS&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Private Key&lt;/h3&gt;
&lt;p&gt;The first thing to remember is that we have opened SSH port 22 in our &quot;CUBRID&quot; Security Group (&lt;strong&gt;step 5.10&lt;/strong&gt; above). This means we can connect to the newly created instance right away with our &lt;strong&gt;private key&lt;/strong&gt;. In fact, only those users who posess this&amp;nbsp;&lt;strong&gt;private key&lt;/strong&gt; that matches the &lt;em&gt;public key&lt;/em&gt; assosiated with the newly launched instance can access this instance. Just to remind you, once you have set a Key Pair during the instance initialization step, you will not be able to change it.&lt;/p&gt;
&lt;h3&gt;Public DNS&lt;/h3&gt;
&lt;p&gt;In order to connect to our remote Amazon EC2 instance, we need to know either the IP address or the Public DNS attached to that instance. You can find the Public DNS of your instance if you go to&amp;nbsp;&lt;a href=&quot;https://console.aws.amazon.com/ec2/&quot;&gt;https://console.aws.amazon.com/ec2&lt;/a&gt;-&amp;gt;Instances-&amp;gt;&lt;strong&gt;My new instance with CUBRID 8.4.3&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Once you select your instance a detailed description will be displayed below it. You can find your Public DNS there as shown below.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/files/attach/images/245686/716/568/aws_cubrid_ami_public_dns_1.png&quot; alt=&quot;aws_cubrid_ami_public_dns.png&quot; width=&quot;669&quot; height=&quot;213&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Establish SSH connection&lt;/h3&gt;
&lt;p&gt;So, we now have both the private key and the Public DNS. Let&apos;s establish an SSH connection.&lt;/p&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;$ ssh -i MY_PRIVATE_KEY_FILE.pem ubuntu@MY_PUBLIC_DNS
The authenticity of host &apos;MY_PUBLIC_DNS (MY_PUBLIC_IP)&apos; can&apos;t be established.
RSA key fingerprint is dc:17:a9:ca:b8:c4:e5:59:f3:e4:8a:1a:03:cb:94:9e.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added &apos;MY_PUBLIC_DNS,MY_PUBLIC_IP&apos; (RSA) to the list of known hosts.
Welcome to Ubuntu 12.04.1 LTS (GNU/Linux 3.2.0-31-virtual x86_64)

 * Documentation:  https://help.ubuntu.com/

  System information as of Tue Jan 29 08:33:09 UTC 2013

  System load:  0.08              Processes:           64
  Usage of /:   14.9% of 7.87GB   Users logged in:     0
  Memory usage: 8%                IP address for eth0: 10.248.26.17
  Swap usage:   0%

  Graph this data and manage this system at https://landscape.canonical.com/

80 packages can be updated.
35 updates are security updates.

Get cloud support with Ubuntu Advantage Cloud Guest
  http://www.ubuntu.com/business/services/cloud
ubuntu@ip-MY_INTERNAL_IP:~$&lt;/pre&gt;
&lt;p&gt;Thus, we are in!&lt;/p&gt;
&lt;h2&gt;Check CUBRID&lt;/h2&gt;
&lt;h3&gt;Check CUBRID Server Status&lt;/h3&gt;
&lt;p&gt;The first thing you can do is check the status of CUBRID Database Server.&lt;/p&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;ubuntu@ip-MY_INTERNAL_IP:~$ cubrid service status
@ cubrid master status
++ cubrid master is not running.
@ cubrid server status
++ cubrid master is not running.
@ cubrid broker status
++ cubrid broker is not running.
@ cubrid manager server status
++ cubrid manager server is not running.&lt;/pre&gt;
&lt;p&gt;Since we have not yet started the CUBRID Service, everything is stopped.&lt;/p&gt;
&lt;h3&gt;Start CUBRID Server Status&lt;/h3&gt;
&lt;p&gt;Start the CUBRID Service status:&lt;/p&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;ubuntu@ip-MY_INTERNAL_IP:~$ cubrid service start
@ cubrid master start
++ cubrid master start: success
@ cubrid broker start
++ cubrid broker start: success
@ cubrid manager server start
++ cubrid manager server start: success&lt;/pre&gt;
&lt;p&gt;CUBRID Master, Broker and Manager Server services will start up.&lt;/p&gt;
&lt;p&gt;Now, if you had created a database before and have set to auto start it, the CUBRID Server service would also start which would start the specified database.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Notice&lt;/strong&gt;, that in case you restart your EC2 instance, you will need to start CUBRID Service manually each time as it is not set to start on system startup.&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;In this tutorial you have learnt how to find and launch Amazon EC2 instances based on CUBRID Amazon Machine Images. We provide CUBRID AMIs on all regions. Now go straight to &lt;a href=&quot;/wiki_tutorials&quot;&gt;CUBRID Tutorials&lt;/a&gt;&amp;nbsp;and proceed to creating your first CUBRID database. For Driver related tutorials visit the &lt;a href=&quot;/wiki_apis&quot;&gt;CUBRID APIs&lt;/a&gt; wiki page.&lt;/p&gt;
&lt;p&gt;If you ever need any help or have a question, feel free to comment below, ask a question at &lt;a href=&quot;/questions&quot;&gt;CUBRID Q&amp;amp;A site&lt;/a&gt; or &lt;a href=&quot;/forum&quot;&gt;forum&lt;/a&gt;, &lt;a href=&quot;https://www.facebook.com/cubrid&quot;&gt;Facebook&lt;/a&gt; or &lt;a href=&quot;https://twitter.com/CUBRID&quot;&gt;Twitter&lt;/a&gt;, or at &lt;a href=&quot;http://webchat.freenode.net/?channels=cubrid&quot;&gt;#cubrid Freenode Web Chat&lt;/a&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;/ul&gt;&lt;/div&gt;</content>
                  <category term="Amazon"/>
            <category term="AWS"/>
            <category term="EC2"/>
            <category term="AMI"/>
            <category term="ubuntu"/>
            
   </entry>
   <entry>
      <title>CUBRID Tutorials</title>
      <id>http://www.cubrid.org/245687</id>
      <published>2011-12-20T04:59:29-08:00</published>
      <updated>2013-05-14T00:08:23-07:00</updated>
      <link rel="alternate" type="text/html" href="http://www.cubrid.org/245687"/>
      <link rel="replies" type="text/html" href="http://www.cubrid.org/245687#comment"/>
      <author>
         <name>CUBRID</name>
                  <uri>http://www.cubrid.org</uri>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;h2&gt;Quick Start&lt;/h2&gt;
&lt;p&gt;It is very easy to get started with CUBRID. Follow these step-by-step tutorials and you will see how fun it is to learn CUBRID.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Follow [CUBRID Installation Instructions] (Windows, Linux)&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;/manual/840/en/Starting%20the%20CUBRID%20Service&quot;&gt;Start CUBRID Service&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[Create a sample CUBRID Database from the command line]&lt;/li&gt;
&lt;li&gt;[Start or Autostart CUBRID Database]&lt;/li&gt;
&lt;li&gt;[Change database user password]&lt;/li&gt;
&lt;li&gt;[Getting started with demodb (CUBRID Demo Database)]&lt;/li&gt;
&lt;li&gt;[Create the demodb CUBRID Demo Database]&lt;/li&gt;
&lt;li&gt;[Connecting to a remote CUBRID Database]&lt;/li&gt;
&lt;li&gt;[Important Facts to Know about CUBRID]&lt;/li&gt;
&lt;li&gt;[How to ... using CUBRID Tutorials|How to ... using CUBRID] - a set of HowTo tutorials.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Easy Database Administration&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;/blog/qcubrid-appstools/cubrid-web-manager-the-next-generation-sql-client-with-monitoring-features/&quot;&gt;CUBRID Web Manager - the next generation SQL client with monitoring features&lt;/a&gt;&amp;nbsp;- Blog article&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;/?mid=downloads&amp;amp;item=cubrid_manager&amp;amp;os=detect&quot;&gt;Download CUBRID Manager&lt;/a&gt;&amp;nbsp;(Windows, Linux, Mac OS X)&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;/run_cubrid_manager_on_mac&quot;&gt;Run CUBRID Manager&lt;/a&gt;. This tutorial will show you how to:  
&lt;ul&gt;
&lt;li&gt;Add and Connect to a host&lt;/li&gt;
&lt;li&gt;Login to and&amp;nbsp;Start a database&lt;/li&gt;
&lt;li&gt;Execute queries (SELECT, UPDATE, DELETE)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;More details are available at &lt;a target=&quot;_self&quot; href=&quot;/wiki_tools/entry/cubrid-manager-manual&quot;&gt;CM Manual&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Install CUBRID Database Drivers&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;/wiki_apis/entry/cubrid-php-driver-installation-instructions&quot;&gt;PHP Driver&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;/wiki_apis/entry/cubrid-pdo-driver-installation-instructions&quot;&gt;PDO Driver&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;/wiki_apis/entry/cubrid-python-driver-installation-instructions&quot;&gt;Python Driver&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;/wiki_apis/entry/cubrid-perl-driver-build-guide&quot;&gt;Perl Driver&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;/wiki_apis/entry/cubrid-ruby-driver-installation-instructions&quot;&gt;Ruby Driver&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;/wiki_apis/entry/cubrid-ado-net-driver-installation-guide&quot;&gt;ADO.NET Driver&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;/wiki_apis/entry/cubrid-odbc-driver-installation-instructions&quot;&gt;ODBC Driver&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;/wiki_apis/entry/cubrid-odbc-driver-installation-instructions&quot;&gt;OLEDB Driver&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;/wiki_apis/entry/setting-java-environment-path&quot;&gt;JDBC Driver&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;/wiki_apis/entry/cubrid-node-js-driver-installation-instructions&quot;&gt;Node.js Driver&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;http://cubrid-talks.blogspot.kr/2012/12/cubrid-connection-strings.html&quot;&gt;Interactive Connection String Builder&lt;/a&gt; - user blog&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Have Questions?&lt;/h3&gt;
&lt;p&gt;So far so easy! But if you have questions, head to &lt;a target=&quot;_self&quot; href=&quot;/questions&quot;&gt;CUBRID Q&amp;amp;A site&lt;/a&gt;. If you run into issues, post them on &lt;a target=&quot;_self&quot; href=&quot;/forum&quot;&gt;CUBRID Forum&lt;/a&gt;. We will be very glad to help you out!&lt;/p&gt;
&lt;h2&gt;Going Further&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;[How to Contribute to CUBRID Project]&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;http://www.slideshare.net/cubrid/growing-in-the-wild-the-story-by-cubrid-database-developers&quot; class=&quot;ss&quot;&gt;Growing in the Wild. The story by CUBRID Database Developers.&lt;/a&gt;&amp;nbsp;- RIT++ 2012 Conference presentation&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;http://www.slideshare.net/cubrid/database-sharding-the-right-way-easy-reliable-and-open-source-highload-2012&quot; class=&quot;ss&quot;&gt;Database Sharding the Right Way: Easy, Reliable, and Open source&lt;/a&gt; - HighLoad++ 2012 Conference presentation&lt;/li&gt;
&lt;li&gt;[CUBRID Configurations]&lt;/li&gt;
&lt;li&gt;&lt;a class=&quot;pdf&quot; href=&quot;/?module=file&amp;amp;act=procFileDownload&amp;amp;file_srl=313266&amp;amp;sid=ab3cc8f6cd6c836e486e51382ad0c736&quot;&gt;CUBRID &amp;ndash; Open Source RDBMS Highly Optimized for the Web&lt;/a&gt;&amp;nbsp;- M&amp;amp;T Magazine, Sprint 2012, Vol. 20, Issue 1.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;/cubrid_version&quot;&gt;How to Get the CUBRID Version Number&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;CUBRID SQL Tutorials&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;[CUBRID RDBMS Size Limits]&lt;/li&gt;
&lt;li&gt;[Shared Query Plan Caching in CUBRID]&lt;/li&gt;
&lt;li&gt;[Why prepare queries if auto-parameterization already does that?]&lt;/li&gt;
&lt;li&gt;[Execute prepared SQL in CUBRID]&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;/cubrid_query_tuning&quot;&gt;CUBRID Query Tuning&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;/cubrid_covering_index&quot;&gt;What is Covering Index in CUBRID 8.4.0?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;/cubrid_click_counter&quot;&gt;CUBRID Click Counter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;/cubrid_implicit_type_conversion&quot;&gt;Comparison of Implicit Type Conversion in MSSQL, Oracle, MySQL, and CUBRID&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;/cubrid_mysql_oracle_data_type_mapping&quot;&gt;CUBRID vs. MySQL vs. Oracle Data Type Mapping&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;/blog/cubrid-comparison/things-to-understand-when-moving-from-mysql-to-cubrid/&quot;&gt;Things to Understand When Moving from MySQL to CUBRID&lt;/a&gt;&amp;nbsp;- blog article&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;/blog/dev-platform/how-sql-update-is-performed-in-cubrid-rdbms/&quot;&gt;How SQL UPDATE is performed in CUBRID&lt;/a&gt;&amp;nbsp;- blog article.&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;/cubrid_serial&quot;&gt;CUBRID Serials&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;/cubrid_database_information&quot;&gt;Database Information in CUBRID&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;/manual/840/en/CUBRID%20SQL%20Guide&quot;&gt;CUBRID SQL Guide&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Hierarchical Queries in CUBRID  
&lt;ul&gt;
&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;http://ftp.cubrid.org/CUBRID_Docs/Tutorials/cubrid-hierarchical-query.pdf&quot; class=&quot;pdf&quot;&gt;CUBRID Hierarchical Queries&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;/manual/841/en/Hierarchical%20Query&quot;&gt;Hierarchical Query&lt;/a&gt; - Manual&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;/concat_different_row_columns&quot;&gt;How to Concatenate Column Values from Different Rows&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;[Working with CUBRID BLOB / CLOB Data Types]&lt;/li&gt;
&lt;li&gt;[Inserting a BLOB file to a CUBRID database]&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;http://cubrid-talks.blogspot.kr/2012/11/playing-with-clob-data-in-cubrid.html&quot;&gt;Playing with CLOB data in CUBRID&lt;/a&gt;&amp;nbsp;- user blog&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;/transaction_and_lock&quot;&gt;CUBRID Transaction and Lock&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;/cubrid_database_information&quot;&gt;Obtaining Basic Database Information&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;/cubrid_mysql_oracle_data_type_mapping&quot;&gt;Best Way to Store IP Address in CUBRID&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Advanced CUBRID Server Topics&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;CUBRID Architecture  
&lt;ul&gt;
&lt;li&gt;[CUBRID Source Code]&lt;/li&gt;
&lt;li&gt;&lt;a class=&quot;ss&quot; target=&quot;_self&quot; href=&quot;/cubrid_architecture_components&quot;&gt;CUBRID Inside - Architecture, Source &amp;amp; Management Components&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;/cubrid_architecture_sns&quot;&gt;CUBRID Reference Architecture for Social Networking Service&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;/release_policy&quot;&gt;CUBRID Release Policy&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;/cubrid_architecture&quot;&gt;The Architecture of CUBRID&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_blank&quot; href=&quot;http://blog.cubrid.org/cubrid-story/architecture-of-cubrid/&quot;&gt;Architecture of CUBRID&lt;/a&gt;&amp;nbsp;- Blog article&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;/blog/cubrid-story/the-cubrid-broker-story/&quot;&gt;The CUBRID Broker Story&lt;/a&gt;&amp;nbsp;- Blog article&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;/blog/cubrid-life/cubrid-database-processes/&quot;&gt;CUBRID Database Processes&lt;/a&gt;&amp;nbsp;- Blog article&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;/blog/cubrid-life/basic-operations-of-cubrid-processes/&quot;&gt;Basic Operations of CUBRID Processes&lt;/a&gt;&amp;nbsp;- Blog article&lt;/li&gt;
&lt;li&gt;[CUBRID Query Processing]&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;/blog/cubrid-life/all-about-two-phase-locking-and-a-little-bit-mvcc/&quot;&gt;All about Two-Phase Locking and a little bit MVCC&lt;/a&gt; - Blog article&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;/blog/cubrid-life/how-data-is-stored-in-cubrid-rdbms-intro-to-objects-classes-oid-and-inheritance/&quot;&gt;How data is stored in CUBRID RDBMS? Intro to Objects, Classes, OID and Inheritance&lt;/a&gt;&amp;nbsp;- Blog article&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;CUBRID Performance  
&lt;ul&gt;
&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;/cubrid_840_key_features&quot;&gt;CUBRID 8.4.0 Key Features&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;http://ftp.cubrid.org/CUBRID_Docs/Release_Notes/CUBRID2008R4.0_QA_Completion_Report.pdf&quot; class=&quot;pdf&quot;&gt;CUBRID 8.4.0 QA Completion Report&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;/cubrid_volume_space_reusability_test&quot;&gt;CUBRID 8.4.0 vs. 8.3.1 Volume Space Reusability Comparison&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;/cubrid_mysql_sns_benchmark_test&quot;&gt;CUBRID vs. MySQL Benchmark Test Results for SNS Data and Workload&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;/query_tuning_results&quot;&gt;Increasing Database Performance by Query Tuning&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;/ssd_performance_test&quot;&gt;CUBRID vs. MySQL performance test results before and after the SSD usage&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;/benchmark_result&quot;&gt;NBD Benchmark Results&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_blank&quot; href=&quot;http://www.slideshare.net/cubrid/cubrid-developers-course&quot; title=&quot;View SlideShare Presentation&quot; class=&quot;ss&quot;&gt;CUBRID Developer&apos;s Course&lt;/a&gt;&lt;a target=&quot;_self&quot; href=&quot;/files/docs/misc/CUBRID Developer&apos;s Course.pdf&quot; title=&quot;Download this Presentation in PDF&quot; class=&quot;pdf&quot;&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;/intro_cubrid_security&quot;&gt;Introduction to CUBRID Security - Part I&lt;/a&gt;&lt;a target=&quot;_self&quot; href=&quot;/files/docs/tutorials/cubrid/Introduction to CUBRID Security - Part I.pdf&quot; title=&quot;Download this Presentation in PDF&quot; class=&quot;pdf&quot;&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;/intro_cubrid_security_2&quot;&gt;Introduction to CUBRID Security - Part II&lt;/a&gt;&lt;a target=&quot;_self&quot; href=&quot;/files/docs/tutorials/cubrid/Introduction to CUBRID Security - Part II.pdf&quot; title=&quot;Download this Presentation in PDF&quot; class=&quot;pdf&quot;&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;CSQL Interpreter  
&lt;ul&gt;
&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;/how_to_use_csql_utilities&quot;&gt;How to Use CSQL (CUBRID SQL Interpreter)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_blank&quot; href=&quot;http://blog.cubrid.org/cubrid-story/csql-interpreter/&quot;&gt;CSQL - Command Line SQL Interpreter&lt;/a&gt;&amp;nbsp;- Blog article&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;/server_error_mesages&quot;&gt;Server Error Msg&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[CUBRID Error Codes]&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;/wiki_tutorials/entry/Data_Structures&quot;&gt;Data Structures&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;/wiki_tutorials/entry/Connection_Management_and_Threads_in_CUBRID_Server&quot;&gt;Connection Management and Threads in CUBRID Server&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;/wiki_tutorials/entry/Server_Startup/Shutdown_Process&quot;&gt;Server Startup/Shutdown Process&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;/cubrid_log_files&quot;&gt;CUBRID Log Files&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;CUBRID HA  
&lt;ul&gt;
&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;/cubrid_ha_process&quot;&gt;How CUBRID HA Works?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[Configure CUBRID HA with Vagrant and Chef Cookbook under 4 minutes]&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;/files/docs/misc/CUBRID HA Starting Guide.pdf&quot; title=&quot;Download this Presentation in PDF&quot; class=&quot;pdf&quot;&gt;CUBRID HA Starting Guide&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;/?module=file&amp;amp;act=procFileDownload&amp;amp;file_srl=378680&amp;amp;sid=6697aeb1683621b5b923f3de8d7b692e&quot; class=&quot;pdf&quot;&gt;CUBRID HA Guide Extended&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_blank&quot; href=&quot;http://blog.cubrid.org/cubrid-story/overview-of-new-high-availability-features-in-cubrid-3-2/&quot;&gt;Overview of New High-Availability Features in CUBRID 8.4.0&lt;/a&gt;&amp;nbsp;- Blog article&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;/cubrid_ha_oscon&quot;&gt;CUBRID HA - Guaranteed Way to Never-Die Web Services&lt;/a&gt;&amp;nbsp;- OSCON 2011 Conference presentation&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;CUBRID SHARD  
&lt;ul&gt;
&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;http://www.slideshare.net/cubrid/database-sharding-the-right-way-easy-reliable-and-open-source-highload-2012&quot; class=&quot;ss&quot;&gt;Database Sharding the Right Way: Easy, Reliable, and Open source&lt;/a&gt;&amp;nbsp;- HighLoad++ 2012 Conference presentation&lt;/li&gt;
&lt;li&gt;[Configure CUBRID SHARD with Vagrant and Chef Cookbook under 2 minutes]&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.slideshare.net/cubrid/easy-mysql-database-sharding-with-cubrid-shard-2013-percona&quot;&gt;Easy MySQL Database Sharding with CUBRID SHARD&lt;/a&gt; - 2013 Percona MySQL Conference presentation&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.slideshare.net/cubrid/mysql-cubrid-shard-2013-rit&quot;&gt;Быстрый и простой способ шардирования MySQL с помощью CUBRID SHARD&lt;/a&gt; - 2013 RIT++&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;http://ftp.cubrid.org/CUBRID_Docs/Tutorials/cubrid-sharding-user-spec.pdf&quot;&gt;CUBRID Database Sharding User Specifications&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;/blog/cubrid-life/database-sharding-with-cubrid/&quot;&gt;Database Sharding with CUBRID&lt;/a&gt;&amp;nbsp;- Blog article&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;/blog/dev-platform/database-sharding-platform-at-nhn/&quot;&gt;Database Sharding Platform at NHN&lt;/a&gt;&amp;nbsp;- Blog article&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;/?document_srl=485890&amp;amp;mid=forum&amp;amp;quote=Y&amp;amp;rnd=486937#comment_486937&quot;&gt;Getting started with CUBRID SHARD&lt;/a&gt;&amp;nbsp;- Forum post&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;/cubrid_automated_scripts_hosting_service&quot;&gt;CUBRID Automated Scripts for DB Hosting Service&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Backup &amp;amp; Restore  
&lt;ul&gt;
&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;/backup_cubrid_database&quot;&gt;How to Backup a Database in CUBRID&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;/restore_cubrid_database&quot;&gt;How to Restore a Database in CUBRID&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;/cubrid_backup_restore&quot;&gt;CUBRID Backup &amp;amp; Restore - Part I (Backup)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;/cubrid_backup_restore_2&quot;&gt;CUBRID Backup &amp;amp; Restore - Part II (Restore)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;/import_large_file&quot;&gt;How to Efficiently Import Large Files in CUBRID&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;/cubrid_triggers&quot;&gt;CUBRID Triggers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Java Stored Procedures  
&lt;ul&gt;
&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;/cubrid_java_stored_procedures&quot;&gt;CUBRID Java Stored Procedures&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;/manual/841/en/Java%20Stored%20Function%7CProcedure&quot;&gt;Java Stored Procedure&lt;/a&gt; - Manual&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;http://cubrid-talks.blogspot.kr/2012/11/emulate-long-running-SQL-queries-in-CUBRID.html&quot;&gt;Emulate long running SQL queries in CUBRID&lt;/a&gt;&amp;nbsp;- user blog&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Working with Third-party Tools&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;/wiki_tutorials/entry/CUBRID_Service_through_CUBRID_Manager&quot;&gt;CUBRID Service through CUBRID Manager&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;/wiki_tutorials/entry/RCP_Application&quot;&gt;RCP Application&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[Using Solr / Lucene for full text search with CUBRID Database on Ubuntu]&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;/install_cubrid_autoset&quot;&gt;Install CUBRID with AutoSet&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;/ddlutils_scriptella_database_migration&quot;&gt;Use Apache DdlUtils and Scriptella to migrate databases to CUBRID&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_blank&quot; href=&quot;http://blog.cubrid.org/notice/apache-ddlutils-scriptella-migrating-to-cubrid/&quot;&gt;Apache DDLUtils &amp;amp; Scriptella: Migrating to CUBRID&lt;/a&gt;&amp;nbsp;- Video Tutorial&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_blank&quot; href=&quot;http://blog.cubrid.org/cubrid-videos/scriptella-for-cubrid-video-tutorial/&quot;&gt;Scriptella for CUBRID&lt;/a&gt;&amp;nbsp;- Video Tutorial&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;/how_to_do_replication_on_unix_and_linux&quot;&gt;How to Do Replication on UNIX &amp;amp; Linux&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_blank&quot; href=&quot;http://blog.cubrid.org/cubrid-story/cubrid-support-tools/&quot;&gt;CUBRID Administration Tools&lt;/a&gt;&amp;nbsp;- Blog article&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;/cubrid_web_query_tutorial&quot;&gt;CUBRID WebQuery Tutorial&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_blank&quot; href=&quot;http://blog.cubrid.org/cubrid-videos/uniform-server-cubrid-video-tutorial/&quot;&gt;Uniform Server&lt;/a&gt; - CUBRID Video Tutorial&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_blank&quot; href=&quot;http://blog.cubrid.org/cubrid-videos/phpmyedit-for-cubrid-video-tutorial/&quot;&gt;phpMyEdit for CUBRID&lt;/a&gt; - Video Tutorial&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_blank&quot; href=&quot;http://blog.cubrid.org/cubrid-videos/sql-buddy-for-cubrid-video-tutorial/&quot;&gt;SQL Buddy for CUBRID&lt;/a&gt; - Video Tutorial&lt;/li&gt;
&lt;li&gt;Eclipse  
&lt;ul&gt;
&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;/using_cubrid_in_squirrel_sql_client&quot;&gt;CUBRID Through SQuirrel SQL Client&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;/eclipse_sql_explorer&quot;&gt;CUBRID Through Eclipse SQL Explorer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;/quantumdb_eclipse_plugin&quot;&gt;CUBRID through QuantumDB Eclipse plugin&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;/using_cubrid_in_aquadatastudio&quot;&gt;Using CUBRID in AquaDataStudio&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;/wordpress_for_cubrid_installation_guide&quot;&gt;Installing WordPress for CUBRID&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;/cubrid_hibernate_tutorial&quot;&gt;Using Hibernate with CUBRID&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;/analyzing_jdbc_logs&quot;&gt;Analyzing JDBC Logs with log4jdbc&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;/store_java_logs_to_databdase_using_log4j&quot;&gt;Store Java Logs to Database Using log4j&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;/clj_dbcp&quot;&gt;Clj-DBCP Clojure Library for Connecting to CUBRID Database&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;/using_cubrid_with_powershell&quot;&gt;Using CUBRID with PowerShell&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;/wiki_tutorials/entry/solved-chef-nameerror-cannot-find-a-resource-for-converge_by-on-centos&quot;&gt;[!Solved] Chef: NameError: Cannot find a resource for converge_by on centos&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;display: none;&quot; id=&quot;endic_ext_wrapper&quot;&gt;&lt;/div&gt;
&lt;div style=&quot;display: none;&quot; id=&quot;endic_ext_wrapper&quot;&gt;&lt;/div&gt;
&lt;div style=&quot;display: none;&quot; id=&quot;endic_ext_wrapper&quot;&gt;&lt;/div&gt;
&lt;div style=&quot;display: none;&quot; id=&quot;endic_ext_wrapper&quot;&gt;&lt;/div&gt;
&lt;div style=&quot;display: none;&quot; id=&quot;endic_ext_wrapper&quot;&gt;&lt;/div&gt;
&lt;div style=&quot;display: none;&quot; id=&quot;endic_ext_wrapper&quot;&gt;&lt;/div&gt;
&lt;div style=&quot;display: none;&quot; id=&quot;endic_ext_wrapper&quot;&gt;&lt;/div&gt;
&lt;div style=&quot;display: none;&quot; id=&quot;endic_ext_wrapper&quot;&gt;&lt;/div&gt;
&lt;div style=&quot;display: none;&quot; id=&quot;endic_ext_wrapper&quot;&gt;&lt;/div&gt;
&lt;div style=&quot;display: none;&quot; id=&quot;endic_ext_wrapper&quot;&gt;&lt;/div&gt;&lt;/div&gt;</content>
                  <category term="CUBRID"/>
            <category term="tutorials"/>
            
   </entry>
   <entry>
      <title>DLL Load Failed</title>
      <id>http://www.cubrid.org/656168</id>
      <published>2013-05-13T05:02:25-07:00</published>
      <updated>2013-05-13T05:02:25-07:00</updated>
      <link rel="alternate" type="text/html" href="http://www.cubrid.org/656168"/>
      <link rel="replies" type="text/html" href="http://www.cubrid.org/656168#comment"/>
      <author>
         <name>CUBRID</name>
                  <uri>http://www.cubrid.org</uri>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;A common problem encountered when configuring drivers is the &quot;Dll Load Failed&quot; error. This error can occur when &lt;b&gt;cascci.dll&lt;/b&gt;&amp;nbsp;file is not found or when the file found is not the correct 32 bit or 64 bit version that we are expecting. For example, &quot;&lt;span style=&quot;background-color: #fafafa;&quot;&gt;ImportError:&amp;nbsp;DLL&amp;nbsp;load&amp;nbsp;failed:&amp;nbsp;%1&amp;nbsp;is&amp;nbsp;not&amp;nbsp;a&amp;nbsp;valid&amp;nbsp;Win32&amp;nbsp;application.&quot; error encountered in python (see example error message below), is caused when you install 32 bit version of python and 64 bit version of CUBRID on a 64 bit machine. The problem is CUBRID 64 bit comes with 64 bit version of cascci.dll which cannot be loaded by python.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;C:&amp;#92;Program Files (x86)&amp;#92;Python266&amp;gt;python.exe
Python 2.6.6 (r266:84297, Aug 24 2010, 18:46:32) [MSC v.1500 32 bit (Intel)] on win32
Type &quot;help&quot;, &quot;copyright&quot;, &quot;credits&quot; or &quot;license&quot; for more information.
&amp;gt;&amp;gt;&amp;gt; import CUBRIDdb
Traceback:  File &quot;&amp;lt;stdin&amp;gt;&quot;, line 1, in &amp;lt;module&amp;gt;
  File &quot;C:&amp;#92;Program Files (x86)&amp;#92;Python266&amp;#92;lib&amp;#92;CUBRIDdb&amp;#92;__init__.py&quot;, line 9, in &amp;lt;module&amp;gt;
    import _cubrid
ImportError: DLL load failed: %1 is not a valid Win32 application.
&amp;gt;&amp;gt;&amp;gt;&lt;/pre&gt;
&lt;/p&gt;
&lt;p&gt;The solution for this error is to download the cascci.dll driver for your CUBRID server version from here:&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.cubrid.org/?mid=downloads&amp;amp;item=cci_driver&amp;amp;os=detect&amp;amp;ostype=x86&quot;&gt;http://www.cubrid.org/?mid=downloads&amp;amp;item=cci_driver&amp;amp;os=detect&amp;amp;ostype=x86&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;And you must copy this file either in the same folder as your python installation (where the python.exe file is located) or into a location that is in the path. The idea we want here is to use our version of cci driver and not the one that comes with the CUBRID installation ($CUBRID&amp;#92;bin&amp;#92;cascci.dll). The same procedure is done for &lt;b&gt;php &lt;/b&gt;driver also.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Note&lt;/b&gt;: From the archives in the link above, only &lt;b&gt;cascci.dll&lt;/b&gt;&amp;nbsp;is required for driver usage. If you wish to replace C:&amp;#92;CUBRID&amp;#92;bin&amp;#92;cascci.dll file, then you should replace &amp;nbsp;&lt;b&gt;C:&amp;#92;CUBRID&amp;#92;lib&amp;#92;cascci.lib also&amp;nbsp;&lt;/b&gt;with the cascci.lib file from the archive.&lt;/p&gt;
&lt;p&gt;If anything is unclear, don&apos;t hesitate to ask a question in our &lt;a href=&quot;/questions&quot;&gt;Q&amp;amp;A Site&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;</content>
                  <category term="cascci.dll"/>
            <category term="dll loading"/>
            <category term="python"/>
            <category term="php"/>
            
   </entry>
   <entry>
      <title>How to Unsubscribe From Newsletter</title>
      <id>http://www.cubrid.org/648635</id>
      <published>2013-05-02T03:22:18-07:00</published>
      <updated>2013-05-02T23:48:38-07:00</updated>
      <link rel="alternate" type="text/html" href="http://www.cubrid.org/648635"/>
      <link rel="replies" type="text/html" href="http://www.cubrid.org/648635#comment"/>
      <author>
         <name>CUBRID</name>
                  <uri>http://www.cubrid.org</uri>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;Hello everyone,&lt;/p&gt;
&lt;p&gt;This easy step by step tutorial will teach you how to unsubscribe from the CUBRID Newsletter.&lt;/p&gt;
&lt;p&gt;1. First, you must &lt;b&gt;login&lt;/b&gt;. If you do not have an account, click &quot;&lt;b&gt;Register&lt;/b&gt;&quot; in the top right part of this page.&lt;/p&gt;
&lt;p&gt;2. To enable the newsletter, go to your profile by clicking &quot;&lt;b&gt;My Profile&lt;/b&gt;&quot; in the top right part of the screen.&lt;/p&gt;
&lt;p&gt;3. In the profile page, click the &lt;b&gt;Edit Profile&lt;/b&gt; button in the lower part of the page.&lt;/p&gt;
&lt;p&gt;4. In the Edit Profile screen, &lt;b&gt;uncheck &lt;/b&gt;the checkbox next to Newsletter and click &lt;b&gt;Submit&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt;The direct link of the Edit Profile screen is&amp;nbsp;&lt;a href=&quot;/?act=dispMemberModifyInfo&quot;&gt;http://www.cubrid.org/?act=dispMemberModifyInfo&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;We wish you a great day and hope that you will return to our community in the future!&lt;/p&gt;&lt;/div&gt;</content>
                  <category term="newsletter"/>
            <category term="unsubscribe"/>
            <category term="cubrid community"/>
            
   </entry>
   <entry>
      <title>How to Subscribe to Newsletter</title>
      <id>http://www.cubrid.org/648628</id>
      <published>2013-05-02T03:17:48-07:00</published>
      <updated>2013-05-02T03:17:48-07:00</updated>
      <link rel="alternate" type="text/html" href="http://www.cubrid.org/648628"/>
      <link rel="replies" type="text/html" href="http://www.cubrid.org/648628#comment"/>
      <author>
         <name>CUBRID</name>
                  <uri>http://www.cubrid.org</uri>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;Hello everyone,&lt;/p&gt;
&lt;p&gt;This easy step by step tutorial will teach you how to subscribe to the CUBRID Newsletter. Before starting, you should know that we will send you one email per week with the latest news in the CUBRID Community.&lt;/p&gt;
&lt;p&gt;1. First, you must &lt;b&gt;login&lt;/b&gt;. If you do not have an account, click &quot;&lt;b&gt;Register&lt;/b&gt;&quot; in the top right part of this page.&lt;/p&gt;
&lt;p&gt;2. To enable the newsletter, go to your profile by clicking &quot;&lt;b&gt;My Profile&lt;/b&gt;&quot; in the top right part of the screen.&lt;/p&gt;
&lt;p&gt;3. In the profile page, click the &lt;b&gt;Edit Profile&lt;/b&gt; button in the lower part of the page.&lt;/p&gt;
&lt;p&gt;4. In the Edit Profile screen, check the checkbox next to Newsletter and click &lt;b&gt;Submit&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt;The direct link of the Edit Profile screen is&amp;nbsp;&lt;a href=&quot;http://www.cubrid.org/?mid=wiki_tutorials&amp;amp;act=dispMemberModifyInfo&quot;&gt;http://www.cubrid.org/?mid=wiki_tutorials&amp;amp;act=dispMemberModifyInfo&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Thank you for enabling the CUBRID newsletter and becoming part of the CUBRID Community!&lt;/p&gt;&lt;/div&gt;</content>
                  <category term="newsletter"/>
            <category term="cubrid community"/>
            <category term="my profile"/>
            
   </entry>
   <entry>
      <title>Installing CUBRID on Ubuntu</title>
      <id>http://www.cubrid.org/266367</id>
      <published>2012-01-24T20:49:06-08:00</published>
      <updated>2013-04-18T21:00:43-07:00</updated>
      <link rel="alternate" type="text/html" href="http://www.cubrid.org/266367"/>
      <link rel="replies" type="text/html" href="http://www.cubrid.org/266367#comment"/>
      <author>
         <name>Esen Sagynov</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;To install CUBRID using &lt;strong&gt;apt-get&lt;/strong&gt;&amp;nbsp;on Ubuntu, we need to add CUBRID&apos;s repository so that Ubuntu knows where to download the packages from, and then tell the OS to update its indexes.&lt;/p&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;sudo add-apt-repository ppa:cubrid/cubrid
sudo apt-get update&lt;/pre&gt;
&lt;p&gt;If &lt;code&gt;add-apt-repository&lt;/code&gt; command is not recognized by your system, you must install the &lt;strong&gt;python-software-properties&lt;/strong&gt; package. Once the Python packages are installed, perform the step 1 above again, then continue.&lt;/p&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;sudo apt-get install python-software-properties&lt;/pre&gt;
&lt;p&gt;Now install the latest version of CUBRID:&lt;/p&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;sudo apt-get install cubrid&lt;/pre&gt;
&lt;p&gt;To install an earlier version, indicate the version as:&lt;/p&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;sudo apt-get install cubrid-8.4.0&lt;/pre&gt;
&lt;p&gt;To complete the installation and set the CUBRID PATH variables, reboot your OS. Until you reboot, you can also run the command &quot;. /etc/profile.d/cubrid.sh&quot; every time you open up a terminal if cubrid command is not found.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Optional:&lt;/strong&gt;&amp;nbsp;If you want to install the demodb sample database, run the command:&lt;/p&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt; sudo apt-get install cubrid-demodb&lt;/pre&gt;
&lt;h2&gt;Installation Notes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;CUBRID is installed in /opt/cubrid.&lt;/li&gt;
&lt;li&gt;The configuration files are placed in /etc/opt/cubrid.&lt;/li&gt;
&lt;li&gt;Variable files (such as logs or databases) are stored in /var/opt/cubrid.&lt;/li&gt;
&lt;li&gt;The path variables $CUBRID and $CUBRID_DATABASES are set in the file /etc/profile.d/cubrid.sh.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;If you run a CUBRID service command, you can view its output in /var/opt/cubrid/tmp/service.cubrid.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;CUBRID is set to automatically start on boot and the service file is located at /etc/init.d/cubrid.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Highly Important!&amp;nbsp;&lt;/strong&gt;cubrid or standalone csql commands can be only ran as cubrid user (which has no password). To connect as this user, use &quot;sudo su -s $SHELL cubrid&quot;.&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;</content>
                  <category term="CUBRID"/>
            <category term="installation instructions"/>
            <category term="ubuntu"/>
            <category term="linux"/>
            <category term="launchpad"/>
            
   </entry>
   <entry>
      <title>How to Enable/Disable AutoCommit Mode</title>
      <id>http://www.cubrid.org/630428</id>
      <published>2013-04-08T06:50:41-07:00</published>
      <updated>2013-04-08T06:57:50-07:00</updated>
      <link rel="alternate" type="text/html" href="http://www.cubrid.org/630428"/>
      <link rel="replies" type="text/html" href="http://www.cubrid.org/630428#comment"/>
      <author>
         <name>CUBRID</name>
                  <uri>http://www.cubrid.org</uri>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;One thing anyone would want from a database is to use Transactions. In order to do so, one must know that CUBRID has autocommit enabled by default. In order to be able to use Transactions, this will need to be disabled and there are several ways to do this:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;CSQL Interpreter&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;In CSQL, the command ;autocommit or ;au for short:&lt;/p&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;;au off&lt;/pre&gt;
&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;Here is an example:&amp;nbsp;&lt;a href=&quot;/manual/90/en/Transaction%20Commit&quot;&gt;http://www.cubrid.org/manual/90/en/Transaction Commit&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;CUBRID Manager&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;In CUBRID Manager, autocommit can be disabled by clicking the autocommit icon in the upper part of the query editor tab.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img height=&quot;120&quot; width=&quot;779&quot; alt=&quot;autocommit.png&quot; src=&quot;/files/attach/images/245686/428/630/autocommit.png&quot; /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Drivers&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;&amp;nbsp;&lt;/span&gt;In various drivers, there are functions for each driver that allow enabling/disabling the autocommit mode:&lt;/p&gt;
&lt;p&gt;PHP -&amp;nbsp;&lt;a href=&quot;http://www.php.net/manual/en/function.cubrid-set-autocommit.php&quot;&gt;http://www.php.net/manual/en/function.cubrid-set-autocommit.php&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Python -&amp;nbsp;&lt;a href=&quot;/wiki_apis/entry/cubrid-python-api-documentation&quot;&gt;http://www.cubrid.org/wiki_apis/entry/cubrid-python-api-documentation&lt;/a&gt;&amp;nbsp;(autocommit in url)&lt;/p&gt;
&lt;p&gt;Ruby -&amp;nbsp;&lt;a href=&quot;/wiki_apis/entry/cubrid-ruby-api-documentation&quot;&gt;http://www.cubrid.org/wiki_apis/entry/cubrid-ruby-api-documentation&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;JDBC -&amp;nbsp;&lt;a href=&quot;/accessing_cubrid_with_jdbc_part2&quot;&gt;http://www.cubrid.org/accessing_cubrid_with_jdbc_part2&lt;/a&gt;&amp;nbsp;(setAutoCommit function)&lt;/p&gt;
&lt;p&gt;CCI -&amp;nbsp;&lt;a href=&quot;http://www.cubrid.org/manual/90/en/cci_set_autocommit&quot;&gt;http://www.cubrid.org/manual/90/en/cci_set_autocommit&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;ADO.NET -&amp;nbsp;&lt;a href=&quot;http://www.cubrid.org/wiki_apis/entry/connection-options&quot;&gt;http://www.cubrid.org/wiki_apis/entry/connection-options&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;Regardless of the approach chosen, 2 SQL commands can be used to commit or rollback a transaction:&lt;/p&gt;
&lt;pre class=&quot;brush:plain&quot;  title=&quot;&quot;&gt;COMMIT&lt;/pre&gt;
&lt;p&gt;in order to commit a transaction and&lt;/p&gt;
&lt;pre class=&quot;brush:plain&quot;  title=&quot;&quot;&gt;ROLLBACK&lt;/pre&gt;
&lt;p&gt;in order to perform a rollback. You can also perform rollbacks to a savepoint. A tutorial with an example can be found here:&amp;nbsp;&lt;a href=&quot;/manual/90/en/Savepoint%20and%20Partial%20Rollback&quot;&gt;http://www.cubrid.org/manual/90/en/Savepoint and Partial Rollback&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</content>
                  <category term="autocommit"/>
            <category term="transactions"/>
            
   </entry>
   <entry>
      <title>How to Build CUBRID from Source on Fedora/Centos</title>
      <id>http://www.cubrid.org/626858</id>
      <published>2013-04-03T02:28:31-07:00</published>
      <updated>2013-04-03T02:28:58-07:00</updated>
      <link rel="alternate" type="text/html" href="http://www.cubrid.org/626858"/>
      <link rel="replies" type="text/html" href="http://www.cubrid.org/626858#comment"/>
      <author>
         <name>CUBRID</name>
                  <uri>http://www.cubrid.org</uri>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;h2&gt;Prerequisites&lt;/h2&gt;
&lt;p&gt;To install the required packages, simply run the command below:&lt;/p&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;sudo yum install libtool texinfo java-1.6.0-openjdk-devel flex gcc-c++ ant ncurses-devel gc-devel glibc-devel lzo-devel libedit-devel pcre-devel libaio-devel elfutils-libelf-devel chrpath&lt;/pre&gt;
&lt;p&gt;&lt;i&gt;Note&lt;/i&gt;: &lt;b&gt;java-1.7.0-openjdk-devel&lt;/b&gt; must be used on Fedora 17 and above instead of &lt;b&gt;java-1.6.0-openjdk-devel&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Note&lt;/i&gt;: On Fedora 15 and above, you must also install &lt;b&gt;systemd-units&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt;Set the JAVA Environment Path:&lt;/p&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0&lt;/pre&gt;
&lt;p&gt;Make sure the path corresponds to your installation.&lt;/p&gt;
&lt;h2&gt;&lt;br /&gt;Building CUBRID&lt;/h2&gt;
&lt;p&gt;Generate the configure script according to your environment:&lt;/p&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;./autogen.sh&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Run configure with --prefix specifying the location where you want CUBRID to be built. &lt;b&gt;On 64 bit systems, you must add --enable-64-bit parameter.&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;./configure --prefix=/usr/share/cubrid&lt;/pre&gt;
&lt;p&gt;(or ./configure --prefix=/usr/share/cubrid --enable-64-bit for 64 bit systems)&lt;/p&gt;
&lt;p&gt;Run &amp;nbsp;make and make install (for make install sudo access may be required to copy files to /usr/share/cubrid.&lt;/p&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;make
sudo make install&lt;/pre&gt;
&lt;p&gt;All the files are installed in the prefix directory (in this case /usr/share/cubrid).&lt;/p&gt;
&lt;p&gt;The files are owned by root. If you want to edit the owner run:&lt;/p&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;sudo chown -R user:user /usr/share/cubrid&lt;/pre&gt;
&lt;p&gt;The username and group in our example is &lt;b&gt;user&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;In order to set the CUBRID enviroment variables, you can use this &lt;a href=&quot;/?module=file&amp;amp;act=procFileDownload&amp;amp;file_srl=626669&amp;amp;sid=5ab66a862e907cbb861a19266d941479&quot;&gt;cubrid.sh&lt;/a&gt;&amp;nbsp;file. If you install CUBRID in a different directory, replace /usr/share/cubrid in the file with the path where you have installed CUBRID.&lt;/p&gt;
&lt;p&gt;You have 2 options on how to use the &lt;a href=&quot;/?module=file&amp;amp;act=procFileDownload&amp;amp;file_srl=626669&amp;amp;sid=5ab66a862e907cbb861a19266d941479&quot;&gt;cubrid.sh&lt;/a&gt; file:&amp;nbsp;&lt;/p&gt;
&lt;p&gt;1. copy it to /etc/profile.d/cubrid.sh and this way it will be loaded automatically&lt;/p&gt;
&lt;p&gt;2. copy it to any location you want and load it using the command:&lt;/p&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;. /home/user/cubrid.sh&lt;/pre&gt;
&lt;p&gt;Make sure to leave a space between the &quot;.&quot; and the &lt;a href=&quot;/?module=file&amp;amp;act=procFileDownload&amp;amp;file_srl=626669&amp;amp;sid=5ab66a862e907cbb861a19266d941479&quot;&gt;cubrid.sh&lt;/a&gt; file. We assumed that /home/user is the directory where you copied the cubrid.sh file.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Create the databases folder and databases.txt file:&lt;/p&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;mkdir -p /usr/share/cubrid/databases
touch /usr/share/cubrid/databases/databases.txt&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Then, you can start and use cubrid:&lt;/p&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;cubrid service start&lt;/pre&gt;
&lt;p&gt;If you encounter any issue, post it on &lt;a href=&quot;/forum&quot;&gt;our forum&lt;/a&gt; or post a question in our &lt;a href=&quot;/questions&quot;&gt;Q&amp;amp;A section&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;</content>
                  <category term="build cubrid"/>
            <category term="Fedora"/>
            <category term="CentOS"/>
            
   </entry>
   <entry>
      <title>How to Build CUBRID from Source on Ubuntu</title>
      <id>http://www.cubrid.org/626668</id>
      <published>2013-04-02T23:37:01-07:00</published>
      <updated>2013-04-03T02:21:57-07:00</updated>
      <link rel="alternate" type="text/html" href="http://www.cubrid.org/626668"/>
      <link rel="replies" type="text/html" href="http://www.cubrid.org/626668#comment"/>
      <author>
         <name>CUBRID</name>
                  <uri>http://www.cubrid.org</uri>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;h2&gt;Prerequisites&lt;/h2&gt;
&lt;p&gt;To install the required packages, simply run the command below:&lt;/p&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;sudo apt-get install openjdk-6-jdk ant texinfo make-doc libncurses5-dev libtool flex autoconf automake g++ libelf-dev&lt;/pre&gt;
&lt;p&gt;&lt;i&gt;Note&lt;/i&gt;:&amp;nbsp;&lt;b&gt;openjdk-7-jdk&lt;/b&gt;&amp;nbsp;must be used on Ubuntu 12.10 and above instead of&amp;nbsp;&lt;b&gt;openjdk-6-jdk&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt;Set the JAVA Environment Path:&lt;/p&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;export JAVA_HOME=/usr/lib/jvm/java-6-openjdk-i386&lt;/pre&gt;
&lt;p&gt;Make sure the path corresponds to your installation.&lt;/p&gt;
&lt;h2&gt;&lt;br /&gt;Building CUBRID&lt;/h2&gt;
&lt;p&gt;Generate the configure script according to your environment:&lt;/p&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;./autogen.sh&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Run configure with --prefix specifying the location where you want CUBRID to be built. &lt;b&gt;On 64 bit systems, you must add --enable-64-bit parameter.&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;./configure --prefix=/opt/cubrid&lt;/pre&gt;
&lt;p&gt;(or ./configure --prefix=/opt/cubrid --enable-64-bit for 64 bit systems)&lt;/p&gt;
&lt;p&gt;Run &amp;nbsp;make and make install (for make install sudo access may be required to copy files to /opt/cubrid.&lt;/p&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;make
sudo make install&lt;/pre&gt;
&lt;p&gt;All the files are installed in the prefix directory (in this case /opt/cubrid).&lt;/p&gt;
&lt;p&gt;The files are owned by root. If you want to edit the owner run:&lt;/p&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;sudo chown -R user:user /opt/cubrid&lt;/pre&gt;
&lt;p&gt;The username and group in our example is &lt;b&gt;user&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt;In order to set the CUBRID enviroment variables, you can use this&amp;nbsp;&lt;a href=&quot;/?module=file&amp;amp;act=procFileDownload&amp;amp;file_srl=626839&amp;amp;sid=09657542458f78a39f0b9816c8a57aef&quot;&gt;cubrid.sh&lt;/a&gt; file. If you install CUBRID in a different directory, replace /opt/cubrid in the file with the path where you have installed CUBRID.&lt;/p&gt;
&lt;p&gt;You have 2 options on how to use the&amp;nbsp;&lt;a href=&quot;/?module=file&amp;amp;act=procFileDownload&amp;amp;file_srl=626839&amp;amp;sid=09657542458f78a39f0b9816c8a57aef&quot;&gt;cubrid.sh&lt;/a&gt;&amp;nbsp;file:&amp;nbsp;&lt;/p&gt;
&lt;p&gt;1. copy it to /etc/profile.d/cubrid.sh and this way it will be loaded automatically&lt;/p&gt;
&lt;p&gt;2. copy it to any location you want and load it using the command:&lt;/p&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;. /home/user/cubrid.sh&lt;/pre&gt;
&lt;p&gt;Make sure to leave a space between the &quot;.&quot; and the&amp;nbsp;&lt;a href=&quot;/?module=file&amp;amp;act=procFileDownload&amp;amp;file_srl=626839&amp;amp;sid=09657542458f78a39f0b9816c8a57aef&quot;&gt;cubrid.sh&lt;/a&gt;&amp;nbsp;file. We assumed that /home/user is the directory where you copied the cubrid.sh file.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Create the databases folder and databases.txt file:&lt;/p&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;mkdir -p /opt/cubrid/databases
touch /opt/cubrid/databases/databases.txt&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Then, you can start and use cubrid:&lt;/p&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;cubrid service start&lt;/pre&gt;
&lt;p&gt;If you encounter any issue, post it on &lt;a href=&quot;/forum&quot;&gt;our forum&lt;/a&gt; or post a question in our &lt;a href=&quot;/questions&quot;&gt;Q&amp;amp;A section&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;</content>
                  <category term="build cubrid"/>
            <category term="ubuntu"/>
            
   </entry>
   <entry>
      <title>How to Start or Autostart a CUBRID Database</title>
      <id>http://www.cubrid.org/353688</id>
      <published>2012-05-04T01:33:26-07:00</published>
      <updated>2013-03-26T19:56:31-07:00</updated>
      <link rel="alternate" type="text/html" href="http://www.cubrid.org/353688"/>
      <link rel="replies" type="text/html" href="http://www.cubrid.org/353688#comment"/>
      <author>
         <name>Laura Oh</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;h1&gt;1. CUBRID Script for Autostart on Linux&lt;/h1&gt;
&lt;p&gt;1-1.&amp;nbsp;We provide a cubrid script for auto start database processes.&lt;/p&gt;
&lt;p&gt;Please get download a script file from : &lt;br /&gt;&lt;a href=&quot;http://svn.cubrid.org/websvn/filedetails.php?repname=cubridscripts&amp;amp;path=/cubrid_scripts/cubrid&quot;&gt;http://svn.cubrid.org/websvn/filedetails.php?repname=cubridscripts&amp;amp;path=/cubrid_scripts/cubrid&lt;/a&gt;&lt;/p&gt;
&lt;pre class=&quot;brush:plain;collapse:true&quot;  title=&quot;&quot;&gt;#!/bin/bash
# 
# cubrid        This shell script takes care of starting and stopping
#               the CUBRID service
#
# chkconfig: 2345 98 05
# description: cubrid start/stop script  
#
# ts:4

### BEGIN INIT INFO
#
# Short-Description: CUBRID   
# Provides: CUBRID      
# Default-Start: 3 5
# Default-Stop: 0 6
### END INIT INFO


# Source function library.
. /etc/init.d/functions

# return code
CUBRID_SUCCESS=0
CUBRID_FAILED=1

US=`uname -n`
WHOAMI=`whoami`
RETVAL=0
prog=cubrid
_old_IFS=&quot; $IFS&quot;

### user specific environment ##################
CUBRID_USER=cubrid

if [ $WHOAMI = &quot;root&quot; ]; then
        CUBRID_DATABASES=`su - $CUBRID_USER -c &apos;printenv CUBRID_DATABASES&apos;`
        CUBRID_HOME=`su - $CUBRID_USER -c &apos;printenv CUBRID&apos;`
else
        CUBRID_USER=$WHOAMI
        CUBRID_HOME=$CUBRID
        export PATH=$PATH:$CUBRID_HOME/bin
fi

RFNAME=/tmp/.$prog.$CUBRID_USER
################################################

sudo_cubrid() {
        [ &quot;$#&quot; -ne 1 ] &amp;amp;&amp;amp; return

        if [ $WHOAMI = &quot;root&quot; ]; then
                su - $CUBRID_USER -c &quot;$1&quot;  
        else
                sh -c &quot;$1&quot;
        fi
}
save_IFS() {
        _old_IFS=&quot; $IFS&quot; # save $IFS
}

restore_IFS() {
        if [ -z &quot;$_old_IFS&quot; ] # restore old $IFS
        then 
                unset IFS
        else 
                IFS=&quot;$_old_IFS&quot;
        fi
}

check_config()
{
        # CHECK ha-mode
        cubrid_conf_file=$CUBRID_HOME/conf/cubrid.conf
        [ -r $cubrid_conf_file ] || exit

        eval &quot;$(sed $cubrid_conf_file -n -e &apos;s/&amp;#92;(.*&amp;#92;)&amp;#92;b.*=[&amp;#92; ]*&amp;#92;(.*&amp;#92;)/&amp;#92;1=&quot;&amp;#92;2&quot;/p&apos;)&quot;
        if [ $ha_mode&quot;x&quot; != &quot;x&quot; ] &amp;amp;&amp;amp; [ $ha_mode = &quot;yes&quot; -o $ha_mode = &quot;on&quot; -o $ha_mode = &quot;role-change&quot; ]; then
                return $CUBRID_FAILED
        fi

        return $CUBRID_SUCCESS
}


service_start() {
        sudo_cubrid &quot;cubrid service start 2&amp;gt;&amp;amp;1 &amp;gt;$RFNAME&quot;
        grep -wqs &quot;fail&quot; $RFNAME
        RETVAL=$?
        [ $RETVAL -ne 0 ] || return $CUBRID_FAILED
        return $CUBRID_SUCCESS
}

service_stop() {
        sudo_cubrid &quot;cubrid service stop 2&amp;gt;&amp;amp;1 &amp;gt;$RFNAME&quot;
        grep -wqs &quot;fail&quot; $RFNAME
        RETVAL=$?
        [ $RETVAL -ne 0 ] || return $CUBRID_FAILED
        return $CUBRID_SUCCESS
}

service_status()
{       
        sudo_cubrid &quot;cubrid service status&quot;
}

start() {
        check_config    
        RETVAL=$?
        if [ $RETVAL -eq $CUBRID_SUCCESS ]; then
                service_start
                RETVAL=$?
        fi

        if [ $RETVAL -eq $CUBRID_SUCCESS ]; then
                echo -n $&quot;Starting $prog: &quot;
                success
                echo
        else
                service_stop    

                echo -n $&quot;Starting $prog: &quot;
                failure
                echo
        fi      

        [ $WHOAMI = &quot;root&quot; ] &amp;amp;&amp;amp; touch /var/lock/subsys/$prog
}

stop() {
        check_config    
        RETVAL=$?
        if [ $RETVAL -eq $CUBRID_SUCCESS ]; then
                service_stop
                RETVAL=$?
        fi

        if [ $RETVAL -eq $CUBRID_SUCCESS ]; then
                echo -n $&quot;Stopping $prog: &quot;
                success
                echo
        else
                echo -n $&quot;Stopping $prog: &quot;
                failure
                echo
        fi      
}

restart() {
        check_config    
        RETVAL=$?
        if [ $RETVAL -eq $CUBRID_SUCCESS ]; then
                service_stop

                service_start
                RETVAL=$?
        fi

        if [ $RETVAL -eq $CUBRID_SUCCESS ]; then
                echo -n $&quot;Restarting $prog: &quot;
                success
                echo
        else
                echo -n $&quot;Restarting $prog: &quot;
                failure
                echo
        fi      
}

status() {
        check_config    
        RETVAL=$?
        if [ $RETVAL -eq $CUBRID_SUCCESS ]; then
                service_status
                RETVAL=$?
        fi
}

case &quot;$1&quot; in 
  start)
        start   
        ;;
  stop)
        stop
        ;;
  restart)
        restart
        ;;
  status)
        status
        ;;      
  *)    
        echo $&quot;Usage $0 {start|stop|restart|status}&quot;
        exit 1
esac

exit 0&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;1-2.&amp;nbsp;Copy cubrid file into /etc/init.d/&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;1-3. You should modify &quot;CUBRID_USER= &quot; part in the file if you install CUBRID with a different user(Default username: cubrid).&amp;nbsp;&lt;/p&gt;
&lt;pre class=&quot;brush:plain&quot;  title=&quot;&quot;&gt;### user specific environment ##################
CUBRID_USER=cubrid&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;1-4. Grant a execution permission by a following command:&amp;nbsp;&lt;/p&gt;
&lt;pre class=&quot;brush:plain&quot;  title=&quot;&quot;&gt;chmod a+x cubrid&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;1-5. Run chkconfig commans as follows:&amp;nbsp;&lt;/p&gt;
&lt;pre class=&quot;brush:plain&quot;  title=&quot;&quot;&gt;chkconfig --add cubrid

chkconfig --level 0345 cubrid on

chkconfig --list | grep cubrid&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;1-6. If your configuration is correct, you will encounter followings on a prompt. Now your script will work on whenever your server starts-up. &amp;nbsp; &amp;nbsp;&lt;/p&gt;
&lt;pre class=&quot;brush:plain&quot;  title=&quot;&quot;&gt; cubrid          0:on    1:off   2:on    3:on    4:on    5:on    6:off&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;1-7. Let&apos;s see if your script works correctly.&amp;nbsp;&lt;/p&gt;
&lt;pre class=&quot;brush:plain&quot;  title=&quot;&quot;&gt;/etc/init.d/cubrid start&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h1&gt;2. Configuration for Autostart when running CUBRID SERVICE START &amp;nbsp;&lt;/h1&gt;
&lt;p&gt;CUBRID provides one more convenient feature. You can specify databases, brokers, manageer processes as CUBRID SERVICE. If so, your command &quot;cubrid service start&quot; or &quot;cubrid service stop&quot; will run each of process you specified in cubrid.conf .&amp;nbsp;&lt;/p&gt;
&lt;p&gt;To start a database process only, type the following command in the terminal. Remember that all these operations can also be performed in GUI based CUBRID Manager, if you prefer.&lt;/p&gt;
&lt;pre class=&quot;brush:bash;gutter:false&quot;  title=&quot;&quot;&gt;cubrid server start my_database&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;If you use particular databases very often, you may configure CUBRID to auto start them when CUBRID Server is started. The configuration file is located in &lt;span style=&quot;font-family: monospace;&quot;&gt;$CUBRID/conf/&lt;a target=&quot;_self&quot; href=&quot;/manual/841/en/cubrid.conf%20Configuration%20File%20and%20Default%20Parameters&quot;&gt;cubrid.conf&lt;/a&gt;&lt;/span&gt;. The default locations are &lt;b&gt;C:&amp;#92;CUBRID&amp;#92;conf&amp;#92;cubrid.conf &lt;/b&gt;on Windows and &lt;b&gt;/opt/cubrid/conf/cubrid.conf&lt;/b&gt; on Linux. Find the line which is commented out like:&lt;/p&gt;
&lt;pre class=&quot;brush:plain;gutter:false&quot;  title=&quot;&quot;&gt;#server=foo,bar&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Uncomment this line by removing the hash (&lt;span style=&quot;font-family: monospace;&quot;&gt;#&lt;/span&gt;) sign, and instead of default &lt;span style=&quot;font-family: monospace;&quot;&gt;foo,bar&lt;/span&gt; list your databases separated by commas like:&lt;/p&gt;
&lt;pre class=&quot;brush:plain;gutter:false&quot;  title=&quot;&quot;&gt;server=my_database,my_other_database&lt;/pre&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Next time you restart CUBRID Server, the configured database(s) will be automatically started for you. In fact, each database will be auto started with the same &quot;&lt;span style=&quot;font-family: monospace;&quot;&gt;cubrid server start&lt;/span&gt;&quot; command you usually use to manually start the database.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;As a side note, you should know that in order to start a database, the&amp;nbsp;&lt;b style=&quot;font-style: italic;&quot;&gt;server process&lt;/b&gt;&amp;nbsp;must be running (the &quot;server&quot; keyword in &quot;&lt;span style=&quot;font-family: monospace;&quot;&gt;cubrid server start&lt;/span&gt;&quot; command). The &lt;i&gt;&lt;b&gt;server process&lt;/b&gt;&lt;/i&gt; is usually automatically started by CUBRID Service upon &quot;&lt;span style=&quot;font-family: monospace;&quot;&gt;cubrid service start&lt;/span&gt;&quot;. To make this sure, check if &quot;server&quot; keyword is listed in the following line in the same &lt;span style=&quot;font-family: monospace;&quot;&gt;cubrid.conf&lt;/span&gt; configuration file.&lt;/p&gt;
&lt;pre class=&quot;brush:plain;gutter:false&quot;  title=&quot;&quot;&gt;service=server,broker,manager&lt;/pre&gt;&lt;/div&gt;</content>
                  <category term="database"/>
            <category term="start database"/>
            <category term="cubrid.conf"/>
            <category term="configurations"/>
            <category term="CUBRID Service"/>
            
   </entry>
   <entry>
      <title>CUBRID Source Code</title>
      <id>http://www.cubrid.org/378402</id>
      <published>2012-06-18T19:07:33-07:00</published>
      <updated>2013-03-17T23:57:05-07:00</updated>
      <link rel="alternate" type="text/html" href="http://www.cubrid.org/378402"/>
      <link rel="replies" type="text/html" href="http://www.cubrid.org/378402#comment"/>
      <author>
         <name>Laura Oh</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;h2&gt;Overview&lt;/h2&gt;
&lt;p&gt;CUBRID uses &lt;a target=&quot;_self&quot; href=&quot;http://subversion.tigris.org/&quot;&gt;Subversion&lt;/a&gt; to manage its source code at &lt;a target=&quot;_self&quot; href=&quot;http://sourceforge.net/projects/cubrid/&quot;&gt;Sourceforge.net&lt;/a&gt;. Instructions on Subversion use can be found at&amp;nbsp;&lt;a target=&quot;_self&quot; href=&quot;http://svnbook.red-bean.com/&quot;&gt;http://svnbook.red-bean.com/&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Web access&lt;/h2&gt;
&lt;p&gt;You may browser the source repository using SF.net&apos;s interface at&amp;nbsp;&lt;a target=&quot;_self&quot; href=&quot;http://cubrid.svn.sourceforge.net/viewvc/cubrid/&quot;&gt;http://cubrid.svn.sourceforge.net&lt;/a&gt;&amp;nbsp; or at&amp;nbsp;&lt;a href=&quot;http://svn.cubrid.org/websvn/&quot;&gt;http://svn.cubrid.org/websvn/&lt;/a&gt;.&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;Anonymous SVN access&lt;/h2&gt;
&lt;p&gt;The latest version of CUBRID source code can be checked out anonymously from SVN branch with the following command:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre class=&quot;brush:bash;gutter:false&quot;  title=&quot;&quot;&gt;svn co http://cubrid.svn.sourceforge.net/svnroot/cubrid/cubrid/branches/RB-&amp;lt;CUBRID VERSION&amp;gt; cubrid&lt;/pre&gt;
&lt;p&gt;Replace &lt;code&gt;&amp;lt;CUBRID VERSION&amp;gt;&lt;/code&gt; with the appropriate version number such as &lt;b&gt;8.4.1&lt;/b&gt;.&amp;nbsp;Browse the repository at&amp;nbsp;&lt;a target=&quot;_self&quot; href=&quot;http://cubrid.svn.sourceforge.net/viewvc/cubrid/&quot;&gt;http://cubrid.svn.sourceforge.net/viewvc/cubrid/&lt;/a&gt;&amp;nbsp;to find available versions.&lt;/p&gt;
&lt;h2&gt;Download source code&lt;/h2&gt;
&lt;p&gt;Alternatively, you can simply download &lt;b&gt;.tar.gz&lt;/b&gt; CUBRID source code from each version at the &lt;a target=&quot;_self&quot; href=&quot;/?mid=downloads&amp;amp;item=cubrid&amp;amp;os=detect&quot;&gt;Downloads page&lt;/a&gt;&amp;nbsp;or the &lt;a href=&quot;ftp://ftp.cubrid.org/CUBRID_Engine/&quot;&gt;CUBRID FTP&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div style=&quot;display: none;&quot; id=&quot;endic_ext_wrapper&quot;&gt;&lt;/div&gt;
&lt;div style=&quot;display: none;&quot; id=&quot;endic_ext_wrapper&quot;&gt;&lt;/div&gt;&lt;/div&gt;</content>
                  <category term="SVN"/>
            <category term="source code"/>
            <category term="CUBRID"/>
            
   </entry>
   <entry>
      <title>How to Upgrade CUBRID Safely on Ubuntu</title>
      <id>http://www.cubrid.org/606970</id>
      <published>2013-03-08T05:10:05-08:00</published>
      <updated>2013-03-11T03:41:47-07:00</updated>
      <link rel="alternate" type="text/html" href="http://www.cubrid.org/606970"/>
      <link rel="replies" type="text/html" href="http://www.cubrid.org/606970#comment"/>
      <author>
         <name>Esen Sagynov</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;In this tutorial, we will focus on users that have installed CUBRID from apt-get. If this is the case, then the databases should be located in /var/opt/cubrid/databases or /opt/cubrid/databases.&lt;/p&gt;
&lt;p&gt;If you upgrade from 8.4.0 to 8.4.1 or 8.4.3 for example, you only need to save the databases folder, uninstall and reinstall CUBRID using the following commands:&lt;/p&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;mkdir -p /home/user/database_backup
cp -R /var/opt/cubrid/databases /home/user/database_backup
sudo apt-get remove cubrid
sudo apt-get update
sudo apt-get install cubrid
cp -R /home/user/database_backup/* /var/opt/cubrid/databases/&lt;/pre&gt;
&lt;p&gt;Make sure to adapt &quot;home/user&quot; to your user. You can remove the backup folder database_backup after you start&amp;nbsp;CUBRID&amp;nbsp;and check if the databases are running correctly.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Important! &lt;/b&gt;Make sure that /var/opt/cubrid/databases/databases.txt file contains the right paths to the database folders.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;If you want to perform a completely safe upgrade indepent of the&amp;nbsp;CUBRID&amp;nbsp;version, instead of copying the databases folder like in the above approach, you should use &lt;b&gt;cubrid unloaddb&lt;/b&gt;&amp;nbsp;to export all databases in a backup folder, then uninstall&amp;nbsp;CUBRID, update repository and install the new&amp;nbsp;CUBRID&amp;nbsp;version. Finally, you must import the databases into the new&amp;nbsp;CUBRID&amp;nbsp;instance by running&amp;nbsp;&lt;b&gt;cubrid loaddb&lt;/b&gt;&lt;span style=&quot;font-family: mceinline;&quot;&gt;.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;</content>
                  <category term="launchpad"/>
            <category term="ubuntu"/>
            <category term="loaddb"/>
            <category term="unloaddb"/>
            
   </entry>
   <entry>
      <title>CUBRID Installation Instructions</title>
      <id>http://www.cubrid.org/266407</id>
      <published>2012-01-24T21:27:25-08:00</published>
      <updated>2013-03-10T23:11:34-07:00</updated>
      <link rel="alternate" type="text/html" href="http://www.cubrid.org/266407"/>
      <link rel="replies" type="text/html" href="http://www.cubrid.org/266407#comment"/>
      <author>
         <name>Esen Sagynov</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;There are several ways to install CUBRID Database Server. Based on your OS choose the right installation instructions.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;[Installing CUBRID on Windows]&amp;nbsp;- Presentation&lt;/li&gt;
&lt;li&gt;[Installing CUBRID on Ubuntu]&lt;/li&gt;
&lt;li&gt;[Installing CUBRID on Fedora/CentOS]&lt;/li&gt;
&lt;li&gt;[Installing CUBRID on Linux using Shell and RPM] - Presentation&lt;/li&gt;
&lt;li&gt;[Install CUBRID, PHP Driver, XE CMS on Fedora/CentOS]&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;/run_cubrid_manager_on_mac&quot; target=&quot;_self&quot;&gt;Run CUBRID Manager on Mac OS X&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[Create a CUBRID Database VM with Vagrant and Chef Cookbook under 5 minutes]&lt;/li&gt;
&lt;li&gt;[Configure CUBRID HA with Vagrant and Chef Cookbook under 4 minutes]&lt;/li&gt;
&lt;li&gt;[Configure CUBRID SHARD with Vagrant and Chef Cookbook under 2 minutes]&lt;/li&gt;
&lt;li&gt;[Install CUBRID remotely with knife-solo and Chef Cookbook]&lt;/li&gt;
&lt;li&gt;[Getting Started with CUBRID Database AMI (Amazon Machine Image)]&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;/?mid=downloads&amp;amp;item=virtual_machines&amp;amp;vm_tool=any&amp;amp;vm_os=any&amp;amp;cubrid=any&quot;&gt;Download VMware/VirtualBox images with CUBRID installed&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;</content>
                  <category term="CUBRID"/>
            <category term="installation instructions"/>
            <category term="tutorials"/>
            
   </entry>
   <entry>
      <title>Full index of CUBRID Database using Solr DataImportHandler</title>
      <id>http://www.cubrid.org/300339</id>
      <published>2012-02-21T22:49:03-08:00</published>
      <updated>2013-03-08T04:05:41-08:00</updated>
      <link rel="alternate" type="text/html" href="http://www.cubrid.org/300339"/>
      <link rel="replies" type="text/html" href="http://www.cubrid.org/300339#comment"/>
      <author>
         <name>CUBRID</name>
                  <uri>http://www.cubrid.org</uri>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;This tutorial will illustrate an example where a sample data is &lt;span style=&quot;font-style: italic;&quot;&gt;batch indexed&lt;/span&gt; from a CUBRID database and POST&apos;ed into Solr using DataImportHandler. Often it is called a &lt;span style=&quot;font-style: italic;&quot;&gt;pull approach&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;At this point we assume that you have already completed [Using Solr / Lucene for full text search with CUBRID Database on Ubuntu|previous steps] and have the [Create a sample CUBRID Database from the command line|sample data] in your database.&lt;/p&gt;
&lt;p&gt;In this tutorial we will create a simple &lt;span style=&quot;font-style: italic;&quot;&gt;single core&lt;/span&gt; server which will be located in &lt;span style=&quot;font-weight: bold;&quot;&gt;/home/solr/apache-solr-4.0.0/example/cubrid-solr-example&lt;/span&gt; directory.&lt;/p&gt;
&lt;blockquote class=&quot;q4&quot;&gt;
&lt;p&gt;If you do not want to copy/paste all of the following codes, you can download &lt;a href=&quot;/?module=file&amp;amp;act=procFileDownload&amp;amp;file_srl=606889&amp;amp;sid=631244e94c27e421a926397237d1afef&quot;&gt;cubrid-solr-example.zip&lt;/a&gt; and extract it under &lt;span style=&quot;font-weight: bold;&quot;&gt;example/&lt;/span&gt; directory. The contents of this archive include all files from this tutorial. &lt;b&gt;Make sure that the lib folder contains the JDBC driver corresponding to your CUBRID server.&lt;/b&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;First, we need to login to &lt;span style=&quot;font-weight: bold;&quot;&gt;solr&lt;/span&gt; user we have created before and navigate to the &lt;span style=&quot;font-style: italic;&quot;&gt;example/&lt;/span&gt; directory.&lt;/p&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;
su - solr
cd apache-solr-4.0.0/example/
&lt;/pre&gt;
&lt;p&gt;Now let&apos;s create the home directory structure for our example.&lt;/p&gt;
&lt;pre class=&quot;brush:bash;gutter:false&quot;  title=&quot;&quot;&gt;mkdir cubrid-solr-example
cd cubrid-solr-example
mkdir conf lib&lt;/pre&gt;
&lt;p&gt;This will create the following directory structure.&lt;/p&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;/home/solr/apache-solr-4.0.0/example/
-----cubrid-solr-example/
----------conf/
----------lib/&lt;/pre&gt;
&lt;p&gt;Considering that your are in the home &lt;span style=&quot;font-style: italic;&quot;&gt;cubrid-solr-example&lt;/span&gt; directory, create the main configuration file for solr.&lt;/p&gt;
&lt;pre class=&quot;brush:bash;gutter:false&quot;  title=&quot;&quot;&gt;touch solr.xml&lt;/pre&gt;
&lt;p&gt;Save the following into this file. This will instruct Solr to create a single core server.&lt;/p&gt;
&lt;pre class=&quot;brush:xml&quot;  title=&quot;&quot;&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; ?&amp;gt;

&amp;lt;solr persistent=&quot;false&quot;&amp;gt;

  &amp;lt;cores adminPath=&quot;/admin/cores&quot; defaultCoreName=&quot;cubrid-example-core&quot;&amp;gt;
    &amp;lt;core name=&quot;cubrid-example-core&quot; instanceDir=&quot;.&quot; /&amp;gt;
  &amp;lt;/cores&amp;gt;
  
&amp;lt;/solr&amp;gt;&lt;/pre&gt;
&lt;p&gt;Now create a schema file which reflects the database schema of our [Create a sample CUBRID Database from the command line|sample database].&lt;/p&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;cd conf/
touch schema.xml&lt;/pre&gt;
&lt;p&gt;Save the following contents into this file. The following instructs Solr to create a schema for a users table which has 3 columns (id, email, join_date).&lt;/p&gt;
&lt;pre class=&quot;brush:xml&quot;  title=&quot;&quot;&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; ?&amp;gt;

&amp;lt;schema name=&quot;tbl_users&quot; version=&quot;1.0&quot;&amp;gt;

 &amp;lt;types&amp;gt;
    &amp;lt;fieldType name=&quot;tint&quot; class=&quot;solr.TrieIntField&quot; precisionStep=&quot;8&quot; omitNorms=&quot;true&quot; positionIncrementGap=&quot;0&quot;/&amp;gt;
    &amp;lt;fieldType name=&quot;string&quot; class=&quot;solr.StrField&quot; sortMissingLast=&quot;true&quot; omitNorms=&quot;true&quot;/&amp;gt;
 &amp;lt;/types&amp;gt;

 &amp;lt;fields&amp;gt;
   &amp;lt;field name=&quot;id&quot; type=&quot;tint&quot; indexed=&quot;true&quot; stored=&quot;true&quot; multiValued=&quot;false&quot; required=&quot;true&quot; /&amp;gt; 
   &amp;lt;field name=&quot;email&quot; type=&quot;string&quot; indexed=&quot;true&quot; stored=&quot;true&quot; multiValued=&quot;false&quot; required=&quot;true&quot; /&amp;gt;
   &amp;lt;field name=&quot;join_date&quot; type=&quot;tint&quot; indexed=&quot;true&quot; stored=&quot;true&quot; multiValued=&quot;false&quot; required=&quot;true&quot; /&amp;gt;
 &amp;lt;/fields&amp;gt;

 &amp;lt;uniqueKey&amp;gt;id&amp;lt;/uniqueKey&amp;gt;
 &amp;lt;defaultSearchField&amp;gt;email&amp;lt;/defaultSearchField&amp;gt;

 &amp;lt;solrQueryParser defaultOperator=&quot;OR&quot;/&amp;gt;

&amp;lt;/schema&amp;gt;&lt;/pre&gt;
&lt;p&gt;Now create a configuration file for this &lt;span style=&quot;font-style: italic;&quot;&gt;cubrid-example-core&lt;/span&gt; in the same directory.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;touch solrconfig.xml&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Add the following to this file. Most of the configurations you see below are default settings. But we will stop on &lt;span style=&quot;font-weight: bold;&quot;&gt;DataImportHandler&lt;/span&gt; and explain it a little bit more.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://wiki.apache.org/solr/DataImportHandler&quot; target=&quot;_self&quot;&gt;DataImportHandler&lt;/a&gt; is used to perform batch indexing of an SQL database table. But it is not a native Solr library, therefore it is not loaded by default. We need to instruct Solr to load it by &lt;span style=&quot;font-style: italic;&quot;&gt;&amp;lt;lib ...&amp;gt;&lt;/span&gt; tag. This handler comes with Solr package by default and is located in the &lt;span style=&quot;font-weight: bold;&quot;&gt;dist/&lt;/span&gt; directory in the root of the package. Therefore the path should be relative to the home directory of your example (in our case &lt;span style=&quot;font-style: italic;&quot;&gt;cubrid-solr-example/&lt;/span&gt;) and &lt;span style=&quot;font-weight: bold;&quot;&gt;not&lt;/span&gt; relative to this solrconfig.xml file.&lt;/p&gt;
&lt;p&gt;Further below we create a separate requestHandler for our DataImportHandler which will respond when you navigate to &lt;a href=&quot;http://localhost:8983/dataimport&quot; target=&quot;_self&quot;&gt;http://localhost:8983/dataimport&lt;/a&gt; URL. We tell Solr that the configurations for DataImportHandler are located in the &lt;span style=&quot;font-style: italic;&quot;&gt;/home/solr/apache-solr-4.0.0/example/cubrid-solr-example/conf/data-config.xml&lt;/span&gt; file.&lt;/p&gt;
&lt;pre class=&quot;brush:xml&quot;  title=&quot;&quot;&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; ?&amp;gt;

&amp;lt;config&amp;gt;

  &amp;lt;abortOnConfigurationError&amp;gt;${solr.abortOnConfigurationError:true}&amp;lt;/abortOnConfigurationError&amp;gt;

  &amp;lt;luceneMatchVersion&amp;gt;LUCENE_40&amp;lt;/luceneMatchVersion&amp;gt;

  &amp;lt;lib dir=&quot;../../dist/&quot; regex=&quot;apache-solr-dataimporthandler-&amp;#92;d.*&amp;#92;.jar&quot; /&amp;gt;

  &amp;lt;directoryFactory name=&quot;DirectoryFactory&quot; 
                    class=&quot;${solr.directoryFactory:solr.StandardDirectoryFactory}&quot;/&amp;gt;

  &amp;lt;updateHandler class=&quot;solr.DirectUpdateHandler2&quot; /&amp;gt;

  &amp;lt;requestDispatcher handleSelect=&quot;true&quot; &amp;gt;
    &amp;lt;requestParsers enableRemoteStreaming=&quot;false&quot; /&amp;gt;
  &amp;lt;/requestDispatcher&amp;gt;

  &amp;lt;requestHandler name=&quot;standard&quot; class=&quot;solr.StandardRequestHandler&quot; default=&quot;true&quot; /&amp;gt;

  &amp;lt;requestHandler name=&quot;/update&quot; 
                  class=&quot;solr.JsonUpdateRequestHandler&quot; 
                  startup=&quot;lazy&quot; /&amp;gt;

  &amp;lt;requestHandler name=&quot;/admin/&quot; 
                  class=&quot;solr.admin.AdminHandlers&quot; /&amp;gt;

  &amp;lt;requestHandler name=&quot;/admin/ping&quot; class=&quot;solr.PingRequestHandler&quot;&amp;gt;
    &amp;lt;lst name=&quot;invariants&quot;&amp;gt;
      &amp;lt;str name=&quot;qt&quot;&amp;gt;search&amp;lt;/str&amp;gt;
      &amp;lt;str name=&quot;q&quot;&amp;gt;solrpingquery&amp;lt;/str&amp;gt;
    &amp;lt;/lst&amp;gt;
    &amp;lt;lst name=&quot;defaults&quot;&amp;gt;
      &amp;lt;str name=&quot;echoParams&quot;&amp;gt;all&amp;lt;/str&amp;gt;
    &amp;lt;/lst&amp;gt;
  &amp;lt;/requestHandler&amp;gt;
  
  &amp;lt;requestHandler name=&quot;/dataimport&quot; class=&quot;org.apache.solr.handler.dataimport.DataImportHandler&quot;&amp;gt;
&amp;lt;lst name=&quot;defaults&quot;&amp;gt;
      &amp;lt;str name=&quot;config&quot;&amp;gt;data-config.xml&amp;lt;/str&amp;gt;
    &amp;lt;/lst&amp;gt;
  &amp;lt;/requestHandler&amp;gt;

  &amp;lt;admin&amp;gt;
    &amp;lt;defaultQuery&amp;gt;solr&amp;lt;/defaultQuery&amp;gt;
  &amp;lt;/admin&amp;gt;

&amp;lt;/config&amp;gt;&lt;/pre&gt;
&lt;p&gt;For DataImportHandler to connect and query a database, it requires a  JDBC driver of that database server. CUBRID provides a native &lt;a href=&quot;/wiki_apis/entry/cubrid-jdbc-driver&quot; target=&quot;_self&quot;&gt;JDBC Driver&lt;/a&gt;. If you have already installed CUBRID in your system, you can find the JDBC driver in &lt;span style=&quot;font-weight: bold;&quot;&gt;/jdbc&lt;/span&gt; directory. In case of Ubuntu &lt;span style=&quot;font-style: italic;&quot;&gt;apt-get&lt;/span&gt; installation, it is located in &lt;span style=&quot;font-weight: bold;&quot;&gt;/opt/cubrid/jdbc&lt;/span&gt;.&lt;/p&gt;
&lt;blockquote class=&quot;q4&quot;&gt;
&lt;p&gt;If you have not installed CUBRID in your system and plan to connect to a remote CUBRID server, you can download the JDBC driver from the &lt;a href=&quot;/?mid=downloads&amp;amp;item=jdbc_driver&quot; target=&quot;_self&quot;&gt;CUBRID downloads&lt;/a&gt; page.&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Important:&lt;/span&gt; you need to download the right JDBC driver, i.e. if the version of your remote CUBRID server is 8.4.1, then download JDBC driver for 8.4.1.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Place CUBRID JDBC driver into &lt;span style=&quot;font-weight: bold;&quot;&gt;/lib&lt;/span&gt; directory of &lt;span style=&quot;font-style: italic;&quot;&gt;cubrid-solr-example&lt;/span&gt;. Solr will automatically load any library located in this directory.&lt;/p&gt;
&lt;p&gt;Now we need to create this &lt;span style=&quot;font-style: italic;&quot;&gt;data-config.xml&lt;/span&gt; file for DataImportHandler which tells the exact authentication  information, the exact SELECT query to execute to retrieve the data from  the database, etc.&lt;/p&gt;
&lt;p&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;touch data-config.xml&lt;/pre&gt;
&lt;/p&gt;
&lt;p&gt;In this file we tell DataImportHandler that:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;it should use CUBRID&apos;s JDBC driver;&lt;/li&gt;
&lt;li&gt;in the connection URL we indicate that CUBRID server is installed in the &lt;span style=&quot;font-style: italic;&quot;&gt;localhost&lt;/span&gt;, the broker port is &lt;span style=&quot;font-style: italic;&quot;&gt;33000&lt;/span&gt; (default), and the database name is &lt;span style=&quot;font-style: italic;&quot;&gt;sample_db&lt;/span&gt;;&lt;/li&gt;
&lt;li&gt;the user name is &lt;span style=&quot;font-style: italic;&quot;&gt;dba&lt;/span&gt;;&lt;/li&gt;
&lt;li&gt;no password is needed.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Also we indicate:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; the exact query which should be execute to obtain the data from our database.&lt;/li&gt;
&lt;li&gt;name of fields we created before for our Solr server and the corresponding column names of the database table.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;brush:xml&quot;  title=&quot;&quot;&gt;&amp;lt;dataConfig&amp;gt;
    &amp;lt;dataSource type=&quot;JdbcDataSource&quot; driver=&quot;cubrid.jdbc.driver.CUBRIDDriver&quot; url=&quot;jdbc:cubrid:localhost:33000:sample_db&quot; user=&quot;dba&quot; password=&quot;&quot;/&amp;gt;
    &amp;lt;document name=&quot;users&quot;&amp;gt;
        &amp;lt;entity name=&quot;user&quot; query=&quot;select * from tbl_users&quot;&amp;gt;
            &amp;lt;field column=&quot;ID&quot; name=&quot;id&quot; /&amp;gt;
            &amp;lt;field column=&quot;EMAIL&quot; name=&quot;email&quot; /&amp;gt;
            &amp;lt;field column=&quot;JOIN_DATE&quot; name=&quot;join_date&quot; /&amp;gt;
        &amp;lt;/entity&amp;gt;
    &amp;lt;/document&amp;gt;
&amp;lt;/dataConfig&amp;gt;&lt;/pre&gt;
&lt;p&gt;Finally, you should have the following file structure.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre class=&quot;brush:plain;gutter:false&quot;  title=&quot;&quot;&gt;/home/solr/apache-solr-4.0.0/example/
-----cubrid-solr-example/
----------conf/
---------------schema.xml
---------------solrconfig.xml
---------------data-config.xml
----------lib/
---------------cubrid_jdbc.jar
----------solr.xml&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;To confirm if all the configurations are correct, we can now start our Solr instance.&lt;/p&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;cd /home/solr/apache-solr-4.0.0/example
java -Dsolr.solr.home=&quot;./cubrid-solr-example/&quot; -jar start.jar&lt;/pre&gt;
&lt;p&gt;This should start Solr on port 8983. Navigate to &lt;a href=&quot;http://localhost:8983/solr/dataimport&quot; target=&quot;_self&quot;&gt;http://localhost:8983/solr/dataimport&lt;/a&gt;. You should see an XML output which indicates that the configurations are correct. Otherwise, your Solr instance would not start in which case write to our &lt;a href=&quot;/forum&quot; target=&quot;_self&quot;&gt;CUBRID Forum&lt;/a&gt;. We will be glad to help you out.&lt;/p&gt;
&lt;p&gt;To import your data from &lt;span style=&quot;font-style: italic;&quot;&gt;sample_db&lt;/span&gt;, first, make sure your database is running.&lt;/p&gt;
&lt;pre class=&quot;brush:bash;gutter:false&quot;  title=&quot;&quot;&gt;cubrid server start sample_db&lt;/pre&gt;
&lt;p&gt;Then navigate to &lt;a href=&quot;http://localhost:8983/solr/dataimport?command=full-import&quot; target=&quot;_self&quot;&gt;http://localhost:8983/solr/dataimport?command=full-import&lt;/a&gt; to perform full import. If you see an XML output, Solr may have successfully imported all your data from CUBRID database. To confirm this, you can search for data in Solr admin panel at &lt;a href=&quot;http://localhost:8983/solr/admin/&quot; target=&quot;_self&quot;&gt;http://localhost:8983/solr/admin/&lt;/a&gt;. In the &lt;span style=&quot;font-weight: bold;&quot;&gt;Query String&lt;/span&gt; field enter a string which exists in your database. Solr should display the related data if such entry exists.&lt;/p&gt;
&lt;p&gt;At this point you have learnt how to perform batch index of CUBRID database using DataImportHandler. For more examples, see [Using Solr / Lucene for full text search with CUBRID Database on Ubuntu].&lt;/p&gt;&lt;/div&gt;</content>
                  <category term="Solr"/>
            <category term="full text search"/>
            <category term="DataImportHandler"/>
            <category term="import"/>
            
   </entry>
   <entry>
      <title>Create a CUBRID Database VM with Vagrant and Chef Cookbook under 5 minutes</title>
      <id>http://www.cubrid.org/541612</id>
      <published>2013-01-02T00:16:27-08:00</published>
      <updated>2013-03-06T03:55:27-08:00</updated>
      <link rel="alternate" type="text/html" href="http://www.cubrid.org/541612"/>
      <link rel="replies" type="text/html" href="http://www.cubrid.org/541612#comment"/>
      <author>
         <name>CUBRID</name>
                  <uri>http://www.cubrid.org</uri>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;In this tutorial I will show how to create an Ubuntu/CentOS VirtualBox image with CUBRID Database under 5 minutes. In fact, you can use this solution to create multiple&amp;nbsp;development environments (&lt;i&gt;multiple VMs&lt;/i&gt;)&amp;nbsp;with different versions of CUBRID installed on each of them, and all these under 5 minutes. It is as easy as:&lt;/p&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;$ vagrant up&lt;/pre&gt;
&lt;p&gt;Also I will show how to install PHP/PDO, Perl and Python drivers along the way. You will also see how to get CUBRID Web Manager working. Remember that all these is completed automatically without your intervention. If you want to see how to do the same and get CUBRID HA and SHARD configured, refer to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;[Configure CUBRID HA with Vagrant and Chef Cookbook under 4 minutes]&lt;/li&gt;
&lt;li&gt;[Configure CUBRID SHARD with Vagrant and Chef Cookbook under 2 minutes]&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Requirements&lt;/h2&gt;
&lt;p&gt;Before I explain how and why the above works, I would like to first introduce the tools that you will need for this tutorial:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;https://www.virtualbox.org/&quot; target=&quot;_self&quot;&gt;VirtualBox&lt;/a&gt;&amp;nbsp;- it is a powerful open source virtualization software similar to VMware Workstation.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.vagrantup.com/&quot; target=&quot;_self&quot;&gt;Vagrant&lt;/a&gt;&amp;nbsp;- this is the key ingredient, the tool which will provide us with a base &quot;&lt;a href=&quot;http://docs.vagrantup.com/v1/docs/getting-started/boxes.html&quot; target=&quot;_self&quot;&gt;box&lt;/a&gt;&quot; (&lt;i&gt;a clean Linux OS with a minimal set of software installed&lt;/i&gt;) on top of which we will &lt;i&gt;provision&lt;/i&gt;, i.e. install different versions of CUBRID Database, Apache Web Server, PHP, and necessary CUBRID drivers.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Install both of these tools in your OS (&lt;i&gt;Linux, Windows, Mac OS X&lt;/i&gt;). This is all you will need to get started.&lt;/p&gt;
&lt;h2&gt;Vagrantfile&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;http://docs.vagrantup.com/v1/docs/vagrantfile.html&quot; target=&quot;_self&quot;&gt;Vagrantfile&lt;/a&gt; is a configuration file used by Vagrant. It includes the instructions for &lt;a href=&quot;http://docs.vagrantup.com/v1/docs/provisioners/chef_solo.html&quot; target=&quot;_self&quot;&gt;Chef Solo&lt;/a&gt;&amp;nbsp;(&lt;i&gt;an open source systems integration framework&lt;/i&gt;)&amp;nbsp;to install the necessary software on top of a &lt;i&gt;base&lt;/i&gt; Vagrant box.&lt;/p&gt;
&lt;p&gt;I have created this file as well as the whole directory structure for you. You can download &lt;a href=&quot;http://sourceforge.net/projects/cubrid/files/CUBRID-AppsTools/CUBRID_Vagrant_VM/cubrid-vagrant-1.8.0.tar.gz/download&quot;&gt;cubrid-vagrant-1.8.0.tar.gz&lt;/a&gt;&amp;nbsp;(234K)&amp;nbsp;archive to have it (&lt;i&gt;or check the latest version from &lt;a href=&quot;http://sourceforge.net/projects/cubrid/files/CUBRID-AppsTools/CUBRID_Vagrant_VM/&quot; target=&quot;_self&quot;&gt;Sf.net repo&lt;/a&gt;&lt;/i&gt;). It will provide you with a project directory structure to get started.&amp;nbsp;When you extract it, you will see the following directory structure.&lt;/p&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;$ tar -zxf cubrid-vagrant.tar.gz
 $ ls cubrid-vagrant
 cookbooks/
     apache2/
     apt/
     build-essential/
     cubrid
     perl
     php
     python
 Vagrantfile&lt;/pre&gt;
&lt;p&gt;This project already includes seven cookbooks including the one for CUBRID&amp;nbsp;(&lt;i&gt;&lt;a href=&quot;https://github.com/kadishmal/cubrid-cookbook&quot; target=&quot;_self&quot;&gt;Github repo&lt;/a&gt;&lt;/i&gt;).&amp;nbsp;You do not have to know how cookbooks work. They are for Chef Solo to know how to install CUBRID and other related software.&lt;/p&gt;
&lt;p&gt;If you look into&amp;nbsp;&lt;i&gt;Vagrantfile&lt;/i&gt;, you will see the following configurations.&lt;/p&gt;
&lt;pre class=&quot;brush:plain&quot;  title=&quot;&quot;&gt;# -*- mode: ruby -*-
  # vi: set ft=ruby :
  
  Vagrant::Config.run do |config|
    # All Vagrant configuration is done here. The most common configuration
    # options are documented and commented below. For a complete reference,
    # please see the online documentation at vagrantup.com.
  
    # Every Vagrant virtual environment requires a box to build off of.
    config.vm.box = &quot;precise64&quot; # Ubuntu 12.04 x64
    #config.vm.box = &quot;centos63&quot; # CentOS 6.3 x64
  
    # Assign this VM to a host-only network IP, allowing you to access it
    # via the IP. Host-only networks can talk to the host machine as well as
    # any other machines on the same network, but cannot be accessed (through this
    # network interface) by any external networks.
    config.vm.network :hostonly, &quot;10.11.12.13&quot;
  
    # Enable provisioning with chef solo, specifying a cookbooks path, roles
    # path, and data_bags path (all relative to this Vagrantfile), and adding
    # some recipes and/or roles.
    #
    config.vm.provision :chef_solo do |chef|
      # This path will be expanded relative to the project directory
      chef.cookbooks_path = &quot;cookbooks&quot;
  
      # specify which version of CUBRID we would like to install
      chef.json = {
          &quot;cubrid&quot; =&amp;gt; {
              #&quot;version&quot; =&amp;gt; &quot;8.4.3&quot;,
              #&quot;new_dbs&quot; =&amp;gt; [&quot;newtestdb&quot;],
              #&quot;ha_dbs&quot; =&amp;gt; [&quot;ha_test_db&quot;],
              #&quot;ha_hosts&quot; =&amp;gt; {&quot;node1&quot; =&amp;gt; &quot;10.11.12.13&quot;, &quot;node2&quot; =&amp;gt; &quot;10.11.12.14&quot;}
          }
      }
  
      # &quot;apt&quot; is necessary to perform &quot;apt-get update&quot; command on Ubuntu OS.
      # Comment it out if using CentOS.
      chef.add_recipe &quot;apt&quot;
  
      # &quot;apache&quot; Web server to run PHP apps
      chef.add_recipe &quot;apache2&quot;
      chef.add_recipe &quot;apache2::mod_php5&quot;
      chef.add_recipe &quot;apache2::mod_rewrite&quot;
  
      # install PHP
      chef.add_recipe &quot;php&quot;
  
      # install CUBRID Database
      chef.add_recipe &quot;cubrid&quot;
      chef.add_recipe &quot;cubrid::demodb&quot;
      #chef.add_recipe &quot;cubrid::ha&quot;
      #chef.add_recipe &quot;cubrid::new_dbs&quot;
      chef.add_recipe &quot;cubrid::pdo_cubrid&quot;
      chef.add_recipe &quot;cubrid::perl_driver&quot;
      chef.add_recipe &quot;cubrid::php_driver&quot;
      chef.add_recipe &quot;cubrid::python_driver&quot;
      #chef.add_recipe &quot;cubrid::shard&quot;
      chef.add_recipe &quot;cubrid::web_manager&quot;
    end
  end&lt;/pre&gt;
&lt;p&gt;All lines which&amp;nbsp;precede&amp;nbsp;with a hash (&lt;code&gt;#&lt;/code&gt;) symbol are comments.&lt;/p&gt;
&lt;p&gt;Our &lt;i&gt;Vagrantfile&lt;/i&gt; says to Chef Solo to:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Use &lt;b&gt;apt&lt;/b&gt;&amp;nbsp;cookbook to update the Ubuntu OS, which is used as our &lt;i&gt;base&lt;/i&gt;&amp;nbsp;box. Comment that line out if creating a CentOS VM.&lt;/li&gt;
&lt;li&gt;Use &lt;b&gt;apache2&lt;/b&gt; cookbook to install Apache Web Server and its &lt;i&gt;mod_php5&lt;/i&gt; and &lt;i&gt;mod_rewrite&lt;/i&gt;&amp;nbsp;modules.&lt;/li&gt;
&lt;li&gt;Use &lt;b&gt;php&lt;/b&gt;&amp;nbsp;cookbook to install PHP 5.3.3.&lt;/li&gt;
&lt;li&gt;Use &lt;b&gt;cubrid&lt;/b&gt;&amp;nbsp;cookbook to install CUBRID version 9.0.0, its &lt;a href=&quot;/wiki_tutorials/entry/getting-started-with-demodb-cubrid-demo-database&quot; target=&quot;_self&quot;&gt;demodb&lt;/a&gt; database, PDO/PHP, Perl and Python drivers, automatically create multiple database, and auto configure CUBRID HA on multi VM environment. Instead of default CUBRID 9.0.0 Database, you can also install other versions like 8.4.3 or 8.4.1. To learn more, refer to&amp;nbsp;&lt;a href=&quot;https://github.com/kadishmal/cubrid-cookbook&quot; target=&quot;_self&quot;&gt;cubrid-cookbook&lt;/a&gt;&amp;nbsp;Github repo.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;If you do not want to install a particular package, simply comment it out.&lt;/p&gt;
&lt;p&gt;If necessary, you can extend the above &lt;i&gt;Vagrantfile&lt;/i&gt;&amp;nbsp;by adding other cookbooks and their recipes. You can find cookbooks for most software at&amp;nbsp;&lt;a href=&quot;https://github.com/opscode-cookbooks&quot; target=&quot;_self&quot;&gt;https://github.com/opscode-cookbooks&lt;/a&gt;. Simply download the necessary cookbook, and place it under &lt;i&gt;cookbooks/&lt;/i&gt;&amp;nbsp;directory. Then refer to it by adding one of its recipes to a &lt;i&gt;Vagrantfile&lt;/i&gt;. You can also search for cookbooks at the official community site at&amp;nbsp;&lt;a href=&quot;http://community.opscode.com/cookbooks&quot; target=&quot;_self&quot;&gt;http://community.opscode.com/cookbooks&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Vagrant Box&lt;/h2&gt;
&lt;p&gt;Since we are ready to launch our VM and have Vagrant provision it, let&apos;s make our last stroke - indicate which OS to use. Vagrant community provides several base boxes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://files.vagrantup.com/lucid32.box&quot; target=&quot;_self&quot;&gt;http://files.vagrantup.com/lucid32.box&lt;/a&gt;&amp;nbsp;(261MB) - Ubuntu Server 10.04 (Lucid) x86 LTS&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://files.vagrantup.com/lucid64.box&quot; target=&quot;_self&quot;&gt;http://files.vagrantup.com/lucid64.box&lt;/a&gt;&amp;nbsp;(280MB)&amp;nbsp;- Ubuntu Server 10.04 (Lucid) x64 LTS&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://files.vagrantup.com/precise32.box&quot; target=&quot;_self&quot;&gt;http://files.vagrantup.com/precise32.box&lt;/a&gt;&amp;nbsp;(299MB) -&amp;nbsp;&amp;nbsp;Ubuntu Server 12.04 (Precise) x86 LTS&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://files.vagrantup.com/precise64.box&quot; target=&quot;_self&quot;&gt;http://files.vagrantup.com/precise64.box&lt;/a&gt;&amp;nbsp;(323MB) -&amp;nbsp;&amp;nbsp;Ubuntu Server 12.04 (Precise) x64 LTS&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;There are dozens more community-made boxes at&amp;nbsp;&lt;a href=&quot;http://www.vagrantbox.es/&quot; target=&quot;_self&quot;&gt;http://www.vagrantbox.es/&lt;/a&gt;. You can download other Linux distributions from there. For example, here is a CentOS box from the community.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://dl.dropbox.com/u/7225008/Vagrant/CentOS-6.3-x86_64-minimal.box&quot; target=&quot;_self&quot;&gt;https://dl.dropbox.com/u/7225008/Vagrant/CentOS-6.3-x86_64-minimal.box&lt;/a&gt;&amp;nbsp;(310MB) - CentOS 6.3 x64 minimal&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In order to indicate which box to use, you need to run the following command specifying the URL where to download the box. In this tutorial we will use Ubuntu Server 12.04 x64 and name it &lt;b&gt;precise64&lt;/b&gt;. This is&amp;nbsp;an arbitrary name that we chose to distinguish this box from other boxes which we may potentially install later. This name is used in our&amp;nbsp;&lt;i&gt;Vagrantfile&lt;/i&gt;&amp;nbsp;as a value for&amp;nbsp;&lt;code&gt;config.vm.box&lt;/code&gt; configuration parameter.&lt;/p&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;vagrant box add precise64 http://files.vagrantup.com/precise64.box&lt;/pre&gt;
&lt;p&gt;You can add multiple boxes. They will be stored by Vagrant at &lt;i&gt;~/.vagrant/boxes&lt;/i&gt; directory for your later use.&lt;/p&gt;
&lt;h2&gt;Start Up Vagrant&lt;/h2&gt;
&lt;p&gt;Now, let&apos;s start Vagrant:&lt;/p&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;$ cd cubrid-vagrant
$ vagrant up
[default] VM already created. Booting if it&apos;s not already running...
[default] Clearing any previously set forwarded ports...
[default] Forwarding ports...
[default] -- 22 =&amp;gt; 2222 (adapter 1)
[default] Creating shared folders metadata...
[default] Clearing any previously set network interfaces...
[default] Preparing network interfaces based on configuration...
[default] Booting VM...
[default] Waiting for VM to boot. This can take a few minutes.
[default] VM booted and ready for use!
[default] Configuring and enabling network interfaces...
[default] Mounting shared folders...
[default] -- v-root: /vagrant
[default] -- v-csc-1: /tmp/vagrant-chef-1/chef-solo-1/cookbooks
[default] Running provisioner: Vagrant::Provisioners::ChefSolo...
[default] Generating chef JSON and uploading...
[default] Running chef-solo...
....&lt;/pre&gt;
&lt;p&gt;This will continue for a while. On my computer it takes &lt;b&gt;less than five minutes&lt;/b&gt; to provision everything from the ground up.&lt;/p&gt;
&lt;h3&gt;Host IP&lt;/h3&gt;
&lt;p&gt;As you can notice from &lt;i&gt;Vagrantfile&lt;/i&gt;, we have set &lt;b&gt;10.11.12.13&lt;/b&gt; as the IP address of our VM.&amp;nbsp;You can use this IP to connect to CUBRID from &lt;a href=&quot;/wiki_tools/entry/cubrid-query-browser&quot; target=&quot;_self&quot;&gt;CUBRID Query Browser&lt;/a&gt; or &lt;a href=&quot;/wiki_tools/entry/cubrid-manager&quot; target=&quot;_self&quot;&gt;CUBRID Manager&lt;/a&gt; administration tools.&lt;/p&gt;
&lt;p&gt;To test if Apache was successfully installed, navigate to&amp;nbsp;&lt;b&gt;&lt;a href=&quot;http://10.11.12.13:8080/&quot; target=&quot;_self&quot;&gt;http://10.11.12.13&lt;/a&gt;&lt;/b&gt;&amp;nbsp;in your browser. You should see Apache&apos;s default &quot;&lt;b&gt;It works!&lt;/b&gt;&quot; message.&lt;/p&gt;
&lt;h3&gt;Connecting to a demodb database&lt;/h3&gt;
&lt;p&gt;&lt;b&gt;Recipe:&amp;nbsp;&lt;/b&gt;&lt;a href=&quot;https://github.com/kadishmal/cubrid-cookbook#cubrid-demodb-database&quot; target=&quot;_self&quot;&gt;demodb&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Since, in &lt;i&gt;Vagrantfile&lt;/i&gt;&amp;nbsp;we have asked Chef Solo to install the &lt;a href=&quot;/wiki_tutorials/entry/getting-started-with-demodb-cubrid-demo-database&quot; target=&quot;_self&quot;&gt;demodb&lt;/a&gt; database,&amp;nbsp;you may want to test your first database connection with it. The default database username is &lt;b&gt;dba&lt;/b&gt;&amp;nbsp;with an empty (&lt;code&gt;&apos;&apos;&lt;/code&gt;) password.&lt;/p&gt;
&lt;h3&gt;Testing PHP and PDO drivers&lt;/h3&gt;
&lt;p&gt;&lt;b&gt;Recipe: &lt;/b&gt;&lt;a href=&quot;https://github.com/kadishmal/cubrid-cookbook#cubrid-pdo-driver&quot; target=&quot;_self&quot;&gt;pdo_cubrid&lt;/a&gt;&lt;br /&gt;&lt;b&gt;Recipe:&lt;/b&gt;&amp;nbsp;&lt;a href=&quot;https://github.com/kadishmal/cubrid-cookbook#cubrid-php-driver&quot; target=&quot;_self&quot;&gt;php_driver&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Run the following command to see if CUBRID PHP and PDO driver have been successfully installed.&lt;/p&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;$ pecl list
Installed packages, channel pecl.php.net:
=========================================
Package    Version    State
CUBRID     9.0.0.0001 stable
PDO_CUBRID 9.0.0.0001 stable&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;Testing the Python driver&lt;/h3&gt;
&lt;p&gt;&lt;b&gt;Recipe:&amp;nbsp;&lt;/b&gt;&lt;a href=&quot;https://github.com/kadishmal/cubrid-cookbook#cubrid-python-driver&quot;&gt;python_driver&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Run the following command inside your VM to see if CUBRID Python driver has been successfully installed.&lt;/p&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;$ pip freeze
CUBRID-Python==9.0.0.0001&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;Testing the Perl driver&lt;/h3&gt;
&lt;p&gt;&lt;b&gt;Recipe:&amp;nbsp;&lt;/b&gt;&lt;a href=&quot;https://github.com/kadishmal/cubrid-cookbook#cubrid-perl-driver&quot;&gt;perl_driver&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Run the following command inside your VM to see if CUBRID Perl driver has been successfully installed.&lt;/p&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;$ cpan -l
DBD::cubrid               9.0.0.0001 9.000000001  CUBRID/DBD-cubrid-9.0.0.0001.tar.gz&lt;/pre&gt;
&lt;h3&gt;Testing CUBRID Web Manager&lt;/h3&gt;
&lt;p&gt;&lt;b&gt;Recipe:&lt;/b&gt; &lt;a href=&quot;https://github.com/kadishmal/cubrid-cookbook#cubrid-web-manager&quot; target=&quot;_self&quot;&gt;web_manager&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;If you added &lt;b&gt;web_manager&lt;/b&gt;&amp;nbsp;recipe, you can access CUBRID Web Manager at &lt;a href=&quot;https://10.11.12.13:8282&quot; target=&quot;_self&quot;&gt;https://10.11.12.13:8282&lt;/a&gt;. Notice &lt;b&gt;HTTPS&lt;/b&gt;&amp;nbsp;and &lt;b&gt;8282&lt;/b&gt;&amp;nbsp;port.&amp;nbsp;The default username and password to connect to CUBRID Manager Server are &lt;b&gt;admin&lt;/b&gt;/&lt;b&gt;admin&lt;/b&gt;. Once you login for the first time, CWM will prompt you to change the password. Visit &lt;a href=&quot;/wiki_tools/entry/cubrid-web-manager&quot; target=&quot;_self&quot;&gt;CWM Wiki&lt;/a&gt; for more information and tutorials.&lt;/p&gt;
&lt;h3&gt;Establish SSH connection&lt;/h3&gt;
&lt;p&gt;You can connect to this VirtualBox VM using a shortcut command like:&lt;/p&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;$ vagrant ssh&lt;/pre&gt;
&lt;p&gt;That&apos;s all! It will login under&amp;nbsp;&lt;b&gt;vagrant&lt;/b&gt;&amp;nbsp;user automatically. You will have full access to the underlying OS, and can perform&amp;nbsp;&lt;b&gt;sudo&lt;/b&gt;&amp;nbsp;operations with no password.&lt;/p&gt;
&lt;h3&gt;Stop VM&lt;/h3&gt;
&lt;p&gt;To gracefully power off the VM, run the following command:&lt;/p&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;$ vagrant halt&lt;/pre&gt;
&lt;h3&gt;Start VM&lt;/h3&gt;
&lt;p&gt;To start the VM, run the same command we ran to bring up this VM.&lt;/p&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;$ vagrant up&lt;/pre&gt;
&lt;h3&gt;Change Vagrantfile configurations&lt;/h3&gt;
&lt;p&gt;When you had enough time to play with this VM, you may now want to extend it by installing additional software, or changing the host IP, forwarding host ports to guest ports, or doing&amp;nbsp;&lt;a href=&quot;http://docs.vagrantup.com/v1/docs/vagrantfile.html&quot; target=&quot;_self&quot;&gt;lots of other things&lt;/a&gt;. Once you have made changes, you need to reload your VM.&lt;/p&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;$ vagrant reload&lt;/pre&gt;
&lt;p&gt;This will simply reload your VM with the new configurations, new software, etc. If some of the software is already installed during the previous boot, Vagrant will not skip them. So, this process is relatively quick than building VM from scratch.&lt;/p&gt;
&lt;h3&gt;Delete VM&lt;/h3&gt;
&lt;p&gt;When you are done playing with this VM, you may finally decide to delete it. You can do this by running the following command:&lt;/p&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;$ vagrant destroy&lt;/pre&gt;
&lt;p&gt;Next time you hit &lt;code&gt;vagrant up&lt;/code&gt;&amp;nbsp;command, it will rebuild the VM from ground up.&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;Now you&apos;re ready to develop your applications based on CUBRID Database. At any time, you can clone this project, including the Vagrantfile and cookbooks directory, and start up a fresh VM with different versions of CUBRID.&lt;/p&gt;
&lt;p&gt;We have create two more related tutorials where you can learn how to create multiple VMs automatically with CUBRID installed on each of them and configure CUBRID HA and CUBRID SHARD. Refer to these tutorials.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;[Configure CUBRID HA with Vagrant and Chef Cookbook under 4 minutes]&lt;/li&gt;
&lt;li&gt;[Configure CUBRID SHARD with Vagrant and Chef Cookbook under 2 minutes]&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you have questions, feel free to ask at &lt;a href=&quot;/questions&quot; target=&quot;_self&quot;&gt;CUBRID Q&amp;amp;A&lt;/a&gt; site, &lt;a href=&quot;/forum&quot; target=&quot;_self&quot;&gt;forum&lt;/a&gt;, our &lt;a href=&quot;http://www.facebook.com/cubrid&quot; target=&quot;_self&quot;&gt;Facebook&lt;/a&gt; page, or &lt;a href=&quot;http://twitter.com/cubrid&quot; target=&quot;_self&quot;&gt;Twitter&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If you have issues or feature requests to&amp;nbsp;&lt;b&gt;cubrid-cookbook&lt;/b&gt;, &lt;a href=&quot;https://github.com/kadishmal/cubrid-cookbook/issues/new&quot; target=&quot;_self&quot;&gt;create a new issue&lt;/a&gt; at its Github repo.&lt;/p&gt;&lt;/div&gt;</content>
                  <category term="installation instructions"/>
            <category term="VM"/>
            <category term="Vagrant"/>
            <category term="Chef"/>
            <category term="cookbook"/>
            
   </entry>
   <entry>
      <title>Install CUBRID remotely with knife-solo and Chef Cookbook</title>
      <id>http://www.cubrid.org/582408</id>
      <published>2013-02-12T00:17:38-08:00</published>
      <updated>2013-03-06T03:51:51-08:00</updated>
      <link rel="alternate" type="text/html" href="http://www.cubrid.org/582408"/>
      <link rel="replies" type="text/html" href="http://www.cubrid.org/582408#comment"/>
      <author>
         <name>CUBRID</name>
                  <uri>http://www.cubrid.org</uri>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;This tutorial is a part of &lt;a href=&quot;https://github.com/kadishmal/cubrid-cookbook&quot;&gt;CUBRID Chef Cookbook&lt;/a&gt;&amp;nbsp;series where I show how to install CUBRID Database, its drivers and tools, and configure High-Availability and Database Sharding with a single command.&lt;/p&gt;
&lt;p&gt;Unlike in previuos tutorials, in this tutorial I will not use &lt;a href=&quot;/wiki_tutorials/entry/create-a-cubrid-database-vm-with-vagrant-and-chef-cookbook-under-5-minutes&quot;&gt;Vagrant&lt;/a&gt;. Instead, I will show how to install CUBRID on a remote Linux server using &lt;a href=&quot;https://github.com/matschaffer/knife-solo&quot;&gt;knife-solo&lt;/a&gt;, another great command line tool which allows to &lt;em&gt;cook&lt;/em&gt;&amp;nbsp;(i.e. install) cookbooks on remote machines. It&apos;s really easy, you will see!&lt;/p&gt;
&lt;h2&gt;Requirements&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;A remote Linux server which you can SSH. It can be a local virtual machine.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/matschaffer/knife-solo&quot;&gt;knife-solo&lt;/a&gt; installed via gem or source code on your working machine.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Getting Started&lt;/h2&gt;
&lt;p&gt;I will assume that you have already created a remote Linux server which you can connect to via SSH. Therefore I will directly show how to install knife-solo on your local development machine.&lt;/p&gt;
&lt;h3&gt;Install knife-solo prerequisites&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;knife-solo&lt;/strong&gt; is available in RubyGems repository, therefore it can be installed via gem. But in this tutorial we will install &lt;strong&gt;knife-solo&lt;/strong&gt; from its source code because the knife-solo gem on RubyGems is old. Actually it&apos;s just because the latest code in Github has not been released yet.&lt;/p&gt;
&lt;p&gt;To build and install knife-solo from the source code, we need &lt;strong&gt;gem&lt;/strong&gt; and &lt;strong&gt;bundler&lt;/strong&gt;&amp;nbsp;programs. If they&amp;nbsp;are already installed on your working machine, you can proceed to the next step. If they are not, you can install them as shown below.&lt;/p&gt;
&lt;h4&gt;Debian based Linux&lt;/h4&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;sudo apt-get install rubygems libxslt-dev libxml2-dev unzip git
sudo gem install bundler rdoc-data
sudo rdoc-data --install&lt;/pre&gt;
&lt;p&gt;This will install &lt;strong&gt;gem&lt;/strong&gt; program, XML libraries which&amp;nbsp;&lt;strong&gt;bundler&lt;/strong&gt; program depends on,&amp;nbsp;&lt;strong&gt;unzip&lt;/strong&gt;&amp;nbsp;necessary to extract knife-solo source code from ZIP archive, &lt;strong&gt;git&lt;/strong&gt;&amp;nbsp;necessary to download cookbooks,&amp;nbsp;&lt;strong&gt;bundler&lt;/strong&gt;&amp;nbsp;and &lt;strong&gt;rdoc-data&lt;/strong&gt;&amp;nbsp;gems.&lt;/p&gt;
&lt;h4&gt;RPM based Linux&lt;/h4&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;sudo yum install rubygems ruby-devel libxslt-devel libxml2-devel unzip git wget
 sudo gem install bundler rdoc-data
 sudo rdoc-data --install&lt;/pre&gt;
&lt;h3&gt;Build knife-solo&lt;/h3&gt;
&lt;pre class=&quot;brush:plain&quot;  title=&quot;&quot;&gt;wget https://github.com/matschaffer/knife-solo/archive/master.zip
unzip master*
cd knife-solo-master
sudo bundle
sudo bundle exec rake install&lt;/pre&gt;
&lt;p&gt;This will download the source ZIP from &lt;a href=&quot;https://github.com/matschaffer/knife-solo&quot;&gt;knife-solo Github repo&lt;/a&gt;, etract it, build the source, and install the generated &lt;strong&gt;knife-solo&lt;/strong&gt; gem.&lt;/p&gt;
&lt;h3&gt;Check knife-solo&lt;/h3&gt;
&lt;p&gt;Type the following command to check if knife-solo has been successfully installed. You should see something like:&lt;/p&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;~$ gem list | grep knife
knife-solo (0.2.0.pre2)&lt;/pre&gt;
&lt;h3&gt;Prepare the working directory structure&lt;/h3&gt;
&lt;p&gt;Once knife-solo is ready, we go and create a directory structure where we will be working.&lt;/p&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;cd
mkdir cubrid-knife
cd cubrid-knife
knife solo init .&lt;/pre&gt;
&lt;p&gt;This will create a &lt;strong&gt;cubrid-knife&lt;/strong&gt;&amp;nbsp;directory in your user home directory where knife-solo will initialize the working directory. The directory structure that knife-solo will create looks as follows:&lt;/p&gt;
&lt;pre class=&quot;brush:plain&quot;  title=&quot;&quot;&gt;/cookbooks
/data_bags
/nodes
/roles
/site-cookbooks
solo.rb&lt;/pre&gt;
&lt;h3&gt;Prepare the remote server&lt;/h3&gt;
&lt;p&gt;Once we have initialized the working directory on our local working machine, we need to &lt;strong&gt;prepare&lt;/strong&gt; our remote server. For this run &lt;code&gt;knife solo prepare&lt;/code&gt; command by specifying your remote server username and IP. In this case, my remote server username is &lt;strong&gt;user&lt;/strong&gt;, and remote server IP is &lt;strong&gt;192.168.85.138&lt;/strong&gt;. By default SSH port number which knife-solo will use to connect to your remote server is &lt;strong&gt;22&lt;/strong&gt;. If it is different from the default value, you can specify it with additional &lt;code&gt;-p&lt;/code&gt; option.&lt;/p&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;~$ knife solo prepare user@192.168.85.138
WARNING: No knife configuration file found
Bootstrapping Chef...
Enter the password for user@192.168.85.138: 
--2013-02-11 23:02:58--  https://www.opscode.com/chef/install.sh
Resolving www.opscode.com (www.opscode.com)... 184.106.28.83
Connecting to www.opscode.com (www.opscode.com)|184.106.28.83|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 6471 (6.3K) [application/x-sh]
Saving to: `install.sh&apos;

100%[======================================&amp;gt;] 6,471       --.-K/s   in 0s      

2013-02-11 23:02:59 (956 MB/s) - `install.sh&apos; saved [6471/6471]


Downloading Chef  for ubuntu...
Installing Chef 
Selecting previously unselected package chef.
(Reading database ... 24087 files and directories currently installed.)
Unpacking chef (from .../tmp.Afy1f2L1/chef__amd64.deb) ...
Setting up chef (11.2.0-1.ubuntu.11.04) ...
Thank you for installing Chef!
Generating node config &apos;nodes/192.168.85.138.json&apos;...&lt;/pre&gt;
&lt;p&gt;This will:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;prepare the remote Linux server by installing a &lt;a href=&quot;http://wiki.opscode.com/display/chef/Installing+Omnibus+Chef+Client+on+Linux+and+Mac&quot;&gt;Chef Client&lt;/a&gt;;&lt;/li&gt;
&lt;li&gt;generate a &lt;strong&gt;nodes/192.168.85.138.json&lt;/strong&gt;&amp;nbsp;configuration file for this particular remote server with an empty &lt;strong&gt;runlist&lt;/strong&gt; which means no cookbook will be installed until we populate the &lt;strong&gt;runlist&lt;/strong&gt; manually.&lt;br /&gt;
&lt;pre class=&quot;brush:plain&quot;  title=&quot;&quot;&gt;{&quot;run_list&quot;:[]} &lt;/pre&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Download necessary cookbooks&lt;/h3&gt;
&lt;p&gt;Now we can go and download all cookbooks we want to install on our remote Linux server. In this tutorial we will install the latest version of CUBRID Database Server, PHP, Python, and Perl drivers.&lt;/p&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;cd ~/cubrid-knife
git init
git submodule add https://github.com/kadishmal/cubrid-cookbook.git cookbooks/cubrid
git submodule add https://github.com/opscode-cookbooks/build-essential.git cookbooks/build-essential
git submodule add https://github.com/opscode-cookbooks/mysql.git cookbooks/mysql
git submodule add https://github.com/opscode-cookbooks/openssl.git cookbooks/openssl
git submodule add https://github.com/opscode-cookbooks/perl.git cookbooks/perl
git submodule add https://github.com/opscode-cookbooks/php.git cookbooks/php
git submodule add https://github.com/opscode-cookbooks/python.git cookbooks/python
git submodule add https://github.com/opscode-cookbooks/yum.git cookbooks/yum
git submodule add https://github.com/opscode-cookbooks/xml.git cookbooks/xml&lt;/pre&gt;
&lt;p&gt;This will clone each cookbook under &lt;strong&gt;cookbooks/&lt;/strong&gt;&amp;nbsp;directory.&lt;/p&gt;
&lt;h3&gt;Choose which cookbook to install&lt;/h3&gt;
&lt;p&gt;Once we have downloaded the cookbook, we need to tell knife-solo that we want to cook a particular cookbook. For this we need to add the&amp;nbsp;cookbook name to the &lt;strong&gt;runlist&lt;/strong&gt;. Edit the&amp;nbsp;&lt;strong&gt;nodes/192.168.85.138.json&lt;/strong&gt;&amp;nbsp;file as shown below.&lt;/p&gt;
&lt;pre class=&quot;brush:plain&quot;  title=&quot;&quot;&gt;{&quot;run_list&quot;:[
  &quot;cubrid&quot;,
  &quot;cubrid::demodb&quot;,
  &quot;cubrid::pdo_cubrid&quot;,
  &quot;cubrid::perl_driver&quot;,
  &quot;cubrid::php_driver&quot;,
  &quot;cubrid::python_driver&quot;,
  &quot;cubrid::web_manager&quot;
]}&lt;/pre&gt;
&lt;p&gt;This will tell knife-solo, which will tell to Chef installed on the remote server, to install CUBRID Database, its &lt;a href=&quot;/wiki_tutorials/entry/getting-started-with-demodb-cubrid-demo-database&quot;&gt;demodb&lt;/a&gt; database, PHP/PDO, Perl, and Python drivers, as well as CUBRID Web Manager, all from &lt;strong&gt;cubrid&lt;/strong&gt; cookbook that we have downloaded.&lt;/p&gt;
&lt;h3&gt;Cook the remote server&lt;/h3&gt;
&lt;p&gt;Now as we are ready to cook our remote Linux server, let&apos;s do it.&lt;/p&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;~$ knife solo cook user@192.168.85.138
Checking Chef version...
Enter the password for user@192.168.85.138: 
user@192.168.85.138&apos;s password: 
user@192.168.85.138&apos;s password: 
user@192.168.85.138&apos;s password: 

Starting Chef Client, version 11.2.0
Compiling Cookbooks...
Converging 58 resources
...
Chef Client finished, 48 resources updated&lt;/pre&gt;
&lt;p&gt;Bingo! You have installed CUBRID and all the necessary drivers and even a Web Manager on your remote server.&lt;/p&gt;
&lt;h3&gt;Testing CUBRID Web Manager&lt;/h3&gt;
&lt;p&gt;Let&apos;s access CUBRID Web Manager at &lt;a href=&quot;https://192.168.85.138:8282&quot;&gt;https://192.168.85.138:8282&lt;/a&gt;. Notice &lt;strong&gt;HTTPS&lt;/strong&gt; and &lt;strong&gt;8282&lt;/strong&gt; port. The default username and password to connect to CUBRID Manager Server are &lt;strong&gt;admin&lt;/strong&gt;/&lt;strong&gt;admin&lt;/strong&gt;. Once you login for the first time, CWM will prompt you to change the password. Visit &lt;a href=&quot;/wiki_tools/entry/cubrid-web-manager&quot;&gt;CWM Wiki&lt;/a&gt; for more information and tutorials.&lt;/p&gt;
&lt;h2&gt;Questions?&lt;/h2&gt;
&lt;p&gt;If you have questions, feel free to ask at &lt;a href=&quot;/wiki_tutorials/entry/questions&quot;&gt;CUBRID Q&amp;amp;A&lt;/a&gt; site, &lt;a href=&quot;/wiki_tutorials/entry/forum&quot;&gt;forum&lt;/a&gt;, our &lt;a href=&quot;http://www.facebook.com/cubrid&quot;&gt;Facebook&lt;/a&gt; page, &lt;a href=&quot;http://twitter.com/cubrid&quot;&gt;Twitter&lt;/a&gt;, or &lt;a href=&quot;http://webchat.freenode.net/?channels=cubrid&quot;&gt;online chat&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If you have issues or feature requests to &lt;strong&gt;cubrid-cookbook&lt;/strong&gt;, &lt;a href=&quot;https://github.com/kadishmal/cubrid-cookbook/issues/new&quot;&gt;create a new issue&lt;/a&gt; at its Github repo.&lt;/p&gt;&lt;/div&gt;</content>
                  <category term="installation instructions"/>
            <category term="cookbook"/>
            <category term="knife-solo"/>
            <category term="VM"/>
            <category term="Chef"/>
            
   </entry>
   <entry>
      <title>Change database user password</title>
      <id>http://www.cubrid.org/367317</id>
      <published>2012-05-29T21:10:35-07:00</published>
      <updated>2013-02-18T00:55:31-08:00</updated>
      <link rel="alternate" type="text/html" href="http://www.cubrid.org/367317"/>
      <link rel="replies" type="text/html" href="http://www.cubrid.org/367317#comment"/>
      <author>
         <name>Esen Sagynov</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;To change your database user password, execute the following SQL.&lt;/p&gt;
&lt;pre class=&quot;brush:sql;gutter:false&quot;  title=&quot;&quot;&gt;ALTER USER user_name PASSWORD &apos;any_password_here_in_single_quotes&apos;;&lt;/pre&gt;
&lt;p&gt;You may execute it using &lt;a target=&quot;_self&quot; href=&quot;/?mid=wiki_tutorials&amp;amp;act=TS&amp;amp;category=wiki&amp;amp;is_keyword=CSQL&quot;&gt;CSQL&lt;/a&gt; command line SQL Interpreter or &lt;a target=&quot;_self&quot; href=&quot;/wiki_tools/entry/cubrid-manager&quot;&gt;CUBRID Manager&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;CSQL Example&lt;/h3&gt;
&lt;p&gt;Before changing the password, make sure your database has been [Start or Autostart CUBRID Database|started].&lt;/p&gt;
&lt;pre class=&quot;brush:sql&quot;  title=&quot;&quot;&gt;~$ csql -u dba demodb
csql&amp;gt; ALTER USER dba PASSWORD &apos;my_new_pass&apos;;
Current transaction has been committed.
1 command(s) successfully processed.
csql&amp;gt;&lt;/pre&gt;
&lt;blockquote class=&quot;q4&quot;&gt;
&lt;p&gt;&lt;b&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;Remember&lt;/span&gt;&lt;/b&gt;&amp;nbsp;that in order to change a user password you need to be logged in as an admin user (or a user who has a permission to change a user password). In our case, &lt;b&gt;dba&lt;/b&gt;&amp;nbsp;is an admin user. Otherwise, you will get an error saying &quot;&lt;i&gt;UDPATE authorization failure&lt;/i&gt;&quot;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Alternatively, you can &lt;a target=&quot;_self&quot; href=&quot;/questions/235456#answer-236467&quot;&gt;set the database user password at the database creation time&lt;/a&gt;.&lt;/p&gt;
&lt;div style=&quot;display: none;&quot; id=&quot;endic_ext_wrapper&quot;&gt;&lt;/div&gt;
&lt;div style=&quot;display: none;&quot; id=&quot;endic_ext_wrapper&quot;&gt;&lt;/div&gt;&lt;/div&gt;</content>
                  <category term="CSQL"/>
            <category term="user management"/>
            <category term="permissions"/>
            
   </entry>
   <entry>
      <title>[Solved] Chef: NameError: Cannot find a resource for converge_by on centos</title>
      <id>http://www.cubrid.org/576686</id>
      <published>2013-02-05T23:57:05-08:00</published>
      <updated>2013-02-05T23:57:05-08:00</updated>
      <link rel="alternate" type="text/html" href="http://www.cubrid.org/576686"/>
      <link rel="replies" type="text/html" href="http://www.cubrid.org/576686#comment"/>
      <author>
         <name>Esen Sagynov</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;I was testing &lt;a href=&quot;https://github.com/kadishmal/cubrid-cookbook&quot;&gt;CUBRID Chef Cookbook&lt;/a&gt;&amp;nbsp;on CentOS 6.3 today using &lt;a href=&quot;/wiki_tutorials/entry/create-a-cubrid-database-vm-with-vagrant-and-chef-cookbook-under-5-minutes&quot;&gt;Vagrant&lt;/a&gt; tool when I encountered the following error with Chef 10.12.0:&lt;/p&gt;
&lt;p&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;FATAL: NameError: python_pip[virtualenv] (python::virtualenv line 23) had an error: NameError: Cannot find a resource for converge_by on centos version 6.3&lt;/pre&gt;
&lt;/p&gt;
&lt;h2&gt;Solution&lt;/h2&gt;
&lt;p&gt;The solution to this problem occured to be trivial:&amp;nbsp;&lt;strong&gt;converge_by&lt;/strong&gt;&amp;nbsp;resource has been introduced quite recently in a newer version of Chef. Therefore a simple update to Chef solved this problem.&lt;/p&gt;
&lt;p&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;sudo gem update chef ohai --no-ri --no-rdoc&lt;/pre&gt;
&lt;/p&gt;
&lt;p&gt;And the error is gone!&lt;/p&gt;&lt;/div&gt;</content>
                  <category term="Chef"/>
            <category term="Vagrant"/>
            <category term="cookbook"/>
            <category term="CentOS"/>
            
   </entry>
   <entry>
      <title>Error Messages and Troubleshooting</title>
      <id>http://www.cubrid.org/325825</id>
      <published>2012-04-12T04:45:07-07:00</published>
      <updated>2013-02-01T00:52:57-08:00</updated>
      <link rel="alternate" type="text/html" href="http://www.cubrid.org/325825"/>
      <link rel="replies" type="text/html" href="http://www.cubrid.org/325825#comment"/>
      <author>
         <name>Esen Sagynov</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;table cellpadding=&quot;0&quot; bordercolor=&quot;#545454&quot; cellspacing=&quot;0&quot; border=&quot;2&quot; style=&quot;width: 720px; table-layout: fixed; word-wrap: break-word;&quot;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;No&lt;/th&gt;&lt;th&gt;error message&lt;/th&gt;&lt;th&gt;state&lt;/th&gt;&lt;th&gt;component&lt;/th&gt;&lt;th&gt;version&lt;/th&gt;&lt;th&gt;cause(extract posting)&lt;/th&gt;&lt;th&gt;solution&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr align=&quot;CENTER&quot;&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;1&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;ERROR [CA001] [CUBRID][CUBRID ODBC Driver]Transaction(index1, dba@localhost|20383) has been unilaterally aborted by the system.&lt;br /&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;During Inserting records&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;Engine&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;CUBRID 2008&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;Occurs when DB server is forcely terminated.&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;There are various reasons which terminated server or causes disconnection. (EX: deadlock) &lt;br /&gt;Please check the logs if a problem occurs at the moment. &lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align=&quot;CENTER&quot;&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;2&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;-2003 Cannot communicate with broker &lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt; When CUBRID Manager&apos;s JDBC version is incompatible with DB server version.&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;CM&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;CUBRID 2008 R2.2&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;JDBC driver should be same as server version&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;choose aright version of JDBC driver in CUBRID Manager and retry to connect&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align=&quot;CENTER&quot;&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;3&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;A network read/write error occurred for socket 5 associated with your transaction (index 2, root@master|17705)&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;
&lt;p style=&quot;line-height: 1.2;&quot;&gt;Cannot start server after deleting 170,000 rows by DELETE ALL statement.&lt;/p&gt;
&lt;a href=&quot;http://www.cubrid.com/zbxe/88072&quot;&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;Engine&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;CUBRID 2008&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;When DB process is terminated abnormally, the previous logs remains still unclearly. &lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;On the console, run the following commands. &lt;br /&gt;1) csql -S DB_NAME&lt;br /&gt;&lt;br /&gt;2)  cubrid emergency_patchlog DB_NAME&lt;br /&gt;&lt;br /&gt;3) cubrid emergency_patchlog -r DB_NAME&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align=&quot;CENTER&quot;&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;4&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;serial object delete error&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;Cannot DROP SERIAL when deleting a table. &lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;Engine&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;CUBRID 2008 R3.0&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;A bug was found in CUBRID 8.3.0 or lower versions. SERIAL should be dropped with a table together.&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;A bug fixed. &lt;br /&gt;As long as you are an owner of objects, SERIALs drops when deleting a table. &lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align=&quot;CENTER&quot;&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;5&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;Cannot connect to master server... bad file descriptor &lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;On Windows7 32 bits, cannot start DB server.&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;Engine&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;CUBRID 2008&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;Among cubrid service, cub_master seems not running&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;On the console, &lt;br /&gt;1) cubrid service stop&lt;br /&gt;2) cubrid service start&lt;br /&gt;See if every process is on. &lt;br /&gt;3) cubrid server start&lt;br /&gt;See if a process is not running, see the log file (*_master) in  CUBRID/log/ directory and server logs( DB_NAME*) in CUBRID/log/server directory &lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align=&quot;CENTER&quot;&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;6&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;C:&amp;#92;CUBRID&amp;#92;databases&amp;#92;&lt;db_name&gt;&amp;#92;backup&amp;#92;&lt;db_name&gt;_backup_lv0 is a backup of database &lt;db_name&gt;&lt;db_name&gt;created on Mon Apr 11 15:41:49 2011 instead of given database C:&amp;#92;CUBRID&amp;#92;DATABA~1&amp;#92;&lt;db_name&gt;&amp;#92;&lt;db_name&gt; created on Wed Apr 20 16:13:47 2011&lt;/db_name&gt;&lt;/db_name&gt;&lt;/db_name&gt;&lt;/db_name&gt;&lt;/db_name&gt;&lt;/db_name&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;After DB backup in the old version, I removed CUBRID in the system. Then I installed CUBRID server and tried restoring. &lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;Engine&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;CUBRID 2008  R3.1&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;The error occurs when restoring a backup file which cannot read in a new version.&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;Althugh you have only DB backup file without DB and other files, you can restore only when DB server version and file directory is as same as old environment.&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align=&quot;CENTER&quot;&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;7&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;ERROR  -673  0  1  Your connection to the server has been closed since the server is going down immediately&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;After creating a DB, I cannot create a table even if I logged-in&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;Engine&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;CUBRID 2008  R3.1&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;This error occurs when the DB server is terminated.&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;On the console, run a command. &lt;br /&gt;cubrid server start&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align=&quot;CENTER&quot;&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;8&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;@ cubrid master start ++ cubrid master start: success&lt;br /&gt;@ cubrid broker start ++ cubrid broker is running.&lt;br /&gt;@ cubrid manager server start bind: Address already in use bind: Address already in use ++ cubrid manager server start: fail&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;I messed up installation. I installed CUBRID new version while curbid service is on runnning. &lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;Engine&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;CUBRID 2008  R2.2 &lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;Linux account that you installed a old CUBRID is not same as that of a new version. &lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;On the console, run a following command. &lt;br /&gt;ps -ef | grep cub_&lt;br /&gt;&lt;br /&gt;Then kill cubridrelated processes.&lt;br /&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align=&quot;CENTER&quot;&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt; &lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt; &lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;. &lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt; &lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align=&quot;CENTER&quot;&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;10&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;Unable to mount disk volume &quot;directory/file(lgar)&quot;... . No such file or directory&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt; lgar files are not deleted after cubrid backup -r option. The error occurs when trying backup after moving log files.&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;Engine&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;CUBRID 2008&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;In When DB process is terminated abnormally, the previous logs remains still unclearly. &lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt; On the console, &lt;br /&gt;1) cubrid service stop&lt;br /&gt;2) cubrid service start&lt;br /&gt;See if every process is on. &lt;br /&gt;3) cubrid server start&lt;br /&gt;See if a process is not running, see the log file (*_master) in  CUBRID/log/ directory and server logs( DB_NAME*) in CUBRID/log/server directory &lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align=&quot;CENTER&quot;&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;11&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;SqlMapClient operation; uncategorized SQLException for SQL []; SQL state [null]; error code [-670]&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt; When a specific method is executed, an error occurs&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;Framework&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;-&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;Error code: 670 is &quot;Operation would have caused one or more unique constraint violations&quot;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;A certain SQL violates UNIQUE constraints. Search SQL causing -670 error under  $CUBRID/log/broker/sql_log/ &lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align=&quot;CENTER&quot;&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;12&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;-2147467259 : Your transaction (index 23, dba@localhost|28478) has been unilaterally aborted by the system.&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;Engine&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;CUBRID 2008  3.0&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;Occurs when DB server is forcely terminated.&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;There are various reasons which terminated server or causes disconnection. (EX: deadlock)  Avoid deadlock with short transaction and low isolation level.&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align=&quot;CENTER&quot;&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;13&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;Attempt to execute the query when not all the parameters are binded&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;During SELECT execution, an error occurs.&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;Engine&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;CUBRID 2008&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;Occurs when the number of parameters are not matched to your binding values. &lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;When binding values, it should one to one match to parameters in the SQL.&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align=&quot;CENTER&quot;&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;14&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;ERROR -33 5 47 Last out of space notification for volumes with temporary data as the main storage purpose. Total number of pages = 20480, total number of free pages = -25&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;I have found an error in the server log file. The fast query turns slower all of sudden. &lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;Engine&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;-&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;DB temp volume is out of space.&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;Temp volume is mostly used to execute JOIN, Sorting.  &lt;br /&gt;Run a following command on the console. &lt;br /&gt;cubrid addvoldb -p temp DB_NAME &lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align=&quot;CENTER&quot;&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;15&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;Server no longer responding.... Resource temporarily unavailable *** &lt;br /&gt;&lt;br /&gt;Unable to mount log disk volume/file &quot;/data/cubrid/db_svr2/db_lgat&quot;.... &lt;br /&gt;No such file or directory&lt;br /&gt;&lt;br /&gt;Your connection to the server has been closed since the server is going down immediately.&lt;br /&gt;&lt;br /&gt;CLIENT = svr1:copylogdb(21448), EID = 2 Has been interrupted.&lt;br /&gt;&lt;br /&gt;CLIENT = svr1:copylogdb(21448), EID = 3 Server communications error: connection status: CONN_CLOSING&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;After upgrading to 8.3.1, cannot connect to DB.&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;Engine, HA&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;CUBRID 2008  R3.1&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;In the conf, there is &amp;lt;common&amp;gt; section and &amp;lt;db&amp;gt; section. &lt;br /&gt;Your server conf file says log_page_buffer paraeter is located in &amp;lt;db&amp;gt; section however it is supposed to be &amp;lt;common&amp;gt; section. &lt;br /&gt;Since HA process cannot read &amp;lt;db&amp;gt; section parameters, they couldn&apos;t boot up and the master server stays as &quot;to-be-active&apos; state. &lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;Edit cubrid.conf file. &lt;br /&gt;Put log_page_buffer parameter to &amp;lt;common&amp;gt; section and then restart server. &lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align=&quot;CENTER&quot;&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;16&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt; Can&apos;t start up the distributor database. ############ Stopped by error... ############&lt;br /&gt;Cannot make connection to master server.&lt;br /&gt;&lt;br /&gt;getting local host by name for host &quot;TEST-S&quot;. Host not found.&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;Engine, HA&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;CUBRID 2008  3.0&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;The host names belonging to HA nodes shouldbe configured correctly. &lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;See the /etc/hosts file if host name is correctly registered.&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align=&quot;CENTER&quot;&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;17&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;This object is in a zombie state&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;Occurs in the ASP application having a logic of loop 1 loop 2 end end &lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;Engine, ASP&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;CUBRID 2008 3.1 patch1&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;Error occurs when the 1st query is closed  automatically when the 2nd query is running in the nested query.&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;Set AutoCommit=False and &lt;br /&gt;create 2 connections to execute a query on each. &lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align=&quot;CENTER&quot;&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;18&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;cubrid.jdbc.driver.CUBRIDException: Attempt to access a closed ResultSet. at cubrid.jdbc.driver.CUBRIDResultSet.checkIsOpen(CUBRIDResultSet.java:1648) at cubrid.jdbc.driver.CUBRIDResultSet.findColumn(CUBRIDResultSet.java:670) at cubrid.jdbc.driver.CUBRIDResultSet.getString(CUBRIDResultSet.java:559) at jeemin.Test1.main(Test1.java:28)&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;Occurs in the JDBC application having a loop&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;Engine, Java&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;CUBRID 2008  R2&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;Error occurs when the 1st ResultSet is closed in the loop&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;When using a nested query, set connection.setAutoCommit(false)&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align=&quot;CENTER&quot;&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;19&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;-899 Stored procedure execute error: java.lang.NullPointerException&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;Occurs when executing Java Stored Procedure. &lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;Engine, Java Store Procedure&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;CUBRID 2008&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;Procedure information should match to class file and function names. &lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;Check if a simple typo exists in your procedure, comparing with class files and function names.&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align=&quot;CENTER&quot;&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;20&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;Java VM is not running&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;Occurs when executing Java Stored Procedure.&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;Engine, Java Store Procedure&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;CUBRID 2008&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;JAVA VM is not running. See if jvm.dll setting. &lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;See JAVA_HOME and PATH settings if jvm.dll is in PATH. &lt;br /&gt;After setting, you should restart cubrid. &lt;br /&gt;&lt;br /&gt;cubrid service stop&lt;br /&gt;cubrid service start&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align=&quot;CENTER&quot;&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;21&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;Warning: Error: DBMS, 0, Unknown DBMS error &lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt; I can connect to DB via CUBRID Manager, but not my PHP application.&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;Engine, PHP&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;CUBRID 2008&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;Error occurs when cannot conenct to a DB. &lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;Start a DB and see if your connection information9broker IP and port) is correct in your PHP. &lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align=&quot;CENTER&quot;&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;22&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;Warning -&amp;gt; Current user(0) does not match CUBRID user(501).    Server may have unpredictable behavior. Continuing... Warning -&amp;gt; Current user(0) does not match CUBRID user(501).    Server may have unpredictable behavior. Continuing... Error : Server[pid=2546] already running. Error : Server[pid=2549] already running. ++ cubrid manager server start: fail&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt; When I start cubrid manager, error occurred. &lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;CM&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;CUBRID 2008 3.0&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;See the Linux account and CUBRID installation account with permission.&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;Check the user account info of &quot;cub_&quot; processes and set a right user permission. &lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align=&quot;CENTER&quot;&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;23&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;.  Failed to connect to database server, &apos;UPS&apos;, on the followiong host(s): localhost compactdb : Failed to connect to database server, &apos;UPS&apos;, on the following host(s):localhost.&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;When run compactdb via CUBRID Manager, it failed.&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;CM&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;CUBRID 2008  3.1 patch 1&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;Bug only in CUBRID Manager. You can run command on console.&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;If DB is offline, cubrid compactdb -S &amp;lt;DB_NAME&amp;gt;&lt;br /&gt;&lt;br /&gt;If DB is online,&lt;br /&gt;cubrid compactdb  &amp;lt;DB_NAME&amp;gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align=&quot;CENTER&quot;&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;24&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;Cannot get a connection. Check the status of broker and DB server. &lt;/span&gt;&lt;/td&gt;
&lt;td&gt;
&lt;p style=&quot;line-height: 1.2;&quot;&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;After I upgraded DB server vesion, DB Log-in failed via CUBRID Manager&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;CM&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;CUBRID 2008  R3.1 1002&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;JDBC version used in CUBRID Manager should be same as DB server&apos;s version.&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;Find a&amp;nbsp;right version of JDBC and set it in CM. &lt;br /&gt;&lt;a href=&quot;http://ftp.cubrid.org/CUBRID_Drivers/JDBC_Driver/&quot;&gt;http://ftp.cubrid.org/CUBRID_Drivers/JDBC_Driver/&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align=&quot;CENTER&quot;&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;25&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;Cannot get a connection. Check the status of broker and DB server. &lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;I can log-in to DB via local CM however I cannot connect to the DB via a remote CM.&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;CM&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;CUBRID 2008 &lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;CM in a remote cannot get thru DB server. See the Firewall in CUBRID DB server host.&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;Disable or re-set the firewall and check CUBRID and CUBRD Manager&amp;nbsp;using ports are all open. &lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align=&quot;CENTER&quot;&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;26&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;PHP Startup: Unable to load dynamic library &apos;/usr/lib/php/modules/cubrid.so&apos; - libcascci.so.8: cannot open shared object file: No such file or directory in Unknown on line 0&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;I cannot load the PHP module successfully.&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;PHP&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;-&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;If you build PHP module, Linux user should be as same as CUBRID Installation user.&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;
&lt;p style=&quot;line-height: 1.2;&quot;&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;See the tutorial how to build PHP module, it is easy to use PECL &lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;line-height: 1.2;&quot;&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;&lt;a href=&quot;/wiki_apis/entry/php_api_build_guide&quot;&gt;http://www.cubrid.org/wiki_apis/entry/php_api_build_guide&lt;/a&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align=&quot;CENTER&quot;&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;27&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;NativeException: java.lang.ClassNotFoundException: cubrid/jdbc/driver/CUBRIDDriver &lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;Class.forName(&quot;cubrid.jdbc.driver.CUBRIDDriver&quot;) cannot find a driver. &lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;Java&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;CUBRID 2008  R2.2.3002 &lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;See&amp;nbsp;if &amp;nbsp;JAVA class path is correctly configured.&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;$ CUBRID / jdbc / cubrid_jdbc.jar should be set to CLASSPATH. See the manual.&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align=&quot;CENTER&quot;&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;28&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;PHP Warning:  Unknown(): Unable to load dynamic library &apos;./cubird.so&apos; - ./cubird.so: cannot open shared object file: No such file or directory in Unknown on line 0&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;Doesn&apos;t work with CUBRID PHP driver.&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;PHP&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;CUBRID 2008&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;1. See if extension_dir is correctly configured in the php.ini. &lt;br /&gt;2. CUBRID php module should link with libcascci.so (CCI driver). Your&amp;nbsp;PHP cannot&amp;nbsp;find CCI in the system&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;1. extension_dir should address &quot;cubrid.so&quot; file. &lt;br /&gt;2. cubrid.so refers to libcascci.so. See if cubrid.so links with libcascci.so by &quot;ldd cubrid.so&quot; command&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align=&quot;CENTER&quot;&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;29&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;main.c:(.text+0x69): undefined reference to `cci_connect_3_0&apos;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;When building the source, error occurs.&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;CCI&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;CUBRID 2008  R3.1&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;The option for CCI driver can be added&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;Use the option, -L$CUBRID/lib-lcascci &lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align=&quot;CENTER&quot;&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;30&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;/usr/bin/ld: cannot find -lcascci&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;When running $ gcc -L$CUBRID/lib-lcascci a.c -o a, cannot find CCI library&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;CCI&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;CUBRID 2008 R3.1&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;Error occurs since the library was not found.&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;1)&amp;nbsp; Check $CUBRID/lib directory if libcascci.so exists. &lt;br /&gt;2) Check if CUBRID environment variables are correctly configured.&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align=&quot;CENTER&quot;&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;31&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;Attempt to access a closed ResultSet(PreparedStatement)&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;To keep using a ResultSet in the following queries, error occurs.&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;Engine&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;CUBRID 2008&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;ResultSet to fetch has been already closed. &lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;The prior ResultSet was closed because cutoCommit is true. If you re-use the 1st ResultSet, change the setting to &quot;False&quot; and add Commit/Rollback in the end for each transaction. &lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align=&quot;CENTER&quot;&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;32&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;PHP Startup: Unable to load dynamic library &lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;I have already set php.ini, but I cannot execute queries.&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;PHP&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;CUBRID 2008 R4.0&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;*.dll file cannot be loaded.&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;Check your PHP version and OS version. In the directory, only a right version of PHP driver should exist. &lt;br /&gt;&lt;a href=&quot;http://ftp.cubrid.org/CUBRID_Drivers/PHP_Driver/&quot;&gt;http://ftp.cubrid.org/CUBRID_Drivers/PHP_Driver/&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align=&quot;CENTER&quot;&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;33&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;Backup is already running. Backup cannot be run by two processes.&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;When trying DB backup in CURBID Manager, error occurs.&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;Windows 2008&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;CUBRID 2008 R2.2&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;While DB bakcup is already running, you cannot perform backup at the same time.&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;1. Check if other DBA or&amp;nbsp;automated script has already run DB backup. 2. If not, kill a prior backup process. &lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align=&quot;CENTER&quot;&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;34&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;Cannot create enough threads for &apos;max_clients=100&apos;.&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;In&amp;nbsp;cubrid.conf, I configured java_stored_procedure=yes to use Java stored procedure. Then, error occurs.&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;CentOS&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;CUBRID 2008 R4.0&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;In the 32bit server, it can possibly limit due to lack of memory.&amp;nbsp; &lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;1. Change the server to 64bit&lt;br /&gt;2.&amp;nbsp;Run a command to limit memory stack size: &lt;br /&gt;ulmit -s 5120&amp;nbsp;&amp;nbsp;&lt;br /&gt;3. Set max_clients in cubrid.conf to lower value.&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align=&quot;CENTER&quot;&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;35&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;mktemp: invalid option -- p Usage: mktemp [-d] [-q] [-u] template tar: ../CUBRID-product.tar: Cannot open: tar: Error is not recoverable: exiting now&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;During CUBRID DB server installation, error occurs. &amp;nbsp;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;Linux&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;CUBRID 2008 R4.1&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;In your system, there is no mktemp library. &lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;Check if the library is installed in your system with a command: &lt;br /&gt;pm -qa | grep mktemp&lt;br /&gt;If not exists, add or upgrade your OS. &lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr align=&quot;CENTER&quot;&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;36&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;configure: error: /home/cubrid/CUBRID/lib/libcascci.so Please set CUBRID base install dir with --with-cubrid=DIR&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;During CUBRID PHP driver installation, error occurs.&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;CentOS&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;CUBRID 2008 R4.1&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;OS bit, CUBRID bit, PHP bit mismatches.&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;Chekc if the bit of OS / CUBRID / PHP is all same. &lt;br /&gt;&lt;a href=&quot;http://ftp.cubrid.org/&quot;&gt;http://ftp.cubrid.org/&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table cellpadding=&quot;0&quot; bordercolor=&quot;#545454&quot; cellspacing=&quot;0&quot; border=&quot;2&quot; style=&quot;width: 720px; table-layout: fixed; word-wrap: break-word;&quot;&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 나눔고딕; font-size: x-small;&quot;&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;</content>
                  <category term="error_message"/>
            <category term="Error codes"/>
            
   </entry>
   <entry>
      <title>Configure CUBRID HA with Vagrant and Chef Cookbook under 4 minutes</title>
      <id>http://www.cubrid.org/543504</id>
      <published>2013-01-04T00:19:00-08:00</published>
      <updated>2013-01-31T23:46:10-08:00</updated>
      <link rel="alternate" type="text/html" href="http://www.cubrid.org/543504"/>
      <link rel="replies" type="text/html" href="http://www.cubrid.org/543504#comment"/>
      <author>
         <name>Esen Sagynov</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;This is a follow up tutorial for [Create a CUBRID Database VM with Vagrant and Chef Cookbook under 5 minutes]. Therefore I will assume you have read the previous tutorial as this one will be a continuation of it.&lt;/p&gt;
&lt;p&gt;In this tutorial I will show how to create multiple VMs automatically with CUBRID installed on each of them and have them configured in one HA group. I will tell you that with Vagrant and Chef Cookbook it is as easy as running &lt;code&gt;vagrant up&lt;/code&gt; and waiting for 4-5 minutes until everything gets set up.&lt;/p&gt;
&lt;h2&gt;Requirements&lt;/h2&gt;
&lt;p&gt;Requirements are the same as in the first tutorial. Refer to it for details. In short, you need VirtualBox and Vagrant installed.&lt;/p&gt;
&lt;h2&gt;Vagrantfile&lt;/h2&gt;
&lt;p&gt;If you have not already downloaded &lt;a href=&quot;http://sourceforge.net/projects/cubrid/files/CUBRID-AppsTools/CUBRID_Vagrant_VM/cubrid-vagrant-1.5.1.tar.gz/download&quot; target=&quot;_self&quot;&gt;cubrid-vagrant-1.5.1.tar.gz&lt;/a&gt; (211KB), do it now (&lt;i&gt;or check the latest version from &lt;a href=&quot;https://sourceforge.net/projects/cubrid/files/CUBRID-AppsTools/CUBRID_Vagrant_VM/&quot; target=&quot;_self&quot;&gt;Sf.net repo&lt;/a&gt;&lt;/i&gt;). You will find everything ready for you in that archive. Refer to the [Create a CUBRID Database VM with Vagrant and Chef Cookbook under 5 minutes |previous tutorial] for details on what is included.&lt;/p&gt;
&lt;p&gt;Now for this tutorial to configure CUBRID HA on multiple VMs, we will add a few more configuration options to our &lt;i&gt;Vagrantfile&lt;/i&gt;&amp;nbsp;which comes by default in that archive.&lt;/p&gt;
&lt;pre class=&quot;brush:plain&quot;  title=&quot;&quot;&gt;# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant::Config.run do |config|
  config.vm.box_url = &quot;http://files.vagrantup.com/precise64.box&quot;
  config.vm.box = &quot;precise64&quot; # Ubuntu 12.04 x64

  config.vm.define :node1 do |node1_config|
    node1_config.vm.host_name = &quot;node1&quot;
    node1_config.vm.network :hostonly, &quot;10.11.12.13&quot;
  end

  config.vm.define :node2 do |node2_config|
    node2_config.vm.host_name = &quot;node2&quot;
    node2_config.vm.network :hostonly, &quot;10.11.12.14&quot;
  end

  config.vm.customize [&quot;modifyvm&quot;, :id, &quot;--memory&quot;, 800]

  config.vm.provision :chef_solo do |chef|
    chef.cookbooks_path = &quot;cookbooks&quot;

    chef.json = {
        &quot;cubrid&quot; =&amp;gt; {
            &quot;version&quot; =&amp;gt; &quot;8.4.3&quot;,
            &quot;ha_dbs&quot; =&amp;gt; [&quot;ha_test_db&quot;],
            &quot;ha_hosts&quot; =&amp;gt; {&quot;node1&quot; =&amp;gt; &quot;10.11.12.13&quot;, &quot;node2&quot; =&amp;gt; &quot;10.11.12.14&quot;}
        }
    }

    chef.add_recipe &quot;cubrid&quot;
    chef.add_recipe &quot;cubrid::ha&quot;
  end
end&lt;/pre&gt;
&lt;p&gt;I have removed the comments this time so that you can see the real code more prominently.&lt;/p&gt;
&lt;h3&gt;Number of VMs&lt;/h3&gt;
&lt;p&gt;The first thing to take care in this scenario is to define how many VMs (&lt;i&gt;hosts&lt;/i&gt;) we would like to run in this HA environment. No matter how many, each host will run an independent CUBRID Server node. Later all these hosts will join in one &lt;a href=&quot;/manual/843/en/Groups%20and%20Nodes&quot; target=&quot;_self&quot;&gt;HA group&lt;/a&gt;&amp;nbsp;and provide auto failover between themselves.&lt;/p&gt;
&lt;p&gt;In the above &lt;i&gt;Vagrantfile&lt;/i&gt;&amp;nbsp;you can notice the following lines:&lt;/p&gt;
&lt;pre class=&quot;brush:plain&quot;  title=&quot;&quot;&gt;config.vm.define :node1 do |node1_config|
   node1_config.vm.host_name = &quot;node1&quot;
   node1_config.vm.network :hostonly, &quot;10.11.12.13&quot;
 end

 config.vm.define :node2 do |node2_config|
   node2_config.vm.host_name = &quot;node2&quot;
   node2_config.vm.network :hostonly, &quot;10.11.12.14&quot;
 end&lt;/pre&gt;
&lt;p&gt;This means that we want Vagrant to build for us &lt;b&gt;two&lt;/b&gt; VMs. The first VM should be distinguished by &lt;b&gt;node1&lt;/b&gt;&amp;nbsp;name and should be assigned &lt;b&gt;10.11.12.13&lt;/b&gt; IP address. The second VM will have a hostname &lt;b&gt;node2&lt;/b&gt;&amp;nbsp;with an IP &lt;b&gt;10.11.12.14&lt;/b&gt;. In this example both hostname and IP are arbitrary, i.e. you can set your own, but you should remember to set IP within the same netmask (&lt;i&gt;refer to &lt;a href=&quot;http://docs.vagrantup.com/v1/docs/host_only_networking.html&quot; target=&quot;_self&quot;&gt;Multiple Networks in Vagrant&lt;/a&gt; for details&lt;/i&gt;).&lt;/p&gt;
&lt;p&gt;This is how you define the number of VMs to start up. The first VM which gets configured and started will become &lt;b&gt;&quot;master&quot;&lt;/b&gt;&amp;nbsp;in CUBRID HA, while other VM hosts will become &lt;b&gt;&quot;slaves&quot;&lt;/b&gt;.&lt;/p&gt;
&lt;h3&gt;VM memory size&lt;/h3&gt;
&lt;p&gt;In this example we set each VM to have 800MB RAM. This is enough, though you can set lower or higher values.&lt;/p&gt;
&lt;pre class=&quot;brush:plain&quot;  title=&quot;&quot;&gt;config.vm.customize [&quot;modifyvm&quot;, :id, &quot;--memory&quot;, 800]&lt;/pre&gt;
&lt;p&gt;If you need to have different memory on each VM, you can do so by specifying this same property when you &lt;i&gt;define&lt;/i&gt; each VM.&lt;/p&gt;
&lt;h3&gt;Configure CUBRID HA&lt;/h3&gt;
&lt;pre class=&quot;brush:plain&quot;  title=&quot;&quot;&gt;chef.json = {
    &quot;cubrid&quot; =&amp;gt; {
        &quot;version&quot; =&amp;gt; &quot;8.4.3&quot;,
        &quot;ha_dbs&quot; =&amp;gt; [&quot;ha_test_db&quot;],
        &quot;ha_hosts&quot; =&amp;gt; {&quot;node1&quot; =&amp;gt; &quot;10.11.12.13&quot;, &quot;node2&quot; =&amp;gt; &quot;10.11.12.14&quot;}
    }
}

chef.add_recipe &quot;cubrid&quot;
chef.add_recipe &quot;cubrid::ha&quot;&lt;/pre&gt;
&lt;ol&gt;
&lt;li&gt;First of all, you need to add &quot;&lt;b&gt;cubrid::ha&lt;/b&gt;&quot; recipe to have CUBRID HA configured.&lt;/li&gt;
&lt;li&gt;Second, you need to provide&amp;nbsp;a list of hosts and IPs which should join the same HA group. For this override &lt;code&gt;ha_hosts&lt;/code&gt; attribute. These hosts and IPs &lt;b&gt;must&lt;/b&gt;&amp;nbsp;be identical to those you have defined for each VM above.&lt;/li&gt;
&lt;li&gt;Then, optionally, you can override &lt;code&gt;ha_dbs&lt;/code&gt; attribute by providing an array of database names to create and sync in HA. By default it will create one database called &lt;b&gt;testdb&lt;/b&gt;.&lt;/li&gt;
&lt;li&gt;Also, you can&amp;nbsp;optionally&amp;nbsp;override &lt;code&gt;ha_group&lt;/code&gt; attribute which defaults to &lt;b&gt;cubrid&lt;/b&gt;. This is the HA group all hosts will join. You can set any arbitrary value.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;That is all you need to configure CUBRID HA. Now let&apos;s go and bring up CUBRID HA.&lt;/p&gt;
&lt;h2&gt;Vagrant Box&lt;/h2&gt;
&lt;p&gt;I will assume that you have already added &lt;b&gt;precise64&lt;/b&gt; (&lt;i&gt;Ubuntu 12.04 LTS x64&lt;/i&gt;) Vagrant box. If you haven&apos;t, see the [Create a CUBRID Database VM with Vagrant and Chef Cookbook under 5 minutes|previous tutorial].&lt;/p&gt;
&lt;h2&gt;Start Up Vagrant&lt;/h2&gt;
&lt;p&gt;Run the following command to start Vagrant:&lt;/p&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;$ vagrant up&lt;/pre&gt;
&lt;p&gt;Wait some 4-5 minutes and you will have your VMs up and running in HA environment.&lt;/p&gt;
&lt;h2&gt;Test CUBRID HA&lt;/h2&gt;
&lt;h3&gt;Validate CUBRID HA&lt;/h3&gt;
&lt;p&gt;Let&apos;s first validate and see if CUBRID HA has been properly configured.&lt;/p&gt;
&lt;h4&gt;Open SSH connection&lt;/h4&gt;
&lt;p&gt;For this we will open SSH connection and login to the first &lt;b&gt;node1&lt;/b&gt;&amp;nbsp;VM. Remember, the first VM which got started becomes &lt;b&gt;master&lt;/b&gt;&amp;nbsp;while the rest become &lt;b&gt;slaves&lt;/b&gt;.&lt;/p&gt;
&lt;pre class=&quot;brush:plain&quot;  title=&quot;&quot;&gt;$ vagrant ssh node1
Welcome to Ubuntu 12.04 LTS (GNU/Linux 3.2.0-23-generic x86_64)

 * Documentation:  https://help.ubuntu.com/

100 packages can be updated.
50 updates are security updates.

Welcome to your Vagrant-built virtual machine.
Last login: Thu Jan  3 06:46:49 2013 from 10.0.2.2
vagrant@node1:~$&lt;/pre&gt;
&lt;p&gt;To connect to other nodes, simply change the node name as:&lt;/p&gt;
&lt;pre class=&quot;brush:plain&quot;  title=&quot;&quot;&gt;$ vagrant ssh node2&lt;/pre&gt;
&lt;h4&gt;Check CUBRID Service status&lt;/h4&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;vagrant@node1:~$ cubrid service status
@ cubrid master status
++ cubrid master is running.
@ cubrid server status
 HA-Server ha_test_db (rel 8.4, pid 1423)
@ cubrid broker status
  NAME           PID  PORT  AS  JQ      REQ  TPS  QPS    LONG-T    LONG-Q  ERR-Q
================================================================================
* query_editor  1641 30000   5   0        0    0    0    0/60.0    0/60.0      0
* broker1       1651 33000   5   0        0    0    0    0/60.0    0/60.0      0
@ cubrid manager server status
++ cubrid manager server is running.
vagrant@node1:~$&lt;/pre&gt;
&lt;p&gt;We can notice that CUBRID Service is running and our &lt;b&gt;ha_test_db&lt;/b&gt;&amp;nbsp;database has been successfully started. You should see the same result if you execute this command on other nodes.&lt;/p&gt;
&lt;h4&gt;Check CUBRID Heartbeat status&lt;/h4&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;vagrant@node1:~$ cubrid heartbeat status
@ cubrid heartbeat list

 HA-Node Info (current node1, state master)
   Node node2 (priority 2, state slave)
   Node node1 (priority 1, state master)


 HA-Process Info (master 1224, state master)
   Applylogdb ha_test_db@localhost:/opt/cubrid/databases/ha_test_db_node2 (pid 1559, state registered)
   Copylogdb ha_test_db@node2:/opt/cubrid/databases/ha_test_db_node2 (pid 1557, state registered)
   Server ha_test_db (pid 1230, state registered_and_active)

vagrant@node1:~$ &lt;/pre&gt;
&lt;ol&gt;
&lt;li&gt;Notice that our &lt;b&gt;node1&lt;/b&gt;&amp;nbsp;states that it is &lt;i&gt;master&lt;/i&gt;&amp;nbsp;while &lt;b&gt;node2&lt;/b&gt;&amp;nbsp;is &lt;i&gt;slave&lt;/i&gt;.&lt;/li&gt;
&lt;li&gt;We can also notice that &lt;a href=&quot;/manual/843/en/Processes&quot; target=&quot;_self&quot;&gt;Applylogdb&lt;/a&gt; and &lt;a href=&quot;/manual/843/en/Processes&quot; target=&quot;_self&quot;&gt;Copylogdb&lt;/a&gt; HA processes have been successfully started.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;These are two main indicators that CUBRID Heartbeat is running.&lt;/p&gt;
&lt;p&gt;If we run the same command on &lt;b&gt;node2&lt;/b&gt;, we will see a little bit different picture:&lt;/p&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;vagrant@node2:~$ cubrid heartbeat status
@ cubrid heartbeat list

 HA-Node Info (current node2, state slave)
   Node node2 (priority 2, state slave)
   Node node1 (priority 1, state master)


 HA-Process Info (master 1257, state slave)
   Applylogdb ha_test_db@localhost:/opt/cubrid/databases/ha_test_db_node1 (pid 1592, state registered)
   Copylogdb ha_test_db@node1:/opt/cubrid/databases/ha_test_db_node1 (pid 1590, state registered)
   Server ha_test_db (pid 1263, state registered)

vagrant@node2:~$&lt;/pre&gt;
&lt;h4&gt;Check HA mode&lt;/h4&gt;
&lt;p&gt;As a final stroke, let&apos;s check the HA mode of each node.&lt;/p&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;vagrant@node1:~$ cubrid changemode ha_test_db@localhost
The server `ha_test_db@localhost&apos;&apos;s current HA running mode is active.&lt;/pre&gt;
&lt;p&gt;We can see that the &lt;i&gt;master&lt;/i&gt;&lt;b&gt; node1&lt;/b&gt;&amp;nbsp;is in &lt;b&gt;active&lt;/b&gt; mode. For other options, refer to &lt;a href=&quot;/manual/843/en/Servers&quot; target=&quot;_self&quot;&gt;Servers in CUBRID HA&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;When we run the same command on the slave node, we will see that it is in &lt;b&gt;standby&lt;/b&gt;&amp;nbsp;mode:&lt;/p&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;vagrant@node2:~$ cubrid changemode ha_test_db@localhost
The server `ha_test_db@localhost&apos;&apos;s current HA running mode is standby.&lt;/pre&gt;
&lt;h3&gt;Insert sample data&lt;/h3&gt;
&lt;p&gt;To confirm that replication works in CUBRID HA, let&apos;s create a sample table and insert some data.&lt;/p&gt;
&lt;pre class=&quot;brush:sql&quot;  title=&quot;&quot;&gt;CREATE TABLE ha_table(
    id INTEGER AUTO_INCREMENT PRIMARY KEY,
    f_name VARCHAR(20) NOT NULL
);

INSERT INTO ha_table (f_name) VALUES (&apos;Zorro&apos;), (&apos;Guppy&apos;), (&apos;Watchman&apos;);&lt;/pre&gt;
&lt;p&gt;Execute these queries in your favorite tool. You can use CUBRID Manager, CUBRID Query Browser administration tools, or CSQL command line tool. In this example I will use CSQL on our &lt;i&gt;master&lt;/i&gt;&lt;b&gt;&amp;nbsp;node1&lt;/b&gt;:&lt;/p&gt;
&lt;pre class=&quot;brush:plain&quot;  title=&quot;&quot;&gt;vagrant@node1:~$ csql -u dba ha_test_db@localhost

CUBRID SQL Interpreter


Type `;help&apos; for help messages.

csql&amp;gt; CREATE TABLE ha_table(
csql&amp;gt;     id INTEGER AUTO_INCREMENT PRIMARY KEY,
csql&amp;gt;     f_name VARCHAR(20) NOT NULL
csql&amp;gt; );
SQL statement execution time:     0.002845 sec

Current transaction has been committed.

1 command(s) successfully processed.
csql&amp;gt; 
csql&amp;gt; INSERT INTO ha_table (f_name) VALUES (&apos;Zorro&apos;), (&apos;Guppy&apos;), (&apos;Watchman&apos;);

3 rows affected.
SQL statement execution time:     0.001594 sec

Current transaction has been committed.

1 command(s) successfully processed.
csql&amp;gt; SHOW TABLES;

=== &amp;lt;Result of SELECT Command in Line 1&amp;gt; ===

  Tables_in_ha_test_db@localhost
======================
  &apos;ha_table&apos;          


1 rows selected.
SQL statement execution time:     0.018776 sec

Current transaction has been committed.

1 command(s) successfully processed.
csql&amp;gt; SELECT * FROM ha_table;

=== &amp;lt;Result of SELECT Command in Line 1&amp;gt; ===

           id  f_name              
===================================
            1  &apos;Zorro&apos;             
            2  &apos;Guppy&apos;             
            3  &apos;Watchman&apos;          


3 rows selected.
SQL statement execution time:     0.003838 sec

Current transaction has been committed.

1 command(s) successfully processed.
csql&amp;gt; ;ex
vagrant@node1:~$ &lt;/pre&gt;
&lt;p&gt;We can notice that all queries have been successfully executed on &lt;i&gt;master&lt;/i&gt;&lt;b&gt;&amp;nbsp;node1&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt;Now, let&apos;s see if these statements have been applied to &lt;i&gt;slave&lt;/i&gt;&lt;b&gt; node2&lt;/b&gt;.&lt;/p&gt;
&lt;pre class=&quot;brush:plain&quot;  title=&quot;&quot;&gt;vagrant@node2:~$ csql -u dba ha_test_db@localhost

CUBRID SQL Interpreter


Type `;help&apos; for help messages.

csql&amp;gt; SHOW TABLES;

=== &amp;lt;Result of SELECT Command in Line 1&amp;gt; ===

  Tables_in_ha_test_db@localhost
======================
  &apos;ha_table&apos;          


1 rows selected.
SQL statement execution time:     0.016050 sec

Current transaction has been committed.

1 command(s) successfully processed.
csql&amp;gt; SELECT * FROM ha_table;

=== &amp;lt;Result of SELECT Command in Line 1&amp;gt; ===

           id  f_name              
===================================
            1  &apos;Zorro&apos;             
            2  &apos;Guppy&apos;             
            3  &apos;Watchman&apos;          


3 rows selected.
SQL statement execution time:     0.004936 sec

Current transaction has been committed.

1 command(s) successfully processed.
csql&amp;gt; ;ex
vagrant@node1:~$ &lt;/pre&gt;
&lt;p&gt;We can see that all statements are successfully replicated on the &lt;b&gt;slave node2&lt;/b&gt;.&lt;/p&gt;
&lt;h3&gt;Shutdown master node to initiate failover&lt;/h3&gt;
&lt;p&gt;Now, let&apos;s see if &lt;i&gt;master&lt;/i&gt;&amp;nbsp;role&amp;nbsp;will successfully be delegated from &lt;b&gt;node1&lt;/b&gt;&amp;nbsp;to &lt;b&gt;node2&lt;/b&gt;&amp;nbsp;as a result of a&amp;nbsp;failover.&amp;nbsp;For this to work we will manually power off our &lt;b&gt;node1&lt;/b&gt;&amp;nbsp;VM.&lt;/p&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;$ vagrant halt node1&lt;/pre&gt;
&lt;p&gt;Then check again the heartbeat status on &lt;b&gt;node2&lt;/b&gt;.&lt;/p&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;vagrant@node2:~$ cubrid heartbeat status
@ cubrid heartbeat list

 HA-Node Info (current node2, state master)
   Node node2 (priority 2, state master)
   Node node1 (priority 1, state unknown)


 HA-Process Info (master 1190, state master)
   Applylogdb ha_test_db@localhost:/opt/cubrid/databases/ha_test_db_node1 (pid 1525, state registered)
   Copylogdb ha_test_db@node1:/opt/cubrid/databases/ha_test_db_node1 (pid 1523, state registered)
   Server ha_test_db (pid 1196, state registered_and_active)

vagrant@node2:~$&lt;/pre&gt;
&lt;p&gt;Bingo! Now &lt;b&gt;node2&lt;/b&gt;&amp;nbsp;is &lt;i&gt;master&lt;/i&gt;, while the state of &lt;b&gt;node1&lt;/b&gt;&amp;nbsp;is &lt;i&gt;unknown&lt;/i&gt;&lt;b&gt;.&lt;/b&gt;&lt;/p&gt;
&lt;h3&gt;Revive node1 and put it to standby (slave)&lt;/h3&gt;
&lt;p&gt;Now let&apos;s revive &lt;b&gt;node1&lt;/b&gt;&amp;nbsp;which was previously powered off, then check its heartbeat status.&lt;/p&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;~$ vagrant up node1
....
~$ vagrant ssh node1
....
vagrant@node1:~$ cubrid heartbeat status
@ cubrid heartbeat list

 HA-Node Info (current node1, state slave)
   Node node2 (priority 2, state master)
   Node node1 (priority 1, state slave)


 HA-Process Info (master 1613, state slave)
   Applylogdb ha_test_db@localhost:/opt/cubrid/databases/ha_test_db_node2 (pid 1948, state registered)
   Copylogdb ha_test_db@node2:/opt/cubrid/databases/ha_test_db_node2 (pid 1946, state registered)
   Server ha_test_db (pid 1619, state registered)

vagrant@node1:~$&lt;/pre&gt;
&lt;p&gt;Correct! &lt;b&gt;node1&lt;/b&gt;&amp;nbsp;became slave in our HA group.&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;In this tutorial you have learnt how to&amp;nbsp;create multiple VMs automatically with CUBRID installed on each of them and have them configured in one HA group. As you can see, Vagrant along with Chef cookbook allow us to work with CUBRID Database and other software very easily. It is so much convenient and saves so much of our time. Now creating a development environment is no more painful.&lt;/p&gt;
&lt;p&gt;Now as you know how to setup CUBRID HA environment, you can proceed to configuring CUBRID SHARD multi VM environment. Refer to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;[Configure CUBRID SHARD with Vagrant and Chef Cookbook under 2 minutes]&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you have questions, feel free to ask at &lt;a href=&quot;/questions&quot; target=&quot;_self&quot;&gt;CUBRID Q&amp;amp;A&lt;/a&gt; site, &lt;a href=&quot;/forum&quot; target=&quot;_self&quot;&gt;forum&lt;/a&gt;, our &lt;a href=&quot;http://www.facebook.com/cubrid&quot; target=&quot;_self&quot;&gt;Facebook&lt;/a&gt; page, or &lt;a href=&quot;http://twitter.com/cubrid&quot; target=&quot;_self&quot;&gt;Twitter&lt;/a&gt;.&amp;nbsp;If you have issues or feature requests to &lt;b&gt;cubrid-cookbook&lt;/b&gt;, &lt;a href=&quot;https://github.com/kadishmal/cubrid-cookbook/issues/new&quot; target=&quot;_self&quot;&gt;create a new issue&lt;/a&gt; at its Github repo.&lt;/p&gt;&lt;/div&gt;</content>
                  <category term="installation instructions"/>
            <category term="HA"/>
            <category term="VM"/>
            <category term="Vagrant"/>
            <category term="cookbook"/>
            
   </entry>
   <entry>
      <title>Configure CUBRID SHARD with Vagrant and Chef Cookbook under 2 minutes</title>
      <id>http://www.cubrid.org/554247</id>
      <published>2013-01-15T00:23:23-08:00</published>
      <updated>2013-01-31T21:29:53-08:00</updated>
      <link rel="alternate" type="text/html" href="http://www.cubrid.org/554247"/>
      <link rel="replies" type="text/html" href="http://www.cubrid.org/554247#comment"/>
      <author>
         <name>Esen Sagynov</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;This is the third tutorial in &lt;a href=&quot;/?mid=wiki_tutorials&amp;amp;act=TS&amp;amp;category=wiki&amp;amp;is_keyword=Vagrant&quot; target=&quot;_self&quot;&gt;Vagrant/Chef&lt;/a&gt; series where I would like to show how to install CUBRID Database in multi VM environment and automatically configure the database sharding. If you haven&apos;t read the previous tutorials, at least read [Create a CUBRID Database VM with Vagrant and Chef Cookbook under 5 minutes] to learn about Vagrant and Chef cookbook we will be using in this tutorial.&lt;/p&gt;
&lt;p&gt;In this tutorial you will learn how to create multiple VMs automatically with CUBRID installed on each of them and configured CUBRID SHARD for database sharding. I will tell you that with Vagrant and Chef Cookbook it is as easy as running &lt;code&gt;vagrant up&lt;/code&gt; and waiting for less than 2 minutes until everything gets set up.&lt;/p&gt;
&lt;p&gt;If you want to learn more about CUBRID SHARD refer to &lt;a href=&quot;/blog/cubrid-life/database-sharding-the-right-way-easy-reliable-open-source/&quot; target=&quot;_self&quot;&gt;Database Sharding the Right Way: Easy, Reliable, and Open source&lt;/a&gt;&amp;nbsp;we have presented at HighLoad++ 2012 conference.&lt;/p&gt;
&lt;h2&gt;Requirements&lt;/h2&gt;
&lt;p&gt;Requirements are the same as in the first tutorial. Refer to it for details. In short, you need &lt;b&gt;VirtualBox&lt;/b&gt; and &lt;b&gt;Vagrant&lt;/b&gt; installed.&lt;/p&gt;
&lt;h2&gt;Vagrantfile&lt;/h2&gt;
&lt;p&gt;If you have not already downloaded &lt;a href=&quot;http://sourceforge.net/projects/cubrid/files/CUBRID-AppsTools/CUBRID_Vagrant_VM/cubrid-vagrant-1.7.0.tar.gz/download&quot; target=&quot;_self&quot;&gt;cubrid-vagrant-1.7.0.tar.gz&lt;/a&gt; (226KB), do it now (&lt;i&gt;or check the latest version from &lt;a href=&quot;https://sourceforge.net/projects/cubrid/files/CUBRID-AppsTools/CUBRID_Vagrant_VM/&quot; target=&quot;_self&quot;&gt;Sf.net repo&lt;/a&gt;&lt;/i&gt;). You will find everything ready for you in that archive. Refer to the [Create a CUBRID Database VM with Vagrant and Chef Cookbook under 5 minutes |previous tutorial] for details on what is included.&lt;/p&gt;
&lt;p&gt;Now for this tutorial to configure CUBRID HA on multiple VMs, we will add a few more configuration options to our &lt;i&gt;Vagrantfile&lt;/i&gt;&amp;nbsp;which comes by default in that archive.&lt;/p&gt;
&lt;pre class=&quot;brush:plain&quot;  title=&quot;&quot;&gt;# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant::Config.run do |config|
  #config.vm.box_url = &quot;http://files.vagrantup.com/precise64.box&quot;
  config.vm.box = &quot;precise64&quot; # Ubuntu 12.04 x64

  config.vm.define :node1 do |node1_config|
    node1_config.vm.host_name = &quot;node1&quot;
    node1_config.vm.network :hostonly, &quot;10.11.12.13&quot;
  end

  config.vm.define :node2 do |node2_config|
    node2_config.vm.host_name = &quot;node2&quot;
    node2_config.vm.network :hostonly, &quot;10.11.12.14&quot;
  end

  config.vm.customize [!&quot;modifyvm&quot;, :id, &quot;--memory&quot;, 800]

  config.vm.provision :chef_solo do |chef|
    chef.cookbooks_path = &quot;cookbooks&quot;

    chef.json = {
        &quot;cubrid&quot; =&amp;gt; {
            &quot;version&quot; =&amp;gt; &quot;8.4.3&quot;,

            &quot;shard_db&quot; =&amp;gt; &quot;sharddb&quot;,
            &quot;shard_hosts&quot; =&amp;gt; [!
              {&quot;node1&quot; =&amp;gt; &quot;10.11.12.13&quot;},
              {&quot;node2&quot; =&amp;gt; &quot;10.11.12.14&quot;}
            ]
        }
    }

    chef.add_recipe &quot;cubrid&quot;
    chef.add_recipe &quot;cubrid::shard&quot;
  end
end&lt;/pre&gt;
&lt;p&gt;I have removed the comments this time so that you can see the real code more prominently. In the &lt;i&gt;Vagrantfile&lt;/i&gt;&amp;nbsp;inside the archive you can see all the comments.&lt;/p&gt;
&lt;h3&gt;Number of VMs&lt;/h3&gt;
&lt;p&gt;The first thing to take care in this scenario, just like when [Configure CUBRID HA with Vagrant and Chef Cookbook under 4 minutes|configuring HA] is to define how many VMs (&lt;i&gt;hosts&lt;/i&gt;) we would like to run in this CUBRID SHARD environment. No matter how many, each host will run an independent CUBRID Server node and have a database which will serve as one of the shards of the &quot;single logical&quot; database.&lt;/p&gt;
&lt;p&gt;In the above &lt;i&gt;Vagrantfile&lt;/i&gt;&amp;nbsp;you can notice the following lines:&lt;/p&gt;
&lt;pre class=&quot;brush:plain&quot;  title=&quot;&quot;&gt;config.vm.define :node1 do |node1_config|
   node1_config.vm.host_name = &quot;node1&quot;
   node1_config.vm.network :hostonly, &quot;10.11.12.13&quot;
 end

 config.vm.define :node2 do |node2_config|
   node2_config.vm.host_name = &quot;node2&quot;
   node2_config.vm.network :hostonly, &quot;10.11.12.14&quot;
 end&lt;/pre&gt;
&lt;p&gt;This means that we want Vagrant to build for us &lt;b&gt;two&lt;/b&gt; VMs. The first VM should be distinguished by &lt;b&gt;node1&lt;/b&gt;&amp;nbsp;name and should be assigned &lt;b&gt;10.11.12.13&lt;/b&gt; IP address. The second VM will have a hostname &lt;b&gt;node2&lt;/b&gt;&amp;nbsp;with an IP &lt;b&gt;10.11.12.14&lt;/b&gt;. In this example both hostname and IP are arbitrary, i.e. you can set your own, but you should remember to set IP within the same netmask (&lt;i&gt;refer to &lt;a href=&quot;http://docs.vagrantup.com/v1/docs/host_only_networking.html&quot; target=&quot;_self&quot;&gt;Multiple Networks in Vagrant&lt;/a&gt; for details&lt;/i&gt;).&lt;/p&gt;
&lt;p&gt;This is how you define the number of VMs to start up. Unlike with [Configure CUBRID HA with Vagrant and Chef Cookbook under 4 minutes|HA configuration] where the first VM which gets started becomes a&amp;nbsp;&lt;b&gt;&quot;master&quot;&lt;/b&gt;&amp;nbsp;node, in CUBRID SHARD the last node to be configured will start the CUBRID SHARD Service and serve as a SHARD Broker. This is the case because in order to start the SHARD Service all shard nodes must be up. Thus, configuring starting the SHARD Service on the last node will ensure us that all previous nodes are up.&lt;/p&gt;
&lt;h3&gt;VM memory size&lt;/h3&gt;
&lt;p&gt;In this example we set each VM to have 800MB RAM. This is enough, though you can set lower or higher values.&lt;/p&gt;
&lt;pre class=&quot;brush:plain&quot;  title=&quot;&quot;&gt;config.vm.customize [!&quot;modifyvm&quot;, :id, &quot;--memory&quot;, 800]&lt;/pre&gt;
&lt;p&gt;If you need to have different memory on each VM, you can do so by specifying this same property when you &lt;i&gt;define&lt;/i&gt; each VM.&lt;/p&gt;
&lt;h3&gt;Configure CUBRID SHARD&lt;/h3&gt;
&lt;pre class=&quot;brush:plain&quot;  title=&quot;&quot;&gt;chef.json = {
    &quot;cubrid&quot; =&amp;gt; {
        &quot;version&quot; =&amp;gt; &quot;8.4.3&quot;,

        &quot;shard_db&quot; =&amp;gt; &quot;sharddb&quot;,
        &quot;shard_hosts&quot; =&amp;gt; [!
          {&quot;node1&quot; =&amp;gt; &quot;10.11.12.13&quot;},
          {&quot;node2&quot; =&amp;gt; &quot;10.11.12.14&quot;}
        ]
    }
}

chef.add_recipe &quot;cubrid&quot;
chef.add_recipe &quot;cubrid::shard&quot;&lt;/pre&gt;
&lt;ol&gt;
&lt;li&gt;First of all, you need to add &quot;&lt;b&gt;cubrid::shard&lt;/b&gt;&quot; recipe to have CUBRID SHARD configured.&lt;/li&gt;
&lt;li&gt;Second, you need to provide&amp;nbsp;a database name via&amp;nbsp;&lt;code&gt;shard_db&lt;/code&gt;&amp;nbsp;attribute&amp;nbsp;which you want to create and have it shared among all nodes.&lt;/li&gt;
&lt;li&gt;Third, you need to provide a list of hosts and IPs where each database shard will be located. For this override &lt;code&gt;shard_hosts&lt;/code&gt; attribute. These hosts and IPs &lt;b&gt;must&lt;/b&gt;&amp;nbsp;be identical to those you have defined for each VM above.&lt;/li&gt;
&lt;li&gt;You can&amp;nbsp;optionally&amp;nbsp;override &lt;code&gt;shard_broker_port&lt;/code&gt;&amp;nbsp;attribute which defaults to &lt;b&gt;45011&lt;/b&gt;.&lt;/li&gt;
&lt;li&gt;Also optionally you can specify&amp;nbsp;&lt;code&gt;shard_user&lt;/code&gt;&amp;nbsp;and&amp;nbsp;&lt;code&gt;shard_user_password&lt;/code&gt;&amp;nbsp;attributes if you want to create a specific database user for your sharded database. By default, a&amp;nbsp;&lt;b&gt;shard&lt;/b&gt;&amp;nbsp;user will be created with &lt;b&gt;shard123&lt;/b&gt;&amp;nbsp;password.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;That is all you need to configure CUBRID SHARD. Now let&apos;s go and bring up our CUBRID SHARD.&lt;/p&gt;
&lt;h2&gt;Vagrant Box&lt;/h2&gt;
&lt;p&gt;I will assume that you have already added &lt;b&gt;precise64&lt;/b&gt; (&lt;i&gt;Ubuntu 12.04 LTS x64&lt;/i&gt;) Vagrant box. If you haven&apos;t, see the [Create a CUBRID Database VM with Vagrant and Chef Cookbook under 5 minutes|first tutorial].&lt;/p&gt;
&lt;h2&gt;Start Up Vagrant&lt;/h2&gt;
&lt;p&gt;Run the following command to start Vagrant:&lt;/p&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;$ vagrant up&lt;/pre&gt;
&lt;p&gt;Wait about 2 minutes and you will have your VMs up and running in CUBRID SHARD configured.&lt;/p&gt;
&lt;h2&gt;Test CUBRID SHARD&lt;/h2&gt;
&lt;h3&gt;Validate CUBRID SHARD&lt;/h3&gt;
&lt;p&gt;Let&apos;s first validate and see if CUBRID SHARD has been properly configured.&lt;/p&gt;
&lt;h4&gt;Open SSH connection&lt;/h4&gt;
&lt;p&gt;For this we will open SSH connection and login to the last&amp;nbsp;&lt;b&gt;node2&lt;/b&gt;&amp;nbsp;VM because on this node the SHARD Broker is configured. Remember that the last VM which gets started will start the CUBRID SHARD Service.&lt;/p&gt;
&lt;pre class=&quot;brush:plain&quot;  title=&quot;&quot;&gt;$ vagrant ssh node2
Welcome to Ubuntu 12.04 LTS (GNU/Linux 3.2.0-23-generic x86_64)

 * Documentation:  https://help.ubuntu.com/

100 packages can be updated.
50 updates are security updates.

Welcome to your Vagrant-built virtual machine.
Last login: Tue Jan 15 06:47:07 2013 from 10.0.2.2
vagrant@node2:~$&lt;/pre&gt;
&lt;p&gt;To connect to other nodes, simply change the node name as:&lt;/p&gt;
&lt;pre class=&quot;brush:plain&quot;  title=&quot;&quot;&gt;$ vagrant ssh node1&lt;/pre&gt;
&lt;h4&gt;Check CUBRID shard status&lt;/h4&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;$ cubrid shard status -f
@ cubrid shard status
% shard  - shard_cas [!12366,45011] /opt/cubrid/log/broker//shard.err 
 JOB QUEUE:0, AUTO_ADD_APPL_SERVER:ON, SQL_LOG_MODE:ALL:100000, SLOW_LOG:ON
 LONG_TRANSACTION_TIME:60.00, LONG_QUERY_TIME:60.00, SESSION_TIMEOUT:300
 KEEP_CONNECTION:ON, ACCESS_MODE:RW, MAX_QUERY_TIMEOUT:0
----------------------------------------------------------------------------------------------------------------------------------------------------------
PROXY_ID SHARD_ID   CAS_ID   PID   QPS   LQS PSIZE STATUS          LAST ACCESS TIME               DB             HOST   LAST CONNECT TIME    SQL_LOG_MODE 
----------------------------------------------------------------------------------------------------------------------------------------------------------
       1        0        1 12374     0     0 55088 IDLE         2013/01/15 04:32:21    sharddb@node1            node1 2013/01/15 04:32:21               - 
       1        1        1 12375     0     0 55088 IDLE         2013/01/15 04:32:21    sharddb@node2            node2 2013/01/15 04:32:21               - &lt;/pre&gt;
&lt;p&gt;We can notice that CUBRID SHARD Service is running and our &lt;b&gt;sharddb&lt;/b&gt;&amp;nbsp;database has been successfully started on both &lt;b&gt;node1&lt;/b&gt;&amp;nbsp;and &lt;b&gt;node2&lt;/b&gt;. You can also notice that the SHARD Broker is listening on port &lt;b&gt;45011&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt;If you execute this command on other nodes, you will &lt;b&gt;not&lt;/b&gt;&amp;nbsp;see similar result because they are not configured to serve as a SHARD Broker, though they can be and in that case they can serve as a Broker failover solution.&lt;/p&gt;
&lt;h3&gt;Create a common database schema&lt;/h3&gt;
&lt;p&gt;If you have already read&amp;nbsp;&lt;a href=&quot;/blog/cubrid-life/database-sharding-the-right-way-easy-reliable-open-source/&quot; target=&quot;_self&quot;&gt;Database Sharding the Right Way: Easy, Reliable, and Open source&lt;/a&gt;, you should know that in order to insert and retrieve data from multiple shards, we need to have identical table schema on all shards. Those tables which are present only on some of the shards will not be sharded, in which case they will be just like any other ordinary tables.&lt;/p&gt;
&lt;p&gt;So, let&apos;s create a common table on all our nodes to store our blog posts.&lt;/p&gt;
&lt;pre class=&quot;brush:sql&quot;  title=&quot;&quot;&gt;CREATE TABLE posts (
post_id INT PRIMARY KEY,
post_title VARCHAR(255) NOT NULL
);&lt;/pre&gt;
&lt;p&gt;Execute this query in your favorite tool. You can use CUBRID Manager, CUBRID Query Browser administration tools, or CSQL command line tool. In this example I will use CSQL on our&lt;b&gt;&amp;nbsp;node1&lt;/b&gt;. Remember that you need to execute this query on all nodes to have identical schema.&lt;/p&gt;
&lt;pre class=&quot;brush:plain&quot;  title=&quot;&quot;&gt;vagrant@node1:~$ csql -u shard sharddb@localhost
Enter Password : 

CUBRID SQL Interpreter


Type `;help&apos; for help messages.

csql&amp;gt; CREATE TABLE posts (
csql&amp;gt; post_id INT PRIMARY KEY,
csql&amp;gt; post_title VARCHAR(255) NOT NULL
csql&amp;gt; );
SQL statement execution time:     0.008398 sec

Current transaction has been committed.

1 command(s) successfully processed.
csql&amp;gt; ;ex
vagrant@node1:~$&lt;/pre&gt;
&lt;h3&gt;Update shard_key.txt configuration file&lt;/h3&gt;
&lt;p&gt;Since we have create a new table which we want to shard between multiple nodes, we need to specify which of the columns of this table must be used as &lt;code&gt;shard_key&lt;/code&gt; to identify the &lt;code&gt;shard_id&lt;/code&gt;. For this we need to update the &lt;b&gt;shard_key.txt&lt;/b&gt; configuration file in &lt;i&gt;/opt/cubrid/conf/&lt;/i&gt; directory on &lt;b&gt;node2&lt;/b&gt;&amp;nbsp;where our SHARD Service is started.&lt;/p&gt;
&lt;pre class=&quot;brush:plain&quot;  title=&quot;&quot;&gt;#
# Cookbook Name:: cubrid
# Templates:: shard_keys.txt
#
[!%post_id]
#min	max	shard_id
0	31	0
32	63	1
64	95	0
96	127	1
128	159	0
160	191	1
192	223	0
224	255	1&lt;/pre&gt;
&lt;p&gt;The above will instruct CUBRID to use &lt;code&gt;post_id&lt;/code&gt;&amp;nbsp;column as the&amp;nbsp;&lt;code&gt;shard_key&lt;/code&gt;&amp;nbsp;for our table. You can define one shard key for each table.&lt;/p&gt;
&lt;p&gt;By default CUBRID SHARD will use 256 modulus sharding strategy. You can define you own or even feed CUBRID SHARD with an external library which calculates the sharding id. In the above example, all records where&amp;nbsp;&lt;code&gt;post_id&lt;/code&gt;&amp;nbsp;is between 0 and 31 inclusive will be stored in shard 0, in our case it&apos;s &lt;b&gt;node1&lt;/b&gt;. All records where&amp;nbsp;&lt;code&gt;post_id&lt;/code&gt;&amp;nbsp;is between 32 and 63 inclusive will be stored in shard 1, in our case it&apos;s&amp;nbsp;&lt;b&gt;node2&lt;/b&gt;. This goes on from 0 up to 255 (&lt;i&gt;modulus - 1&lt;/i&gt;). These&amp;nbsp;&lt;code&gt;shard_id&lt;/code&gt;&amp;nbsp;and&amp;nbsp;&lt;b&gt;host_name&lt;/b&gt;&amp;nbsp;mappings are defined in &lt;b&gt;shard_connection.txt&lt;/b&gt;&amp;nbsp;configuration file in&amp;nbsp;&lt;i&gt;/opt/cubrid/conf/&lt;/i&gt;&amp;nbsp;directory in case you wonder.&lt;/p&gt;
&lt;p&gt;Once we have updated the shard_key.txt configuration file, we need to restart our SHARD Service.&lt;/p&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;vagrant@node2:~$ cubrid shard restart
@ cubrid shard stop
++ cubrid shard stop: success
@ cubrid shard start
++ cubrid shard start: success&lt;/pre&gt;
&lt;h3&gt;Insert sample data&lt;/h3&gt;
&lt;p&gt;Now, let&apos;s insert data by connecting to our SHARD Broker on port 45011. For this we will write a short Java program which will establish a database connection using CUBRID JDBC driver.&lt;/p&gt;
&lt;pre class=&quot;brush:java&quot;  title=&quot;&quot;&gt;import cubrid.jdbc.driver.CUBRIDConnection;
import cubrid.jdbc.driver.CUBRIDPreparedStatement;
import cubrid.jdbc.driver.CUBRIDResultSet;

import java.sql.*;

public class SHARDBrokerInsertExample {
    static  {
        try {
            Class.forName(&quot;cubrid.jdbc.driver.CUBRIDDriver&quot;);
        } catch (ClassNotFoundException e) {
            throw new RuntimeException(e);
        }
    }

    public static CUBRIDConnection connect() {
        Connection conn = null;

        try {
            conn = DriverManager.getConnection(&quot;jdbc:cubrid:10.11.12.14:45011:sharddb:::?charSet=utf8&quot;, &quot;shard&quot;, &quot;shard123&quot;);
            System.out.println(&quot;Connected!&quot;);
        } catch ( Exception e ) {
            System.err.println(&quot;Error: &quot; + e.getMessage());
        }

        return (CUBRIDConnection)conn;
    }

    public static void printdata(ResultSet rs) {
        try {
            ResultSetMetaData rsmd = null;

            rsmd = rs.getMetaData();

            int numberofColumns = rsmd.getColumnCount();
            System.out.println(&quot;Number of columns: &quot; + numberofColumns);

            for(int j = 1; j &amp;lt;= numberofColumns; ++j ) {
                System.out.print(rsmd.getColumnName(j) + &quot;, &quot;);
            }

            System.out.println(&quot;&quot;);

            while (rs.next ()) {
                for(int j = 1; j &amp;lt;= numberofColumns; ++j ) {
                    System.out.print(rs.getString(j) + &quot;  &quot;);
                }

                System.out.println(&quot;&quot;);
            }

        } catch ( Exception e ) {
            System.err.println(&quot;SQLException : &quot; + e.getMessage());
        }
    }

    public static void main(String[!] args) throws Exception {
        CUBRIDConnection conn = null;

        conn = connect();

        try {
            String sql = &quot;INSERT INTO posts VALUES (/*+ shard_key */ ?, ?)&quot;;

            CUBRIDPreparedStatement preStmt = (CUBRIDPreparedStatement)conn.prepareStatement(sql);
            preStmt.setInt(1, 1);
            preStmt.setString(2, &quot;SHARD 0: Post 1 Title&quot;);

            preStmt.executeInsert();

            preStmt.setInt(1, 32);
            preStmt.setString(2, &quot;SHARD 1: Post 2 Title&quot;);

            preStmt.executeInsert();

            preStmt.setInt(1, 128);
            preStmt.setString(2, &quot;SHARD 0: Post 3 Title&quot;);

            preStmt.executeInsert();

            preStmt.setInt(1, 224);
            preStmt.setString(2, &quot;SHARD 1: Post 4 Title&quot;);

            preStmt.executeInsert();

            String selectSql = &quot;SELECT * FROM posts WHERE post_id = /*+ shard_key */ 128&quot;;

            Statement stmt = conn.createStatement();
            ResultSet rs = stmt.executeQuery(selectSql);

            printdata(rs);

            stmt.close();

            conn.close();

            System.out.println(&quot;Connection is closed&quot;);
        } catch ( Exception e ) {
            System.err.println(&quot;SQLException : &quot; + e.getMessage());
            System.err.println(e);
        } finally {
            if ( conn != null ) conn.close();
        }
    }
}&lt;/pre&gt;
&lt;p&gt;There are two important things in this code which relate to database sharding.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;When inserting a record, give a &lt;b&gt;hint&lt;/b&gt;&amp;nbsp;to SHARD Broker which of the columns should be used as&amp;nbsp;&lt;code&gt;shard_key&lt;/code&gt;&amp;nbsp;to identify the&amp;nbsp;&lt;code&gt;shard_id&lt;/code&gt;. This is done by adding&amp;nbsp;&lt;code&gt;/*+ shard_key */&lt;/code&gt;&amp;nbsp;SQL hint to the&amp;nbsp;&lt;code&gt;INSERT&lt;/code&gt;&amp;nbsp;query before the value or the placeholder as shown above.&lt;/li&gt;
&lt;li&gt;Likewise, when selecting a data, give a&amp;nbsp;&lt;b&gt;hint&lt;/b&gt;&amp;nbsp;to SHARD Broker which of the columns should be used as&amp;nbsp;&lt;code&gt;shard_key&lt;/code&gt;. This is done by adding&amp;nbsp;&lt;code&gt;/*+ shard_key */&lt;/code&gt;&amp;nbsp;SQL hint to the&amp;nbsp;&lt;code&gt;SELECT&lt;/code&gt;&amp;nbsp;query&amp;nbsp;in&amp;nbsp;&lt;code&gt;WHERE&lt;/code&gt;&amp;nbsp;clause&amp;nbsp;before the value or the placeholder as shown above.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;If you compile and run this program, you will see the following output:&lt;/p&gt;
&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;Connected!
Number of columns: 2
post_id, post_title, 
128  SHARD 0: Post 3 Title  
Connection is closed&lt;/pre&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;In this tutorial you have learnt how to&amp;nbsp;create multiple VMs automatically with CUBRID installed on each of them and configured CUBRID SHARD. As you can see, Vagrant along with Chef cookbook allow us to work with CUBRID Database and other software very easily. It is so much convenient and saves so much of our time. Now creating a development environment is no more painful.&lt;/p&gt;
&lt;p&gt;If you have questions, feel free to ask at &lt;a href=&quot;/questions&quot; target=&quot;_self&quot;&gt;CUBRID Q&amp;amp;A&lt;/a&gt; site, &lt;a href=&quot;/forum&quot; target=&quot;_self&quot;&gt;forum&lt;/a&gt;, our &lt;a href=&quot;http://www.facebook.com/cubrid&quot; target=&quot;_self&quot;&gt;Facebook&lt;/a&gt; page, or &lt;a href=&quot;http://twitter.com/cubrid&quot; target=&quot;_self&quot;&gt;Twitter&lt;/a&gt;.&amp;nbsp;If you have issues or feature requests to &lt;b&gt;cubrid-cookbook&lt;/b&gt;, &lt;a href=&quot;https://github.com/kadishmal/cubrid-cookbook/issues/new&quot; target=&quot;_self&quot;&gt;create a new issue&lt;/a&gt; at its Github repo.&lt;/p&gt;&lt;/div&gt;</content>
                  <category term="installation instructions"/>
            <category term="Sharding"/>
            <category term="Vagrant"/>
            <category term="cookbook"/>
            <category term="VM"/>
            
   </entry>
   <entry>
      <title>How to Get PHP Version</title>
      <id>http://www.cubrid.org/475092</id>
      <published>2012-10-31T06:21:25-07:00</published>
      <updated>2013-01-30T16:27:25-08:00</updated>
      <link rel="alternate" type="text/html" href="http://www.cubrid.org/475092"/>
      <link rel="replies" type="text/html" href="http://www.cubrid.org/475092#comment"/>
      <author>
         <name>Esen Sagynov</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;If you don&apos;t know yet how you can obtain the PHP version, we will guide now by presenting a couple of approaches.&lt;/p&gt;
&lt;p&gt;Method #1. Obtain the values from &quot;php -info&quot;. If you have &lt;a target=&quot;_self&quot; href=&quot;http://gnuwin32.sourceforge.net/packages/grep.htm&quot;&gt;grep&lt;/a&gt; installed, you can simply run:&lt;/p&gt;
&lt;pre class=&quot;brush:bash;gutter:false&quot;  title=&quot;&quot;&gt;php -info | grep &quot;PHP Version&quot;
php -info | grep &quot;Architecture&quot;
php -info | grep &quot;PHP Extension Build&quot;&lt;/pre&gt;
&lt;p&gt;The first command returns the PHP version (ex. 5.3.6), the second returns the PHP architecture (x86 for 32 bit or x64 for 64 bit) and the last command returns the build type. You should look for TS or NTS and VC6 or VC9 on Windows.&lt;/p&gt;
&lt;p&gt;If you do not have grep installed you can output the result into a file using the command:&lt;/p&gt;
&lt;pre class=&quot;brush:bash;gutter:false&quot;  title=&quot;&quot;&gt;php -info &amp;gt; phpinfo.txt&lt;/pre&gt;
&lt;p&gt;Then, just check the &lt;em&gt;phpinfo.txt&lt;/em&gt; file created and look for PHP Version, Architecture and PHP Extension Build.&lt;/p&gt;
&lt;p&gt;Now that you know the version, architecture and PHP Extension Build, all that remains is to download the&amp;nbsp;&lt;a target=&quot;_self&quot; href=&quot;/?mid=downloads&amp;amp;item=php_driver&amp;amp;os=detect&amp;amp;php=detect&amp;amp;driver=detect&quot;&gt;CUBRID PHP driver&lt;/a&gt;&amp;nbsp;that corresponds to your system&amp;nbsp;and install it using the procedure below:&lt;/p&gt;
&lt;p&gt;You will see a&amp;nbsp;&lt;b&gt;php_cubrid.dll&lt;/b&gt;&amp;nbsp;file inside the archive on Windows. On Linux it is &lt;strong&gt;cubrid.so&lt;/strong&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Copy this library&amp;nbsp;to the default PHP extensions folder (usually located at &lt;b&gt;C:&amp;#92;Program Files (x86)&amp;#92;PHP&amp;#92;ext&lt;/b&gt;).&lt;/li&gt;
&lt;li&gt;Set your system environment. Check if the environment variable &lt;b&gt;PHPRC&lt;/b&gt; is &quot;C:&amp;#92;Program Files (x86)&amp;#92;PHP&amp;rdquo; and system variable path is added with &amp;ldquo;&lt;b&gt;%PHPRC%&lt;/b&gt;&amp;rdquo; and &amp;ldquo;&lt;b&gt;%PHPRC&amp;#92;ext&lt;/b&gt;&amp;rdquo;.&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Edit &lt;b&gt;php.ini&lt;/b&gt; (C:&amp;#92;Program Files (x86)&amp;#92;PHP&amp;#92;php.ini) and add the following two lines at the end of the php.ini file.&lt;/p&gt;
&lt;/li&gt;
&lt;pre class=&quot;brush:plain&quot;  title=&quot;&quot;&gt;[!PHP_CUBRID]
extension=php_cubrid.dll&lt;/pre&gt;
&lt;li&gt;If you have installed &lt;b&gt;CUBRID 64 bit version&lt;/b&gt;, but you are running &lt;b&gt;PHP 32 bit version&lt;/b&gt;, then you must also copy the 32 bit version of &lt;b&gt;cascci.dll&lt;/b&gt;&amp;nbsp;&lt;a target=&quot;_self&quot; href=&quot;/?mid=downloads&amp;amp;item=cci_driver&amp;amp;os=detect&amp;amp;ostype=any&quot;&gt;available here&lt;/a&gt;&amp;nbsp;to the&amp;nbsp;location&lt;b&gt;&amp;nbsp;&lt;/b&gt;where PHP is installed (&lt;b&gt;C:&amp;#92;Program Files (x86)&amp;#92;PHP&lt;/b&gt;). Only cascci.dll needs to be copied from the contents of the archive.&lt;/li&gt;
&lt;li&gt;Restart your Web Server.&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;</content>
                  <category term="php"/>
            <category term="version"/>
            <category term="phpinfo"/>
            
   </entry>
   <entry>
      <title>How to Run a SQL Script / File</title>
      <id>http://www.cubrid.org/470503</id>
      <published>2012-10-27T22:45:33-07:00</published>
      <updated>2013-01-15T05:57:40-08:00</updated>
      <link rel="alternate" type="text/html" href="http://www.cubrid.org/470503"/>
      <link rel="replies" type="text/html" href="http://www.cubrid.org/470503#comment"/>
      <author>
         <name>CUBRID</name>
                  <uri>http://www.cubrid.org</uri>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;There are several ways to run queries from a SQL file. One of the easiest ways is run scripts directly using the CSQL command line interpreter. Assuming the script you want to run is named &quot;insert_commands.sql&quot;, the following commands should be ran within csql:&lt;/p&gt;
&lt;pre class=&quot;brush:plain&quot;  title=&quot;&quot;&gt;;CL
;READ insert_commands.sql
;RU &lt;/pre&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;The first command, clears the command line buffer (;CLear). The second reads the sql script into the command line buffer (;REAd). The last command executes the commands in the command line buffer (;RUn).&lt;/p&gt;
&lt;p&gt;Note: If you want the script to run quicker, then you should set autocommit to off. To do this, before running the ;RU command, you should run:&lt;/p&gt;
&lt;pre class=&quot;brush:plain;gutter:false&quot;  title=&quot;&quot;&gt;;AU off&lt;/pre&gt;

&lt;p&gt;This command disables autocommit. Due to this reason, after you run the sql script, in order to commit your changes made, you MUST run:&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;pre class=&quot;brush:plain;gutter:false&quot;  title=&quot;&quot;&gt;;commit&lt;/pre&gt;
&lt;p&gt;;commit (or ;co) commits all changes made.&lt;/p&gt;

&lt;p&gt;If you still encounter problems and you are not able to run a SQL script or import a SQL file, please contact us by posting a message in our &lt;a href=&quot;http://www.cubrid.org/questions&quot; target=&quot;_self&quot;&gt;Q&amp;amp;A&lt;/a&gt; site.&lt;/p&gt;&lt;/div&gt;</content>
                  <category term="run sql script"/>
            <category term="SQL"/>
            <category term="autocommit"/>
            
   </entry>
   <entry>
      <title>Important Facts to Know about CUBRID</title>
      <id>http://www.cubrid.org/295528</id>
      <published>2012-02-14T01:00:30-08:00</published>
      <updated>2013-01-04T00:48:32-08:00</updated>
      <link rel="alternate" type="text/html" href="http://www.cubrid.org/295528"/>
      <link rel="replies" type="text/html" href="http://www.cubrid.org/295528#comment"/>
      <author>
         <name>Esen Sagynov</name>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;All database systems are different one way or another. But utilizing best practices and recommendations are equally important on all systems. To improve your experience with CUBRID, we would like to provide you with a list of important facts about CUBRID. Learning them will help you better understand CUBRID, better tune the server configurations, better optimize your SQL queries and therefore improve the performance of your applications.&lt;/p&gt;

&lt;blockquote class=&quot;q4&quot;&gt;&lt;p&gt;The below list is not exhaustive. Gradually we will be adding more tips. If you have additional recommendations based on your experience which you think would be helpful to other CUBRID users, please write them in the comments below. We will add your recommendations to this list.&lt;/p&gt;

&lt;/blockquote&gt;

&lt;h3&gt;License&lt;/h3&gt;&lt;p&gt;CUBRID is distributed under the terms of GPL v2+. However its APIs are available under New BSD. Reason? Give users complete freedom over how they use the APIs and their source code.&lt;/p&gt;

&lt;p&gt;We want &amp;nbsp;to ensure that the new features, fixes and other improvements made by third-party developers to the Core Engine are open so that all CUBRID community users could benefit, by distributing the client libraries under the terms of BSD we want to provide OEMs, VARs, and ISVs full control of their products. Developers embedding CUBRID APIs in their applications are required neither to open their source code nor to purchase the commercial license (actually we do not have one). This is one of the most essential benefits developers can experience with CUBRID.&lt;/p&gt;

&lt;h3&gt;SQL in CUBRID&lt;/h3&gt;
&lt;p&gt;SQL syntax in CUBRID is very similar to MySQL and even Oracle. In fact, there is over 90% SQL compatibility between CUBRID and MySQL. You can execute most of your existing SQL statements in CUBRID without any modifications. With every new release we add more functions and data types to increase MySQL compatibility.&lt;/p&gt;

&lt;p&gt;Despite almost full SQL compatibility, there are some syntax elements which are different in CUBRID:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;CREATE TABLE IF NOT EXISTS&lt;/code&gt; syntax is not supported yet.&lt;/li&gt;
&lt;li&gt;Though CUBRID fully supports&amp;nbsp;&lt;code&gt;ALTER TABLE ... RENAME TO&lt;/code&gt;&amp;nbsp;as does MySQL, you can use a much cleaner and easier syntax&amp;nbsp;&lt;code&gt;RENAME TABLE ...&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;An interesting note is that CUBRID supports &lt;b&gt;Hierarchical Queries&lt;/b&gt; compatible with Oracle syntax.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;h3&gt;CUBRID is not a fork&lt;/h3&gt;
&lt;p&gt;CUBRID is &lt;b&gt;not&lt;/b&gt; a fork of MySQL (or any other DBMS, for that matters), therefore it does not have anything similar like Storage Engines, e.g.&amp;nbsp;&lt;code&gt;ENGINE=InnoDB&lt;/code&gt; part in &lt;code&gt;CREATE TABLE&lt;/code&gt; statement. So, if your SQL includes it, just remove it.&lt;/p&gt;

&lt;h3&gt;Reserved Words&lt;/h3&gt;
&lt;p&gt;Take a quick look at the &lt;a href=&quot;/manual/90/en/Reserved%20Words&quot; target=&quot;_self&quot;&gt;reserved words&lt;/a&gt; in CUBRID. If your project uses any of them as table or column names, you need to always quote them using backticks (&lt;code&gt;``&lt;/code&gt;), double quotes (&lt;code&gt;&quot;&quot;&lt;/code&gt;) or square brackets (&lt;code&gt;[]&lt;/code&gt;), whenever they are referenced.&lt;/p&gt;

&lt;p&gt;Besides these, there are some &lt;b&gt;&lt;i&gt;unescapable reserved words&lt;/i&gt;&lt;/b&gt;. They are the data type name such as INT, VARCHAR etc. You cannot use these words as identifiers, i.e. as names of your tables. The reason lies behind CUBRID&apos;s architecture. As you know CUBRID is a relational database but it also supports objects. This allows users to &lt;b&gt;create tables where columns&apos; data type can be another table&lt;/b&gt;. See the following example:&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;pre class=&quot;brush:sql&quot;  title=&quot;&quot;&gt;create table t1 (a int);
create table t2 (b t1);&lt;/pre&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;Here &lt;b&gt;t1&lt;/b&gt; table can be a column type of column &lt;b&gt;b&lt;/b&gt; in table &lt;b&gt;t2&lt;/b&gt;. So considering this feature, look at this example below:&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;pre class=&quot;brush:sql&quot;  title=&quot;&quot;&gt;create table &quot;int&quot; (a int);
create table &quot;t2 (b int);&lt;/pre&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;If we allow a table to have a name like &quot;int&quot;, then we have a problem: &lt;b&gt;what is the type of column b in t2? Is it the table &quot;int&quot;, or just the basic type INT?&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;This creates an ambiguity. This is why in CUBRID data type names are not allowed to be table names.&lt;/p&gt;

&lt;h3 id=&quot;database&quot;&gt;Database in CUBRID&lt;/h3&gt;&lt;p&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Every database in CUBRID &lt;b&gt;must be explicitly started&lt;/b&gt; before working with them. By default they are stopped. See [Start or Autostart CUBRID Database] for more info.&lt;/li&gt;
&lt;li&gt;As of version 8.4.3, database names in CUBRID should not exceed 17 characters.&lt;/li&gt;
&lt;li&gt;CUBRID does not allow to create or drop a database from within the SQL query. Command line &lt;code&gt;cubrid createdb&lt;/code&gt;, &lt;code&gt;cubrid deletedb&lt;/code&gt; utilities or &lt;a href=&quot;/wiki_tools&quot; target=&quot;_self&quot;&gt;CUBRID GUI Tools&lt;/a&gt; should be used to accomplish this task.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;/p&gt;

&lt;h3&gt;Data Types&lt;/h3&gt;
&lt;p&gt;As of version 9.0.0 CUBRID does not support &lt;code&gt;UNSIGNED&lt;/code&gt;, &lt;code&gt;BOOL&lt;/code&gt;&amp;nbsp;data types, if you want to use them.&amp;nbsp;&lt;code&gt;ENUM&lt;/code&gt;&amp;nbsp;is supported since &lt;a href=&quot;/blog/news/announcing-cubrid-9-0-with-3x-performance-increase-and-sharding-support/&quot; target=&quot;_self&quot;&gt;9.0.0&lt;/a&gt;.&amp;nbsp;The rest will be implemented in the future versions. See &lt;a href=&quot;/cubrid_mysql_oracle_data_type_mapping&quot; target=&quot;_self&quot;&gt;CUBRID vs. MySQL vs. Oracle Data Type Mapping&lt;/a&gt; for more information on recommended data type mapping.&lt;/p&gt;

&lt;p&gt;In 8.4.1. if you set &lt;code&gt;SYS_TIMESTAMP&lt;/code&gt; as a &lt;code&gt;DEFAULT&lt;/code&gt; value of a &lt;code&gt;TIMESTAMP&lt;/code&gt; column when creating a table, the &lt;code&gt;TIMESTAMP&lt;/code&gt; value &lt;b&gt;at the point of&lt;/b&gt; &lt;code&gt;CREATE TABLE&lt;/code&gt; &lt;b&gt;will be set as default&lt;/b&gt;, &lt;b&gt;NOT&lt;/b&gt; the time at which the data is INSERTed. Therefore, in order to set the current time and not the time when the table was created, you must specify the &lt;code&gt;SYS_TIMESTAMP&lt;/code&gt; value for the &lt;code&gt;VALUES&lt;/code&gt; of the &lt;code&gt;INSERT&lt;/code&gt; statement when entering data.&lt;/p&gt;

&lt;p&gt;In 9.0.0&amp;nbsp;&lt;code&gt;SYS_TIMESTAMP&lt;/code&gt;/&amp;nbsp;&lt;code&gt;SYSDATE&lt;/code&gt;&amp;nbsp;set as &lt;code&gt;DEFAULT&lt;/code&gt;&amp;nbsp;values will be based on the time/date of the query execution.&lt;/p&gt;

&lt;h3&gt;User Defined Data Types&lt;/h3&gt;&lt;p&gt;In CUBRID users can create columns with custom data type. One table can be a data type for a column in another table. See an example given in the &lt;b&gt;Reserved Words&lt;/b&gt; section above.&lt;/p&gt;

&lt;h3&gt;Data Type Boundaries&lt;/h3&gt;
&lt;p&gt;Also pay attention to permitted [CUBRID RDBMS Size Limits|maximum and minimum] values for data types.&lt;/p&gt;

&lt;h3 id=&quot;lob&quot;&gt;Large Objects&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;In CUBRID [Working with CUBRID BLOB / CLOB Data Types|Large Objects (BLOB/CLOB)] are stored outside the database on the external storage while the references to those files are stored in database columns.&lt;/li&gt;
&lt;li&gt;Since they are stored on the external disk, LOB data cannot be indexed. See the &lt;a href=&quot;/manual/841/en/Creating%20and%20Altering%20Columns&quot; target=&quot;_self&quot;&gt;manual&lt;/a&gt; for more info.&lt;/li&gt;
&lt;li&gt;Likewise, UNIQUE index cannot be created.&lt;/li&gt;
&lt;li&gt;Columns with LOB data type cannot be &lt;code&gt;NOT NULL&lt;/code&gt; and cannot have &lt;code&gt;DEFAULT&lt;/code&gt; value.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;/p&gt;

&lt;h3&gt;Indexing in CUBRID&lt;/h3&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;CUBRID uses &lt;a href=&quot;/cubrid_query_tuning&quot; target=&quot;_self&quot;&gt;B+tree indexes&lt;/a&gt; to improve search performance&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Works great for equality operator (&lt;code&gt;=&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Since indexes are represented as trees, Key range scan allows to significantly improve the search performance if WHERE clause contains range conditions (&lt;code&gt;&amp;lt;&lt;/code&gt;, &lt;code&gt;&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;=&lt;/code&gt;, &lt;code&gt;&amp;gt;=&lt;/code&gt;, &lt;code&gt;=&lt;/code&gt;). If Range conditions are not defined, the Optimizer will attempt to perform sequential table scan.&lt;/li&gt;
&lt;li&gt;Try to avoid using irregular conditions such as &lt;code&gt;&amp;lt;&amp;gt;&lt;/code&gt;, &lt;code&gt;!=&lt;/code&gt;, or &lt;code&gt;NULL&lt;/code&gt;, since the Optimizer will not be able to take the full advantage of the index tree, and instead will perform a sequential scan.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;/cubrid_covering_index&quot; target=&quot;_self&quot;&gt;Covering Index&lt;/a&gt; is magic. Use it to improve the search performance.&lt;/li&gt;
&lt;li&gt;If possible, utilize &lt;code&gt;LIMIT&lt;/code&gt; clauses to take advantage of &lt;b&gt;Key limit optimizations&lt;/b&gt;.&lt;/li&gt;
&lt;li&gt;Learn about &lt;b&gt;In-place Sorting&lt;/b&gt; feature in CUBRID to improve the performance of &lt;code&gt;ORDER BY&lt;/code&gt; statements.&lt;/li&gt;
&lt;li&gt;Use &lt;code&gt;COUNT(*)&lt;/code&gt; instead of &lt;code&gt;COUNT(col_name)&lt;/code&gt;, unless you really know what you are doing.&lt;/li&gt;
&lt;li&gt;Index names in CUBRID are &lt;b&gt;unique per table&lt;/b&gt;. For better readability, you can indicate in an index name the &lt;i&gt;name of the table&lt;/i&gt; the index belongs to like &lt;code&gt;pk_tableName_col1Name_col2Name_etc&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;LOB data cannot be indexed in CUBRID.&lt;/li&gt;
&lt;li&gt;Avoid creating indexes on columns where values can exceed &lt;b&gt;16KB&lt;/b&gt;. For more information refer to &lt;b&gt;Page Storage Structure&lt;/b&gt; section of &lt;a href=&quot;/blog/dev-platform/how-sql-update-is-performed-in-cubrid-rdbms/&quot; target=&quot;_self&quot;&gt;How SQL UPDATE is performed in CUBRID RDBMS&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Try to avoid low-selectivity edges (eg. indexes on columns where there are very few distinct values like &lt;i&gt;gender&lt;/i&gt;). Since in CUBRID indexes are stored in B+tree, in low-selectivity case, same value records (eg. records where &lt;i&gt;gender = &apos;M&apos;&lt;/i&gt;) will be stored in the same index node. If there are too many records which cannot fit into one page, CUBRID will need to maintain Overflow OID page for them. If the number of separate overflow pages increase, it will affect the performance as there will be a burden to navigate between these additional links. For more, refer to &lt;b&gt;Overflow OID&lt;/b&gt; section in the same &lt;i&gt;How SQL UPDATE is performed in CUBRID RDBMS&lt;/i&gt; blog.&lt;/li&gt;
&lt;li&gt;If you have created an index and would like to UPDATE/DELETE/INSERT a new data, try to use random inserts to avoid key locking. Refer to &lt;b&gt;Key Lock&lt;/b&gt; section of &lt;i&gt;How SQL UPDATE is performed in CUBRID RDBMS&lt;/i&gt; blog.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;/p&gt;

&lt;h3&gt;Click Counter&lt;/h3&gt;
&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Take advantage of CUBRID’s unique &lt;a href=&quot;/cubrid_click_counter&quot; target=&quot;_self&quot;&gt;Click Counter&lt;/a&gt; feature. For example, instead of executing two separate SQL statements like:&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;pre class=&quot;brush:sql&quot;  title=&quot;&quot;&gt;
SELECT article FROM article_table WHERE article_id = 130,987;
UPDATE article_table SET read_count = read_count + 1 WHERE article_id = 130,987;
&lt;/pre&gt;
&lt;p&gt;… in CUBRID you can execute only one:&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;pre class=&quot;brush:sql&quot;  title=&quot;&quot;&gt;
SELECT article, INCR(read_count) FROM article_table WHERE article_id = 130,987&lt;/pre&gt;
&lt;p&gt;This will help you avoid expensive lock of the working record generated by &lt;code&gt;UPDATE&lt;/code&gt; operation.&lt;/p&gt;

&lt;h3&gt;AUTO_INCREMENT&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;AUTO_INCREMENT&lt;/code&gt; in CUBRID is implemented as &lt;code&gt;&lt;a href=&quot;/cubrid_serial&quot; target=&quot;_self&quot;&gt;SERIALS&lt;/a&gt;&lt;/code&gt;&amp;nbsp;which are not affected by transaction rollback. This is different from how it is implemented in MySQL. In practice, developers do not care about the implementation details. But with&amp;nbsp;&lt;code&gt;&lt;a href=&quot;/cubrid_serial&quot; target=&quot;_self&quot;&gt;SERIALS&lt;/a&gt;&lt;/code&gt;&amp;nbsp;implementation you can, for example, control the step of the increment or set the initial value. It is good to know what you can do in CUBRID. We have blogged about this in details in &lt;a href=&quot;/blog/cubrid-comparison/things-to-understand-when-moving-from-mysql-to-cubrid/&quot; target=&quot;_self&quot;&gt;Things to Understand When Moving from MySQL to CUBRID&lt;/a&gt;. Please refer to this document.&lt;/p&gt;

&lt;h3&gt;Foreign Keys&lt;/h3&gt;&lt;p&gt;&lt;a href=&quot;/manual/90/en/Constraint%20Definition&quot; target=&quot;_self&quot;&gt;Foreign keys&lt;/a&gt; in CUBRID &lt;b&gt;must&lt;/b&gt;&amp;nbsp;reference &lt;code&gt;PRIMARY KEY&lt;/code&gt;&amp;nbsp;columns of referenced tables. In other words, you cannot reference non-primary key columns.&amp;nbsp;Also, if the parent table has a compound primary key, i.e. PK that consists of multiple columns, all these columns must be referenced in the FOREIGN KEY and&amp;nbsp;in the same order. Referencing only some of them is not allowed. How can a child record have multiple referenced parent records after all?&lt;/p&gt;

&lt;h3&gt;User Management&lt;/h3&gt;&lt;p&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In CUBRID, the smallest &lt;i&gt;grant unit of authorization&lt;/i&gt; is a &lt;b&gt;table&lt;/b&gt;. This means that CUBRID does not support authorizations at the column level. Refer to &lt;a href=&quot;/intro_cubrid_security&quot; target=&quot;_self&quot;&gt;Introduction to CUBRID Security&lt;/a&gt; for more information.&lt;/li&gt;
&lt;li&gt;Also, in CUBRID there is a concept of &lt;b&gt;users&lt;/b&gt; and &lt;b&gt;groups&lt;/b&gt;. Any user can represent a group which will mean that any group member will inherit all the privileges of this group. The parent user which became a group is still a user, i.e. you can use it to connect. Thus, &lt;i&gt;grouping&lt;/i&gt; in CUBRID allows to delegate all the privileges of one user to other users.&lt;/li&gt;
&lt;li&gt;To learn more, we recommend to look at &lt;i&gt;&lt;a href=&quot;/?mid=questions&amp;amp;tag=user&quot; target=&quot;_self&quot;&gt;user management&lt;/a&gt;&lt;/i&gt; related questions and answers.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;ha&quot;&gt;Native High-Availability feature&lt;/h3&gt;&lt;p&gt;Did you know that CUBRID has its own built-in High-Availability feature? Oh, yes, it does. In fact, CUBRID HA is one of the main reasons why Enterprise solution providers choose CUBRID over other open source RDBMS. It is based on transaction log replication, and provides very accurate and predictable fail-over and fail-back features based on CUBRID Hearbeat. You can configure HA environment in three copy modes for transaction log replication: synchronous, semi-synchronous, and asynchronous modes.&lt;/p&gt;

&lt;p&gt;With CUBRID HA, it is possible to build multi &lt;i&gt;&lt;b&gt;Master:Slave&lt;/b&gt;&lt;/i&gt; services. There is also Master:Slave:Replica configuration. &lt;span style=&quot;font-family: Arial, sans-serif; text-align: left; &quot;&gt;This configuration will provide &lt;/span&gt;&lt;em style=&quot;font-family: Arial, sans-serif; text-align: left; &quot;&gt;much lower networking and disk I/O loads&lt;/em&gt;&lt;span style=&quot;font-family: Arial, sans-serif; text-align: left; &quot;&gt; for &lt;/span&gt;&lt;em style=&quot;font-family: Arial, sans-serif; text-align: left; &quot;&gt;heavy read loaded Web services, &lt;/em&gt;&lt;span style=&quot;font-family: Arial, sans-serif; text-align: left; &quot;&gt;than the &lt;/span&gt;&lt;em style=&quot;font-family: Arial, sans-serif; text-align: left; &quot;&gt;single master and multiple slaves&lt;/em&gt;&lt;span style=&quot;font-family: Arial, sans-serif; text-align: left; &quot;&gt; configuration does.&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;For small size Web services whose primary goal is to lower the cost, developers can configure multiple slaves in a single server. This configuration will allow to gather all (or some) slave databases on a single host. Thus, it will be possible to allocate a single physical machine for multiple slave databases, each of which are separately replicated from their own master databases. Refer to &lt;a href=&quot;/cubrid_ha_oscon&quot; target=&quot;_self&quot;&gt;OSCON&lt;/a&gt; conference presentation material to see how you can develop your service architecture.&lt;/p&gt;

&lt;p&gt;To learn more about CUBRID HA, read &lt;a href=&quot;/blog/cubrid-story/overview-of-new-high-availability-features-in-cubrid-3-2/&quot; target=&quot;_self&quot;&gt;Overview of New High-Availability Features in CUBRID 8.4.0&lt;/a&gt; as well as &lt;a href=&quot;/cubrid_ha_process&quot; target=&quot;_self&quot;&gt;How CUBRID HA Works?&lt;/a&gt; Also you are highly encouraged to view our &lt;a href=&quot;/cubrid_ha_oscon&quot; target=&quot;_self&quot;&gt;OSCON&lt;/a&gt; and &lt;a href=&quot;http://www.slideshare.net/cubrid/growing-in-the-wild-the-story-by-cubrid-database-developers&quot; target=&quot;_self&quot;&gt;RIT++&lt;/a&gt; conference presentation materials. You will find very interesting information about CUBRID there.&lt;/p&gt;

&lt;p&gt;If you want to try CUBRID HA, see how to [Configure CUBRID HA with Vagrant and Chef Cookbook under 4 minutes].&lt;/p&gt;

&lt;h3 id=&quot;sharding&quot;&gt;Native Database Sharding feature&lt;/h3&gt;&lt;p&gt;This is something no open source RDBMS can offer you for free. We have developed a native CUBRID SHARD feature which will be released with CUBRID 8.4.3 in October, 2012. All open source! All completely free!&lt;/p&gt;

&lt;p&gt;Refer to &lt;a href=&quot;/blog/cubrid-life/database-sharding-with-cubrid/&quot; target=&quot;_self&quot;&gt;Database Sharding with CUBRID&lt;/a&gt; to get a sneak peek of how will CUBRID SHARD work. We have also posted a blog about the &lt;a href=&quot;/blog/dev-platform/database-sharding-platform-at-nhn/&quot; target=&quot;_self&quot;&gt;difference between CUBRID SHARD and Spock Proxy for MySQL&lt;/a&gt;. We will publish the manual how to setup CUBRID SHARD along with the official announcement. Stay tuned!&lt;/p&gt;

&lt;div id=&quot;endic_ext_wrapper&quot; style=&quot;display: none; &quot;&gt;&lt;/div&gt;

&lt;div id=&quot;endic_ext_wrapper&quot; style=&quot;display: none; &quot;&gt;&lt;/div&gt;

&lt;div id=&quot;endic_ext_wrapper&quot; style=&quot;display: none; &quot;&gt;&lt;/div&gt;&lt;/div&gt;</content>
                  <category term="tutorials"/>
            <category term="HA"/>
            <category term="Sharding"/>
            
   </entry>
   <entry>
      <title>Install Apache Solr on Ubuntu</title>
      <id>http://www.cubrid.org/299219</id>
      <published>2012-02-20T02:13:39-08:00</published>
      <updated>2013-01-02T23:57:19-08:00</updated>
      <link rel="alternate" type="text/html" href="http://www.cubrid.org/299219"/>
      <link rel="replies" type="text/html" href="http://www.cubrid.org/299219#comment"/>
      <author>
         <name>CUBRID</name>
                  <uri>http://www.cubrid.org</uri>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;Installing Apache Solr on Ubuntu is quite easy. In fact, it does not require any installation. All you will need to do is just download and extract the package. But before you proceed, make sure you have already [Install Apache Tomcat on Ubuntu|installed Tomcat] which is necessary to access Solr from the browser.&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;To make further management of Solr server easy, we will first create a separate user for it.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;sudo adduser solr&lt;/pre&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;You will be asked to enter a password for &lt;span style=&quot;font-weight: bold;&quot;&gt;solr&lt;/span&gt; user as well as additional information which you can ignore by simply pressing Enter. Once done, login to this user. When password is prompted, enter the password you have just created.&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;su - solr&lt;/pre&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;Once you are logged in, you will be in &lt;span style=&quot;font-weight: bold;&quot;&gt;/home/solr&lt;/span&gt; directory.&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;Now download the &lt;a target=&quot;_self&quot; href=&quot;http://www.apache.org/dyn/closer.cgi/lucene/solr&quot;&gt;latest version of Apache Solr&lt;/a&gt; from the official site. On that site you will be given a list of mirror sites to download the installation package. Click on one of them. You will see a list of several versions of Solr. Choose the latest one. Copy the URL of the file (&lt;span style=&quot;font-weight: bold;&quot;&gt;*.tgz&lt;/span&gt;) and download it from the terminal as shown below.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;wget http://mirror.apache-kr.org/lucene/solr/4.0.0/apache-solr-4.0.0.tgz&lt;/pre&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;Extract the package.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;tar xzf apache-solr-4.0.0.tgz&lt;/pre&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;All files will be extracted to &lt;span style=&quot;font-weight: bold;&quot;&gt;apache-solr-4.0.0/&lt;/span&gt; directory. This is all you need to continue to work with Solr. To configure Solr server to connect to a CUBRID Database, see the &lt;a href=&quot;/wiki_tutorials/entry/full-index-of-cubrid-database-using-solr-dataimporthandler&quot; target=&quot;_self&quot;&gt;next tutorial&lt;/a&gt;.&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;</content>
                  <category term="Solr"/>
            <category term="installation instructions"/>
            <category term="ubuntu"/>
            
   </entry>
   <entry>
      <title>Install Apache Tomcat on Ubuntu</title>
      <id>http://www.cubrid.org/299164</id>
      <published>2012-02-20T01:41:23-08:00</published>
      <updated>2013-01-02T23:39:42-08:00</updated>
      <link rel="alternate" type="text/html" href="http://www.cubrid.org/299164"/>
      <link rel="replies" type="text/html" href="http://www.cubrid.org/299164#comment"/>
      <author>
         <name>CUBRID</name>
                  <uri>http://www.cubrid.org</uri>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;&lt;a target=&quot;_self&quot; href=&quot;http://tomcat.apache.org/&quot;&gt;Apache Tomcat&lt;/a&gt; is a Web container that allows to serve Java Servlets (such as [Using Solr / Lucene for full text search with CUBRID Database on Ubuntu|Solr full-text search server]) and JSP (Java Server Pages) Web applications. More information can be found on Tomcat official site.&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;In this tutorial you will learn how to install Tomcat 7 on Ubuntu 11.10. To install Tomcat type the following command in the terminal.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;sudo apt-get install tomcat7&lt;/pre&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;This will install Tomcat on port 8080 (default) and autostart it (also it will be set to autostart on system reboot). To see if installation went successfully, navigate to &lt;a target=&quot;_self&quot; href=&quot;http://localhost:8080&quot;&gt;http://localhost:8080&lt;/a&gt; in your browser. You should see a default page which displays &quot;&lt;b&gt;It works!&lt;/b&gt;&quot;.&lt;/p&gt;

&lt;p&gt;To have Apache Solr work with Tomcat, you do not need to configure anything. Default settings will work out of the box. If necessary, you can refer to &lt;a target=&quot;_self&quot; href=&quot;https://help.ubuntu.com/11.04/serverguide/C/tomcat.html&quot;&gt;Ubuntu Documentation for Tomcat&lt;/a&gt;.&lt;br /&gt;&lt;/p&gt;

&lt;h2&gt;Stop/Start Tomcat&lt;/h2&gt;&lt;p&gt;If you need to stop or start Tomcat, run the following respectively:&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;~$ sudo service tomcat7 stop
~$ sudo service tomcat7 start&lt;/pre&gt;

&lt;div id=&quot;endic_ext_wrapper&quot; style=&quot;display: none; &quot;&gt;&lt;/div&gt;&lt;/div&gt;</content>
                  <category term="Tomcat"/>
            <category term="Java"/>
            <category term="Solr"/>
            <category term="ubuntu"/>
            
   </entry>
   <entry>
      <title>Installing CUBRID on Fedora/CentOS</title>
      <id>http://www.cubrid.org/266393</id>
      <published>2012-01-24T20:56:36-08:00</published>
      <updated>2012-12-07T04:57:53-08:00</updated>
      <link rel="alternate" type="text/html" href="http://www.cubrid.org/266393"/>
      <link rel="replies" type="text/html" href="http://www.cubrid.org/266393#comment"/>
      <author>
         <name>CUBRID</name>
                  <uri>http://www.cubrid.org</uri>
               </author>
            <content type="html">&lt;div class=&quot;xe_content&quot;&gt;&lt;p&gt;To install CUBRID on Fedora or Ce using &lt;b&gt;yum&lt;/b&gt;&amp;nbsp;command, we need to tell Yum where to look for CUBRID packages. First, visit one of the following links depending on your OS.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;CentOS:&amp;nbsp;&lt;a href=&quot;/?mid=yum_repository&amp;amp;os=centos&amp;amp;cubrid=8.4.3&quot; target=&quot;_self&quot;&gt;http://www.cubrid.org/?mid=yum_repository&amp;amp;os=centos&amp;amp;cubrid=8.4.3&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Fedora:&amp;nbsp;&lt;a href=&quot;/?mid=yum_repository&amp;amp;os=fedora&amp;amp;cubrid=8.4.3&quot; target=&quot;_self&quot;&gt;http://www.cubrid.org/?mid=yum_repository&amp;amp;os=fedora&amp;amp;cubrid=8.4.3&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Full Tutorial:&amp;nbsp;&lt;a href=&quot;/cubrid_yum_repositories&quot;&gt;http://www.cubrid.org/cubrid_yum_repositories&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;/p&gt;

&lt;p&gt;There choose CUBRID version. You will be given a list of links for your particular version.&amp;nbsp;&lt;/p&gt;

&lt;h2&gt;CUBRID 8.4.3&lt;/h2&gt;

&lt;p&gt;Since CUBRID 8.4.3 there are only 2 repositories and you must choose according to your OS and version:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;For Fedora 15 and above:&lt;br /&gt;
&lt;pre class=&quot;brush:bash;gutter:false&quot;  title=&quot;&quot;&gt;sudo rpm -ivh http://yumrepository.cubrid.org/cubrid_repo_settings/8.4.3/cubridrepo-8.4.3-1.fc15.noarch.rpm&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;For Fedora 13/14 and Centos 6.0 and above:&lt;br /&gt;
&lt;pre class=&quot;brush:bash;gutter:false&quot;  title=&quot;&quot;&gt;sudo rpm -ivh http://yumrepository.cubrid.org/cubrid_repo_settings/8.4.3/cubridrepo-8.4.3-1.el6.noarch.rpm&lt;/pre&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;CUBRID 8.4.1 and below&lt;/h2&gt;
&lt;p&gt;For example, the following link is provided for Fedora 17 where &lt;b&gt;fc17&lt;/b&gt;&amp;nbsp;means this OS version. Other versions will have &lt;b&gt;fc16, fc15&lt;/b&gt;, etc.&lt;/p&gt;

&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;sudo rpm -i http://yumrepository.cubrid.org/cubrid_repo_settings/8.4.1/cubridrepo-8.4.1-1.fc17.noarch.rpm&lt;/pre&gt;

&lt;p&gt;Or CentOS example where &lt;b&gt;el6.2&lt;/b&gt; means CentOS version 6.2:&lt;/p&gt;

&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;sudo rpm -i http://yumrepository.cubrid.org/cubrid_repo_settings/8.4.1/cubridrepo-8.4.1-1.el6.2.noarch.rpm&lt;/pre&gt;

&lt;h2&gt;Installing CUBRID&lt;/h2&gt;

&lt;p&gt;Executing the above command will tell Yum where to look for CUBRID packages.&lt;/p&gt;

&lt;p&gt;Now, you can install CUBRID by running:&lt;/p&gt;

&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt;yum install cubrid&lt;/pre&gt;

&lt;p&gt;To complete the installation and set the CUBRID PATH variables, reboot your OS or logout and login again. Until rebooting you must run &quot;. /etc/profile.d/cubrid.sh&quot; to set the PATH variables every time you open a new terminal window.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Optional:&lt;/b&gt;&amp;nbsp;If you want to install the demodb sample database, run the command:&lt;/p&gt;

&lt;pre class=&quot;brush:bash&quot;  title=&quot;&quot;&gt; sudo yum install cubrid-demodb&lt;/pre&gt;

&lt;a name=&quot;installation_notes&quot;&gt;&lt;/a&gt;
&lt;h2&gt;Installation Notes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;CUBRID is installed in /usr/share/cubrid.&lt;/li&gt;
&lt;li&gt;The configuration files are placed in /etc/cubrid.&lt;/li&gt;
&lt;li&gt;Variable files (such as logs or databases) are stored in /var/cubrid.&lt;/li&gt;
&lt;li&gt;Binaries can be found in /usr/bin and /usr/sbin, while libraries in /usr/lib.&lt;/li&gt;
&lt;li&gt;The path variables $CUBRID and $CUBRID_DATABASES are set in the file /etc/profile.d/cubrid.sh.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;If you run a CUBRID service command, you can view its output in /var/cubrid/tmp/service.cubrid.&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;CUBRID is set to automatically start on boot and the service file is located at /etc/init.d/cubrid.&lt;/li&gt;
&lt;li&gt;On Fedora 15+, there is also a &lt;b&gt;systemd &lt;/b&gt;file located at /usr/lib/systemd/system/cubrid.service&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Highly Important!&amp;nbsp;&lt;/b&gt;cubrid or standalone csql commands can be only ran as cubrid user (which has no password). To connect as this user, use &quot;sudo su -s $SHELL cubrid&quot;.&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;</content>
                  <category term="CUBRID"/>
            <category term="installation instructions"/>
            <category term="CentOS"/>
            <category term="Fedora"/>
            <category term="tutorials"/>
            
   </entry>
</feed> 
