2016年3月31日 星期四

不需要密碼登入 SSH server / SSH key

方便的方法

ssh-copy-id 這個很方便!! 使用方法

#ssh-copy-id xxx@遠端IP

輸入密碼 就會自動記起來了


傳統方式如下
1. 在主機 A 上產生 SSH key

先登入主機 A,用 ssh-keygen 產生 SSH key pair,


#ssh-keygen -t rsa

Generating public/private rsa key pair. 
Enter file in which to save the key (/home/build/.ssh/id_rsa):
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/build/.ssh/id_rsa. 
Your public key has been saved in /home/build/.ssh/id_rsa.pub. 


產生出來的 public/private key 會儲存在此帳號的 ~/.ssh 目錄下,

分別是 id_rsa.pub 和 id_rsa:



2. 將剛產生的 id_rsa.pub 內容加到主機 B 的 ~/.ssh/authorized_keys 檔案裡

可以用 vi 把 id_rsa.pub 的內容加進來,或是用 echo append 的方式,

就是把主機 A 上的 public key 內容附製貼進去~


3. 設定 ~/.ssh 目錄和 ~/.ssh/authorized_keys 檔案的權限

這邊要記得把 ~/.ssh 目錄設成 700,authorized_keys 檔案設成 640。
#chmod 700 ~/.ssh 
#ll -d ~/.ssh
drwx------. 2 build build 58 Oct 16 17:39 /home/build/.ssh [test@machine-b ~]$ cd .ssh

#chmod 640 authorized_keys 


以上 步驟做完就可以不需要密碼 登入你的伺服器 某一些特殊伺服器 例如要Rsync 資料到 QNAP NAS 去時 就需要這樣作

2016年3月28日 星期一

Mysql / MariaDB 備份與還原

MySQL、MariaDB備份指令


備份所有資料庫,匯出成 mysql.sql

#mysqldump -uroot -p -A --default-character-set=utf8 > mysql.sql


匯出資料庫 DB123 到 DB123.sql

#mysqldump -uroot -p -a --default-character-set=utf8 db123 > db123.sql




MySQL、MariaDB還原指令
還原所有資料庫從 mysql.sql
#mysql -uroot -p < mysql.sql


還原資料庫 DB123 從  /root/DB123.sql
#mysql --user=root -p DB123 < /root/DB123.sql





安裝 MariaDB / mysql 升級

轉載自 https://www.orztw.com/2014/02/install-mariadb-on-centos.html

官方網站 : https://mariadb.org/


一、備份先前資料庫

這篇文章有完整資料庫備份還原指令,請先備份先前資料庫後在做以下步驟。

二、移除 MySQL 伺服器

先停止MySQL運作。
移除所有MySQL伺服器&相關物件。

三、準備安裝 MariaDB

安裝MariaDB前,必須先新增MariaDB的知識庫,讓系統使用。
32位元系統
64位元系統

然後更新CentOS。

開始安裝 MariaDB

開始安裝MariaDB伺服器及用戶端(登入、備份用)。
安裝好後啟動MariaDB,MariaDB叫做【mysql】跟MySQL的【mysqld】不一樣!
設定開機啟動MariaDB。

初始化 MariaDB

執行這個初始化程式,過程跟MySQL一模一樣。
第一個問題,Enter current password for root (enter for none):。
請直接按下Enter,因為預設MariaDB沒有密碼。

第二個問題,Change the root password? [Y/n]。
是否更改root密碼,極度建議您設定root密碼,請輸入Y。

第三個問題,Remove anonymous users? [Y/n]。
是否移除匿名帳號,請務必移除匿名帳號,否則別人隨便就可以進入您的資料庫了!

第四個問題,Disallow root login remotely? [Y/n]。
是否移除遠端root登入權限,視需求設定,若要允許root遠端登入,還需要使用另一個指令新增權限,後面會說明!

第五個問題,Remove test database and access to it? [Y/n]。
是否移除測試資料庫跟使用者,留著也沒用!移除請輸入Y。

第六個問題,Reload privilege tables now? [Y/n]。
是否刷新權限表,輸入Y完成所有初始化設定!

讓遠端可以存取root帳號

如果您要使用管理工具從自己的電腦管理MariaDB,必須開放遠端存取權限,所以來建立一個可以遠端存取的root帳號!

一、使用root帳號登入MariaDB,注意:以下步驟只能在MariaDB那台主機上操作。
二、執行下面那段指令後,所有遠端電腦都可以登入您的root帳號,若您是固定IP,也可以將指令中的【%】改成您的IP。

恢復先前資料庫

恢復資料庫請參考這篇文章,裡面有完整教學!

大功告成!

這樣就完成了MySQL更換成MariaDB,如果您的資料庫有很大量的查詢存取,就會發現真的比MySQL快許多,在備份及還原備份時也可以察覺到!