2015年6月13日 星期六

[第二章]在Ubuntu上執行.NET程式安裝Mono平台步驟-Mariadb建置篇


==================================================
MariaDB建置步驟:
==================================================

匯入金鑰

sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db
將Mariadb加入source list

sudo apt-get install software-properties-common 
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db 
sudo add-apt-repository 'deb http://ftp.osuosl.org/pub/mariadb/repo/10.0/ubuntu trusty main'
看你目前使用的系統版本

lsb_release -a

用apt-get install 直接安裝

sudo apt-get update
sudo apt-get install mariadb-server
有興趣安裝Galera Cluster(DB叢集)請直接參考下面原文內容

更新內容請參考:https://mariadb.com/kb/en/mariadb/installing-mariadb-deb-files/

2015年6月10日 星期三

[MariaDB] 常用指令


===終端機命令列上執行===


版本查詢:mysql --version

MariaDB啟動的參數內容:mysqld --verbose --help


=== MY SQL 內執行===

顯示目前MariaDB的設定值:show variables;show status;

顯示當前資料庫的表格名稱:show tables;

顯示表格的架構碼:describe [TableName] ;

顯示目前連線狀況:show processlist ; 中斷連線 kill [id]


=== 全文索引相關 ====

將索引關掉(大量新增資料時):alter table [TableName] disable keys ; 開啟 enable keys;









==================DB 操作==========================

SHOW DATABASES;   目前所有資料庫
SHOW TABLES;   目前所有表格
DESCRIBE [TABLE_NAME] 顯示表格的架構


建立與另一個表格相同架構(含PRIVATE KEY)

CREATE TABLE [TABLE_NAME] LIKE [OLD_TABLE]


建立與另一個表格相同架構(不含PRIVATE KEY的空架構)

CREATE TABLE

SELECT * FROM [TABLE_NAME]

=============================查詢==========================

查詢字串後面加上 \G ,改以條列方式呈現

















查詢目前AUTO_INCREMENT 增長的ID

SELECT AUTO_INCREMENT FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME='[QUERY TABLE]'

重新設定AUTO_INCREMENT ID

ALTER [TABLE_NAME] AUTO_INCREMENT=[NUMBER]

=======================INDEX 索引============================

顯示表格中的索引INDEX資料:

SHOW INDEX FROM [TABLE_NAME]  \G

分析SELECT句子中的INDEX狀況

或 SHOW INDEX FROM [TABLE_NAME] WHERE KEY_NAME = '[INDEX_NAME]'

EXPLAIN SELECT * FROM [TABLE_NAME]  \G

新增表格中的索引欄位

ALTER TABLE [TABLE_NAME] ADD INDEX [INDEX_NAME] (COLUMN1,COLUMN2)





=================================================
新增欄位:

ALTER TABLE [TABLE_NAME] ADD COLUMN [COLUMN_NAME]  [TYPE_NAME]

ALTER TABLE USER ADD COLUMN NAME VARCHAR(20)

刪除欄位:

ALTER TABLE [TABLE_NAME] DROP COLUMN [COLUMN_NAME]


新增欄位放置在某欄位後面

ALTER TABLE [TABLE_NAME] ADD COLUMN [COLUMN_NAME]  [TYPE_NAME] AFTER [COLUMN_NAME]

新增欄位放置在第一欄

ALTER TABLE [TABLE_NAME] ADD COLUMN [COLUMN_NAME]  [TYPE_NAME] FIRST





==========================修改===============================

改變原有欄位的名稱、型態

ALTER TABLE [TABLE_NAME] CHANGE COLUMN [OLD_COLUMN_NAME] [NEW_COLUMN_NAME] [COLUMN_TYPE] NOT NULL DEFAULT [DEFAULT_VALUE]

修改欄位預設值

ALTER TABLE [TABLE_NAME] ALTER [COLUMN_NAME] SET DEFAULT [VALUE]

修改表格名稱(表格層)

RENAME [TABLE_NAME] TO [NEW_TABLE_NAME]

修改表格名稱(資料庫層)

RENAME  [TABLE_NAME_1] TO [TABLE_NAME_2] ,

[DATABASE].[TABLE_NAME_0] TO [DATABASE.[TABLE_NAME_1]]


============================備份、還原===========================

備份
mysqldump --user='[USER_NAME]' -p  \
[DATABASE_NAME] [TABLE_NAME]  > BACKUP.SQL

備份整個資料庫
mysqldump -u root -p --no-data [DATABASE_NAME] > schema.sql


還原
mysql --user='[USER_NAME]' -p \
[DATABASE_NAME] < [BACKUP_FILE]




2015年3月16日 星期一

在Ubuntu上執行.NET程式安裝Mono平台步驟

2015.06.07

安裝mono

sudo apt-get install mono-complete

sudo apt-get install mono-runtime


==================下面是舊文章僅供參考============================

一、安裝XSP

命令提示字元下,執行以下指令

1.
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
echo "deb http://download.mono-project.com/repo/debian wheezy main" | sudo tee /etc/apt/sources.list.d/mono-xamarin.list
sudo apt-get update

2.
echo "deb http://download.mono-project.com/repo/debian wheezy-apache24-compat main" | sudo tee -a /etc/apt/sources.list.d/mono-xamarin.list

3.
sudo apt-get install mono-devel  mono-complete referenceassemblies-pcl 


4
測試mono是否正常執行(hello.cs)

using System;   public class HelloWorld { static public void Main () { Console.WriteLine ("Hello Mono World"); } }

編譯cs檔:
mcs hello.cs

然後測試執行:
mono hello.exe

5.測試web 是否正常執行,安裝xsp4

sudo apt-get install mono-xsp4

在你所在目錄下建立一個.aspx頁面

<%@ Page Language="C#" %> <html> <head> <title>Sample Calendar</title> </head> <asp:calendar showtitle="true" runat="server"> </asp:calendar>

執行 xsp4 --port 9000

看看 http://localhost:9000/hello.aspx 網頁是否正常執行


參考文件:

Install Mono on Linux

Mono Basics


二、手動安裝mod_mono

1.
sudo apt-get install libapache2-mod-mono

想啓用.Net 2.0版,可以加裝(選擇性,不一定要裝)

sudo apt-get install mono-apache-server2

2.
sudo a2enmod mod_mono

3.如果想要將版本改為.Net 2.0版可以在/etc/apache2/mods-available/mod_mono.conf下修改,不然保持預設值即可


vim /etc/apache2/mods-available/mod_mono.conf

4.設定你的網站,在/etc/mono-server4目錄下副檔名是.webapp,你可以查使用man xsp查閱詳細的內容, 下面列出概要

====================================================
       <apps>
       <web-application>
               <name>{appname}</name>
               <vhost>{virtual host for application}</vhost>
               <vport>{port for the application}</vport>
               <vpath>{virtual directory in apache}</vpath>
               <path>{physical path to aspx files}</path>
               <!-- <enabled> is true by default -->
               <enabled>{true|false}</enabled>
       </web-application>
       </apps>
=======================================================

5.重新啓動apache2,沒有安裝的話 sudo apt-get install apache2

sudo /etc/init.d/apache2 restart

6.新增一個apache2(2.4版以上)的站台設定檔/etc/apache2/sites-enabled/example.com.conf,裡面有以下內容


===========================================================
<VirtualHost *:80>
#        ServerName example.com

        DocumentRoot /var/www/example.com/

        <Directory /var/www/example.com/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Require All granted
#                Order allow,deny
#                Allow from all
#                SetHandler mono
                DirectoryIndex index.aspx index.html
        </Directory>
</VirtualHost>


======================================================

直接用ip測試應該可以看得到index.html的內容,但index.aspx還不會正常顯示


7.設定asp.net的設定檔案

先將剛剛在apache中建立的example.com.conf中的mono註解拿掉#

#                SetHandler mono  

再來在/etc/mono-server4中建立example.com.webapp檔,內容如下

<apps>
        <web-application>
                <name>example.com</name>
#                <vpath>/moo</vpath>
                <path>/var/www/example.com</path>
#                <vhost>example.com</vhost>
        </web-application>
</apps>

再測試一下index.aspx應該就可以正常顯示了,vpath和vhost是虛擬目錄和主機名,視你的需要設定吧

參考文件:

ModMono〉Non-AutoHosting Instructions

Apache HTTP Server Version 2.4 VirtualHost Examples

其他資源:

各作業系統的mono下載



下一章:Mono主機上建置Restful Web Api

2015年3月4日 星期三

胖瘦365-android apk功能




 進入app先設定性別、年紀....基本資料





























首頁會根據你的設定以及最新一筆的測量記錄來判斷增加或減少體重數以及距離目標體重還有多少公斤(常常提醒你的目標就不容易偷吃喲)

點選紅色數字可以直接新增一筆目前時間的記錄


























接著可以輸入專業的七大指數測量工具(可以google :TANITA 七大指數),或只有輸入體重也可以
















或者可以透過右上方的選單,進入「測量記錄」瀏覽全部清單









根據填入的資料判斷上升或下降(第一筆會和你的基準體重比對,後面新增的會和上一筆比對),如果下降,恭喜你距離目標又更進一步(出現笑臉)




























回到主頁下方會計算你今天的基礎代謝,告知你今天剩下多少卡路里可以使用,直接點選可以進入新增或修改今天的卡路里記錄




























上方顯示今天的卡路里狀況

























新增點心或運動,會直接加總今天新增的資料

















































在運動的清單中的項目長按會出現對話框詢問是否要刪除



























你也可以從首頁右上角進入瀏覽清單卡路里內容

























上方會顯示你目標要減的總卡路里記錄,以及目前已累積減去的卡路里,直接點選清單可以修改(有數字)或新增(無記錄),長按一樣會跳出對話框詢問是否刪除該筆資料



























進入「關於我們」,會直接呈現我們所在位置的GoogleMap地圖,點選連結可以直接打電話、瀏覽網頁、或是Email


























點選指標可以啓動路徑規劃,告知如何到達目的地































目前版本v1.02.05 Beta



2014年12月20日 星期六

[Mono Develop] 使用建立MariaDB當作asp.net Code First的資料庫(Vistual Studio Community 2013可適用)


我是用在Ubuntu下使用MonoDevelop (先前在winodw下裝mono run .net還是有點問題,查了之後在bug report上顯示尚待解決),所以你需要安裝MariaDB和Apache2和Mono和MonoDevelop,看看站內有沒有相關文件不然就Google一下。


進入主題:(Vistual Studio 2013步驟是差不多的)

1.首先在MonoDevelop下載 EntityFramework 和MySql Data Entity




















2.確認Package之中是否出現元件的參考




















[MariaDB]變更MariaDB的預設儲存引擎InnerDB到TokudB Part 2


為什縻要將預設引擎innerDB改為tokuDB請參考兩者之間的比較(光新增資料效率就差了100倍/秒)

http://www.tokutek.com/tokudb-for-mysql/tokudb-vs-innodb/



查詢mysql版本:mysql --version

10.x.x-MaridB代表新安裝的



5.x.x - MariaDB 代表之前有裝過mysql







執行:dpkg-query -l libevent-*











確定有 libevent-1.4版,沒有的話執行(Ubuntu14預設是裝2.0版,要加裝1.4版不然執行TokuDB時會有錯誤)

先切換身份到root : sudo su ,接著執行

apt-get install libevent-1.4


下載tokuDB(下面網址選mariadb那一個)

http://www.tokutek.com/tokudb-for-mysql/download-community/












將檔案儲存在暫存的資料庫,我安裝在/temp中,沒有的話,執行:mkdir /temp

接著參考此篇安裝步驟:http://docs.tokutek.com/tokudb/tokudb-index-installation.html

1.建立mysql 群組指定為927(如果/etc/group己經有此群組請跳過)

groupadd -g 927 mysql

2.建立mysql 帳號並加入至927的mysql群組中(如果/etc/passwd中己經有此帳號請跳過)

useradd -r -u 927 -g mysql mysql

3.接著建立tokuDB要使用的資料夾

mkdir -pv /opt/tokutek

4.進到該資料夾中將剛剛下載的tokuDB的壓縮檔解壓縮

cd /opt/tokutek

tar xvzf /temp/[你下載的tokuDB壓縮檔名稱]

例.tar xvzf /temp/mariadb-5.5.40-tokudb-7.5.3-linux-x86_64.tar.gz

5.將解開後很長的檔案資料名稱連結到mysql這個名稱

ln -sv [你下載的tokuDB壓縮檔名稱] mysql

例.ln -sv mariadb-5.5.40-tokudb-7.5.3-linux-x86_64 mysql

6.將解壓縮後的資料夾變更擁有者和群組權限

chown -Rv mysql:mysql [你下載的tokuDB壓縮檔名稱]

例.chown -Rv mysql:mysql   mariadb-5.5.40-tokudb-7.5.3-linux-x86_64














7.將support-files資料夾中tokuDB提供的設定檔my-small.cnf蓋掉mysql中的my.cnf檔案(原文中的/etc/my.cnf是錯的,應該是/etc/mysql/my.cnf),記得先備份原有檔案my.cnf為my.cnf.bak

cp /etc/mysql/my.cnf /etc/mysql/my.cnf.bak

cp -v support-files/my-small.cnf /etc/mysql/my.cnf

8.接著在/etc/mysql/my.cnf中[mysqld]區段後增加以下內容

datadir = /var/lib/mysql
basedir = /opt/tokutek/mysql
user = mysql
log_error = /var/log/mysql/error.log

以及將原有的socket參數改回原本mysql的路徑

/var/run/mysqld/mysqld.sock
























9.重新初始化原有的系統資料表(目前路徑還在/opt/tokutek/mysql喲)

scripts/mysql_install_db --user=mysql --datadir=/var/lib/mysql --basedir=/opt/tokutek/mysql

10.將原本/etc/init.d/mysql改成連結到tokuDB的mysql.server(一樣記得將原有的mysql備份起來)

mv /etc/init.d/mysql /etc/init.d/mysql.bak

ln -sv /opt/tokutek/mysql/support-files/mysql.server /etc/init.d/mysql

11.接著還要將hugepage關掉,不然/var/log/mysql/error.log中還會看到這個錯誤

請參考:[第三章]使用TokuDB前先將Huge pages 參數關掉

















12.最後啟動mysql 並確認TokuDB是否正常

/etc/init.d/mysql restart

mysql -u [mysql的管理員帳號] -p

例. mysql -u root -p

接著輸入 show plugins會看到tokuDB都是運作中

show plugins;

















再來show engines,會看到預設是tokuDB

show engines;









大功告成


==============測試=================

試著建立一個新表看看引擎是否預設為TokuDB

create database testdb ;

create table users
(
    id int not null,
    email char(50) not null,
    name char(20) not null
);


接著看users的資料表引擎

show table status from [DatabaseName] where name='[TableName]'

例. show table status from testdb where name='users'




OK !沒問題顯示為TokudB Engine



試著修改表格的engine

alter table [TableName] engine ='[Engine Name]'

例. alter table testdb.user engine ='Aria';











要將預設引擎變更可以執行

set default_storage_engine=[EngineName]






















[MariaDB]使用TokuDB前先將Huge pages 參數關掉 Part 3


訊息:TokuDB: Huge pages are enabled, disable them before continuing
















可以參考這一篇

How to enable TokuDB in MariaDB


懶得看可以參考以下:




終端機下輸入

echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag

接著建立一個tokudb.cnf文字檔

======================文字檔內容===================
# See https://mariadb.com/kb/en/how-to-enable-tokudb-in-mariadb/
# for instructions how to enable TokuDB
#
# See https://mariadb.com/kb/en/tokudb-differences/ for differences
# between TokuDB in MariaDB and TokuDB from http://www.tokutek.com/

plugin-load=ha_tokudb

==================================================

接著放在/etc/mysql/conf.d/tokudb.cnf (Ubuntu & Debian)











接著輸入

cat /sys/kernel/mm/transparent_hugepage/enabled

你可以看到原本的[always]被括住了,修改後變[never]被括住了








登入MariaDB後手動啟動tokuDB

INSTALL SONAME 'ha_tokudb';

再執行

show engines;

就可以看到tokuDB在引擎清單



2014.11.1
Q.系統重新啟動後,原本的HugePage又回復成always,要再查一下如何把參數設在啟動中

「修改個人登入設定」

直接將
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
寫在個人設定檔之中

vi ~/.bashrc 最底下

輸入 source ~/.bashrc 重新讀取bash(不用再登出登入)

再看一下是否正常括在[never]的地方
cat /sys/kernel/mm/transparent_hugepage/enabled

「修改系統設定」

在/etc/profile.d/dishugepage.sh,建立一個sh檔

新增底下內容:
=============================
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
                echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
               echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi
=============================
系統重啟後檢查是否正常
cat /sys/kernel/mm/transparent_hugepage/enabled



方法二:修改/etc/rc.local

http://www.chriscalender.com/disabling-transparent-hugepages-for-tokudb/



熱門文章