顯示具有 database 標籤的文章。 顯示所有文章
顯示具有 database 標籤的文章。 顯示所有文章

2014年8月14日 星期四

ubuntu 上安裝 Elasticsearch Cluster

1. 參考 Installing ElasticSearch on Ubuntu 14.04 ,分別在欲加入 Elasticsearch Cluster 的每部機器上完成安裝

### Install  Oracle Java (改安裝 Oracle Java)
cd /tmp
sudo apt-get install python-software-properties
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java7-installer
 
### Download and Install ElasticSearch ver 1.3.2
### Check http://www.elasticsearch.org/download/ for latest version of ElasticSearch and replace wget link below
wget https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-1.3.2.deb
sudo dpkg -i elasticsearch-1.3.2.deb
 
### Install the Java Service Wrapper for ElasticSearch
curl -L http://github.com/elasticsearch/elasticsearch-servicewrapper/tarball/master | tar -xz
sudo mkdir /usr/local/share/elasticsearch
sudo mkdir /usr/local/share/elasticsearch/bin
sudo mv *servicewrapper*/service /usr/local/share/elasticsearch/bin/
rm -Rf *servicewrapper*
sudo /usr/local/share/elasticsearch/bin/service/elasticsearch install
sudo ln -s `readlink -f /usr/local/share/elasticsearch/bin/service/elasticsearch` /usr/local/bin/rcelasticsearch
### Start ElasticSearch
sudo service elasticsearch start
 
### Make sure service is running
curl http://localhost:9200
 
### Should return something like this:
#{
# "status" : 200,
# "name" : "Storm",
# "version" : {
# "number" : "1.3.1",
# "build_hash" : "2de6dc5268c32fb49b205233c138d93aaf772015",
# "build_timestamp" : "2014-07-28T14:45:15Z",
# "build_snapshot" : false,
# "lucene_version" : "4.9"
# },
# "tagline" : "You Know, for Search"
#}

2. 分別修改每部機器上 /etc/elasticsearch/elasticsearch.yml 設定

cluster.name: elasticsearch
node.name: "elastic_your_nodename"

3. 重新啟動 elasticsearch

sudo service elasticsearch restart

4. 測試 Elasticsearch Cluster 是否有多個 node 出現?本例為2個nodes 

curl -XGET http://elastic_your_nodename:9200/_cluster/health?pretty

{
  "cluster_name" : "elasticsearch",
  "status" : "green",
  "timed_out" : false,
  "number_of_nodes" : 2,
  "number_of_data_nodes" : 2,
  "active_primary_shards" : 5,
  "active_shards" : 10,
  "relocating_shards" : 0,
  "initializing_shards" : 0,
  "unassigned_shards" : 0
}
#

2013年8月25日 星期日

ubuntu 安裝 easy_install 和 MySQL Connector/Python


  1. 安裝 easy_install
  2. > sudo wget https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py -O - | python
  3. 安裝 Mysql Connector/Python
  4. > sudo easy_install mysql-connector-python

範例程式
import mysql.connector
from mysql.connector import errorcode

try:
  cnx = mysql.connector.connect(user='userid', password='******',
                              host='127.0.0.1',
                              database='dbname', charset='utf8')
except mysql.connector.Error as err:
  if err.errno == errorcode.ER_ACCESS_DENIED_ERROR:
    print("Something is wrong with your user name or password")
  elif err.errno == errorcode.ER_BAD_DB_ERROR:
    print("Database does not exists")
  else:
    print(err)
else:
  cursor = cnx.cursor()
  query = ("SELECT * FROM tablename ORDER BY id DESC LIMIT 10;")
  cursor.execute(query)
  for i in cursor:
    print i
  cursor.close()
  cnx.close() 


延伸閱讀:MySQL Connector/Python 官網

#

2012年7月13日 星期五

更新至 ubuntu 12.04 後, MySQL 5.5 無法啟動

ubuntu 更新至 ubuntu 12.04 後, MySQL 也從 5.1 更新至 5.5版。但執行

sudo service mysql start 

卻出現

start : Job failed to start 


mysqld 無法正常啟動。查了一下 /var/log/mysql/error.log 發現


[ERROR] /usr/sbin/mysqld: unknown variable 'default-character-set=utf8' 
[ERROR] Aborting 


看來問題出現在預設字元參數設定上,將 /etc/mysql/my.cnf 設定檔中,所有的

   default-character-set=utf8

註解掉,改為

   #default-character-set=utf8


再重新啟動

service mysql start 

即可正常執行。

#

後記:

部份網站文章建議將 default-character-set=utf8 改為 character_set_server=utf8 ,雖然mysqld 可以啟動執行,但如果執行


mysql -u root -p 


之類的 console 指令時,依然無法正常執行,會出現下列訊息:


mysql: unknown variable 'character_set_server=utf8'


/etc/mysql/my.cnf 拿掉 character_set_server=utf8 之後,就正常囉。



##

2012年6月24日 星期日

MongoDB 開放遠端連線

有些時候遇上了 MondoDB Connection refused 時,記得檢查一下 /etc/mongodb.conf 設定是否如下:

bind_ip = 0.0.0.0

port = 27017
記得將預設的 bind IP 127.0.0.1 改為 0.0.0.0 囉!

#

2012年6月13日 星期三

MySQL 每小時的數據資料統計

範例:找出 my_table 資料表每小時的資料統計


select hour(my_timeStamp) as hour, count(1) as count from my_table where DATE_FORMAT(my_timestamp, '%Y-%m-%d') = '2012-06-11' group by hour(my_timestamp);



2012年5月30日 星期三

找出/刪除MySQL資料表中重複的資料

範例:找出 my_table 資料表中 name 重複的資料

select name,count(*) from my_table group by name having count(*) > 1;


範例:刪除 my_table 資料表中 name, id 重複的資料

alter ignore table my_table add unique index(name, id);



2012年4月25日 星期三

ubuntu 更新 MySQL 資料庫時,先移除 /etc/mysql/ 內不相關的大檔案

這幾天發現 ubuntu 使用apt-get 更新新版 MySQL 資料庫時,一直無法短時間內安裝完成。top指令結果發現 egrep 吃掉了將近 9x.x%的CPU。ps -ef |grep mysql 後發現,安裝 .deb過程時的某行 egrep 指令正在檢查 /etc/mysql/ 目錄內的檔案。

忽然意識到,前些日子 mysqldump 的某個結果大檔(其實也僅有3xMB),就放在/etc/mysq/ 底下。猜想一下,決定壓縮、移開這個大檔案到其他目錄。

重新執行apt-get更新後,果然問題迎刃而解。

建議以後更新 ubuntu package時,除了可能存取 MySQL 的程式或Web Server先停止後,再停止 mysqld ,確認 /etc/mysql/ 目錄下沒有一些不相關的檔案內容,然後再執行更新。

$ su -
$ /etc/init.d/apache2 stop
$ /etc/init.d/mysql stop
$ cd /etc/mysql/; (檢查是否有不相關的檔案,暫時移至其他目錄下。)
$ apt-get update
$ apt-get dist-upgrade


碰巧遭遇此情況,提供各位參考。

#