透過 ssh 備份 mysql 資料庫至另一台伺服器
2016年1月20日 星期三
mysqldump -uUSERnAME -p'PASSWORD' YOUR-DATABASE-NAME | ssh user@remote.server.com "dd of=/home/backup-db/db-mysql-test-$(date +'%d-%m-%y').sql"
轉:使用Mysqldump備份與如何還原資料庫
2016年1月19日 星期二
資料來源:TAIWAN DBA Forum
使用mysqldump 指令備份資料庫,會產生一長串重建資料庫所需的SQL指令...
( 站長使用 MySQL 5 )
產生的指令前面的SET會先存下目前的字集設定,然後將字集改成Unicode(UTF8) <-- 這個方便的是 若要轉移到其他資料庫的話 比較不需要為字集煩惱
-- 備份某個資料庫
# mysqldump -u root -p db_name > backup.sql;
-- 備份資料庫中的某個資料表
# mysqldump -u root -p db_name table_name > backup.sql;
-- 備份所有資料庫
# mysqldump -u root -p --all-databases > backup.sql;
-- 復原一個資料庫 (需先建好db_name 這個資料庫, 若沒建立請先執行 mysqladmin create db_name 建立即可)
# mysql -u root -p db_name < backup.sql
-- 復原多個資料庫 ( 因為backup.sql 內已有 CREATE DATABASE指令,因此不需先建DB)
# mysql -u root -p < backup.sql
注意:
因為新版mysqldump預設會使用UTF8,所以還原較沒問題, 若為舊版的mysqldump, 則需要使用--default-character-set 指定字集
# mysql -u root -p --default-character-set=latin1 db_name < backup.sql
php 執行外部指令(ubuntu)
2015年12月9日 星期三
目前大概有兩種:
- 設定 sudoers,讓 apache 這個帳號可以執行程式(NO PASSWD)
- apache 啟用 suEXEC 模組,設定可以執行的指令
ssh 伺服器裡 PermitRootLogin 的作用
ssh server 的設定檔在: /etc/ssh/sshd_config
裡頭有一個選項 PermitRootLogin 決定 root 這個帳號如何登入,可以使用的參數有 "yes", "no","without-password","forced-commands-only"。
- yes 和 no 就不解釋了,只是 「可」登入和「不可」登入。
- without-password : 只能利用金鑰的方式登入
- forced-commands-only: 可以利用金鑰的方式登入,但是必須在 command 選項有指定才可以。註:command 是設在公鑰裡頭的
scratch2 檔案轉成 swf
2015年11月17日 星期二
夥伴分享將 scratch2 轉成 flash 的 swf 格式,利用程式直接轉換就行了,很方便,上網查了一下,發現它可以直接線上轉換(junebettle),在 Windows 下的話,直接用瀏覽器(Google Chrome, firefox)開啟就可以看到設計的程式,不過,在 Ubuntu 系統下,卻會變成下載,我的解決方式如下:
1. 修改相關檔案 /usr/share/mime/packages/freedesktop.org.xml
3. 用 firefox 或 google chrome 開啟就正常了
這樣小朋友做的作品就可以分享給其他人了
1. 修改相關檔案 /usr/share/mime/packages/freedesktop.org.xml
<mime-type type="application/vnd.adobe.flash.movie">改成
<mime-type type="application/x-shockwave-flash">2. sudo update-mime-database /usr/share/mime
3. 用 firefox 或 google chrome 開啟就正常了
這樣小朋友做的作品就可以分享給其他人了
CentOS 架 Moodle + OpenID
2015年11月6日 星期五
習慣了 Debian 系列(Ubuntu),回頭使用 CentOS 時真有些卡,差點就"河蟹"了。
把過程記錄一下,避免下次又遇到:
1. 安裝 Remi/EPEL 套件庫
2. 安裝 Apache,MySQL, PHP
4. 設定 AMP 開機自動執行
5. 安裝 moodle 需要的 php 套件
6. 下載 moodle 最新版(2015/11/05: 2.9)
# cd /var/www/html
# wget https://download.moodle.org/download.php/direct/stable29/moodle-latest-29.zip
# unzip moodle-latest-29.zip
# chmod -R 755 /var/www/html/moodle
# chown -R apache.apache /var/www/html/moodle
7. 建立 moodle data 資料夾
重新啟動 apache
10. 開啟瀏覽器,利用 domainname 連做 moodle 設定
(省略)
11. 把之前在 opensource 網站修改過的 gauth 複製過來
(略)
12. 從 moodle 的外掛中把 gauth 啟用,並做適當的設定
(略)
13. 在 moodle 的登入畫面中增加 openid 登入的圖片連結
(略)
呼!因為安全性的問題只能從自己操作的電腦做 ssh 連線,也只能用校務系統的帳號密碼,所以本來想叫大師來做的任務,只好自己捲袖子撩落去…,還好勉強完成了。
參考:
把過程記錄一下,避免下次又遇到:
1. 安裝 Remi/EPEL 套件庫
CentOS/RHEL 6, 64 Bit:
# rpm -Uvh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
# yum --enablerepo=remi install httpd3. 執行 mysql 初步設定
# yum --enablerepo=remi install mysql mysql-server
# yum --enablerepo=remi install php php-common
# yum --enablerepo=remi install php-common php-cli php-mysql
# service mysqld start會詢問 root 密碼、詢問是否刪除空白密碼的帳號
# /usr/bin/mysql_secure_installation
4. 設定 AMP 開機自動執行
# chkconfig httpd on※重新開機檢查服務是否自動執行(ps, netstat)
# chkconfig mysqld on
5. 安裝 moodle 需要的 php 套件
# yum --enablerepo=remi install php-iconv php-mbstring php-curl php-openssl php-tokenizer php-xmlpc php-soap php-ldap php-pecl-apc php-ctype php-zip php-gd php-simplexml php-spl php-pcre php-dom php-xml php-xmlrpc php-intl php-json
# yum --enablerepo=remi install wget
6. 下載 moodle 最新版(2015/11/05: 2.9)
# cd /var/www/html
# wget https://download.moodle.org/download.php/direct/stable29/moodle-latest-29.zip
# unzip moodle-latest-29.zip
# chmod -R 755 /var/www/html/moodle
# chown -R apache.apache /var/www/html/moodle
7. 建立 moodle data 資料夾
# mkdir /var/www/html/moodledata8. 設定網頁虛擬伺服器
# chmod -R 777 /var/www/html/moodledata
# chown -R apache.apache /var/www/html/moodledata
# vim /etc/httpd/conf.d/nextschool.ntpc.edu.tw.conf--------------------------------------------------------------------------------------
<VirtualHost *:80>
ServerName nextschool.ntpc.edu.tw
DocumentRoot /var/www/html/moodle
ErrorLog /var/log/httpd/nextschool.ntpc.edu.tw_error_log
CustomLog /var/log/httpd/nextschool.ntpc.edu.tw_access_log combined
DirectoryIndex index.html index.htm index.php index.php4 index.php5
<Directory /var/www/html/moodle>
Options -Indexes +IncludesNOEXEC +SymLinksIfOwnerMatch
Allow from all
AllowOverride All
Options=ExecCGI,Includes,IncludesNOEXEC,Indexes,MultiViews,SymLinksIfOwnerMatch
</Directory>
</VirtualHost>
重新啟動 apache
# service httpd restart9. 打開 firewall,允許外部 ip 可以連到 apache 伺服器
#vim /etc/sysconfig/iptables改成下列內容,存檔後重新更新firewall規則或重新開機
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
(省略)
11. 把之前在 opensource 網站修改過的 gauth 複製過來
(略)
12. 從 moodle 的外掛中把 gauth 啟用,並做適當的設定
(略)
13. 在 moodle 的登入畫面中增加 openid 登入的圖片連結
(略)
呼!因為安全性的問題只能從自己操作的電腦做 ssh 連線,也只能用校務系統的帳號密碼,所以本來想叫大師來做的任務,只好自己捲袖子撩落去…,還好勉強完成了。
參考:
- http://www.techoism.com/install-lamp-on-centosrhel/
- http://www.techoism.com/how-to-install-moodle-on-centos/
- http://yenpai.idis.com.tw/archives/273-教學-centos-6-3-設定-1-基本調校與-ssh-連線
訂閱:
文章 (Atom)