跳到主要內容

修改 MariaDB 預設儲存目錄.md

修改 MariaDB 預設儲存目錄

三年前寫了關於修改 MySQL 預設存放資料夾的記錄「在 uBuntu 中移動 MySQL 的資料存放位置」,經過這幾年的改變和 Oracle 買下昇陽後 MySQL 的轉變,目前已經習慣使用 MariaDB(原 MySQL 創辦人)作為 LAMP 中的 M。再記錄 MariaDB 中預設儲存目錄如何修改。

OS: UBuntu 16.04.3 Server x64
DB: MariaDB 10.2.12

方法上和先前 MySQL 設定大同小異

  1. 停止 MariaDB 服務

    $ sudo systemctl stop mariadb
    
  2. 建立新的存放目錄位置(如:/db/mariadb

    $ sudo madir /db/mariadb
    $ sudo chown mysql.mysql /db/mariadb
    
  3. 複製目前目錄下的內容至新的存放目錄位置

    $ sudo cp -rp /var/lib/mysql/* /db/mariadb
    
  4. 修改 MariaDB 設定檔,Ubuntu 位置為 /etc/mysql/my.cnf

    $ sudo vim /etc/mysql/my.cnf
    

    將 [mysqld] 下的 datadir 修改為新的位置

    [mysqld]
    ...
    datadir     = /db/mariadb
    ...
    
  5. 重新啟動 MariaDB

    $ sudo systemctl start mariadb
    
張貼留言

這個網誌中的熱門文章

Word的合併列印如何出現「千分位」符號

今天樓下的同事突然問我一個問題,合併列印的時候如何顯示「千分位符號」(逗號),就是12,300。在Excel我們可以很容易的為儲存格裡的數字加上千分位的標記,但是儲存格實際儲存的還是只有數字,那個千分位符號是Excel給我們看的一種「格式」。
當我們在Word裡使用Excel做好的報表來合併列印的時候,Word會最真實的將這個數字欄位給讀出來,呈現在合併列印的欄位數值裡,無論在Excel理事不是有設定千分位符號,在Word合併列印後卻沒有出現,所以我們同樣的必須給他加上格式。
Word裡加上格式並不如Excel裡按一下就完成,加上逗號的千分位格式方法如後:
1.在Word裡插入合併列印的欄位變數。
2.在變數上按滑鼠右鍵,選擇「切換功能變數代碼」(也可以直接按Alt+F9),變數會由 <<經費>>變成{ MERGEFIELD "經費" }。
3.加上格式就是把{ MERGEFIELD "經費" }在}前加入數字格式參數 /##,###,會成為{ MERGEFIELD "經費" /# ##,### }(這裡指定五位數,以此類推)
#:這個格式項目會指定要在結果中顯示的必要位數;如果結果不含該位數的數字,則 Word 會顯示一個空格。
0:這個格式項目會指定要在結果中顯示的必要位數;如果結果不含該位數的數字,則 Word 會顯示 0 (零)。
4.預覽內容,就可以發現千分位(逗號)出現,如果數值有零的話,最好可以換成 /# ##,##0,避免空格出現。
數字格式參數請參考Microsoft Office Online

在DOS下檔案名稱加上日期

由於要完成檔案自動備份的需求,以減少每日使用人工的麻煩,也可以避免人為疏失造成的遺漏,需要定時拷貝某個檔案至遠端,在檔名加上日期以避免檔案覆蓋的情形。由於近來接觸Linux較多,自然比較熟悉Linux的Shell語法,回到Windows裡卻想不到解決的方法。
開始使用電腦時,已經活生生的跳過了DOS的年代,雖然會使用Copy語法,卻不知怎麼加上系統日期,參拜估狗大師後得到了解答,使用%DATE%環境變數。

在DOS中使用date會顯示目前日期,但會要求輸入新的日期時間不符合需求,雖然加上"/T"不會詢問新時間,但因為date是指令無法使用在copy的語法中,所以我們使用%DATE%環境變數,所以在我們要加上日期的檔案上加上此環境變數:copy test.txt test_%DATE%.txt

結果並不如我們想像,使用echo看%DATE%的傳回值,會出現"2007/12/4",使用於copy語法裡系統回應「命令語法不正確」,我們必須去除「/」的符號,這就需要用到環境變數的擴充功能了!

用echo來測試:
# echo %DATE:~0,4%: 取環境變數%DATE%的值,由第一碼開始取四碼(可以取出"西元年"的值)。
# echo %DATE:~5,2%:取環境變數%DATE%的值,由第六碼開始取二碼(可以取出"月"的值)。
# echo %DATE:~8,2%:取環境變數%DATE%的值,由第九碼開始取二碼(可以取出"日"的值)。

原先的 #copy test.txt test_%DATE%.txt要更改成 #copy test.txt test%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%.txt 拷貝後的檔案為test_20071204.txt

Python 的 MySQLdb 套件安裝

先前 ubuntu 的套件庫沒有包含 Python 的 MySQLdb 套件,必須手動至 MySQLdb 官網下載位址下載來解壓縮安裝,如果還不確定是不是已經安裝,可以先進 python import 試試看。如果出現 ImportError: No module named MySQLdb 的訊息就表示還沒有安裝這個模組。Python 2.7.6 (default, Mar 222014, 22:59:56) [GCC 4.8.2] on linux2 Type "help", "copyright", "credits" or "license"for more information. >>> import MySQLdb Traceback (most recent call last): File "<stdin>", line 1, in <module> ImportError: No module named MySQLdb >>> exit()手動安裝的方式:先下載目前的版本,解壓縮後安裝,步驟如後。$ sudo tar -zxvf MySQL-python-1.2.4b4.tar.gz $ cd MySQL-python-1.2.4b4 $ python setup.py build $ python setup.py install若要使用 pip 安裝,在這篇文章中有敘述安裝的步驟和方法,這邊記錄一下步驟。$ sudo easy_install pip $ sudo pip install pip --upgrade $ sudo apt-get build-dep python-mysqldb $ sudo pip install MySQL-python現在使用的系統是 ubuntu 14.04.2 64bit,發現套件庫裡已經有包含 MySQLdb 了,只要直接用 apt-get 安裝即可。現在套件庫裡的版本是 1.2.3。$ sudo apt-get install python-mysqldb $ sudo apt-cache policy python-mysq…