1. 程式人生 > 其它 >clickhouse資料目錄路徑問題

clickhouse資料目錄路徑問題

技術標籤:linux

在我們使用yum或者官方包安裝clickhouse時,資料會預設放在/var/lib/clickhouse資料夾中,但在實際開發中一般會把資料儲存在另外一個分割槽中,這時我們就要修改資料目錄的路徑了。
如果還沒有安裝,請參照我的上一篇手動安裝,如果已經安裝則可以參考一下方法
一、複製資料目錄到指定的資料夾並建立軟連線。
1.把/var/lib/clickhouse下的檔案複製到指定的目錄並建立軟連線到原目錄
這種方法不需要修改配置檔案,資料實際儲存在你修改的目錄中,只是建立了一個軟連線供clickhouse呼叫。具體指令碼如下

data_dir=/usr/local/data/clickhouse
mkdir
-p $data_dir ####複製資料目錄到新的路徑 cp /var/lib/clickhouse/data -r $data_dir cp /var/lib/clickhouse/flags -r $data_dir cp /var/lib/clickhouse/format_schemas -r $data_dir cp /var/lib/clickhouse/metadata -r $data_dir cp /var/lib/clickhouse/preprocessed_configs -r $data_dir cp /var/lib/clickhouse/tmp -r $data_dir cp /var/lib/clickhouse/user_files -r $data_dir
####刪除原來資料夾的檔案 rm -rf /var/lib/clickhouse/data rm -rf /var/lib/clickhouse/flags rm -rf /var/lib/clickhouse/format_schemas rm -rf /var/lib/clickhouse/metadata rm -rf /var/lib/clickhouse/preprocessed_configs rm -rf /var/lib/clickhouse/tmp rm -rf /var/lib/clickhouse/user_files ####建立軟連線 ln -s $data_dir/data /var/lib/clickhouse ln -s $data_dir
/flags /var/lib/clickhouse ln -s $data_dir/format_schemas /var/lib/clickhouse ln -s $data_dir/metadata /var/lib/clickhouse ln -s $data_dir/preprocessed_configs /var/lib/clickhouse ln -s $data_dir/tmp /var/lib/clickhouse ln -s $data_dir/user_files /var/lib/clickhouse ####給新的路徑新增許可權 chown -R clickhouse.clickhouse $data_dir ####重啟clickhouse sudo /etc/init.d/clickhouse-server restart

二、移動原始資料目錄並修改配置檔案
這種方法先將資料目錄移動到指定路徑並修改/etc/clickhouse-server/config.xml檔案中的配置路徑具體參考我的上一篇文章,這種方式可能會出現問題。
在這裡插入圖片描述
在data資料夾下的資料檔案是以軟連線的方式連線到原來的store目錄下的,當你把原來的資料移動到新的目錄,原檔案已經不在,有可能會找不到檔案而不錯,所以這種方式謹慎使用。
三、直接修改配置檔案(未測試)
這種方法只是我的新想法,還沒有測試過。
在安裝clickhouse的時候它會自動建立目錄並建立系統表,那麼我們修改路徑配置後重新啟動clickhouse會不會自動建立目錄並生成新的庫呢?如果可以我們就可以放棄以軟連線的方式修改資料庫了。如果可以,就是第二種方式的升級版,不需要擔心原來的軟連線找不到檔案的問題了。
最後就是配置檔案配置監聽IP和登入密碼的問題
配置監聽IP在/etc/clickhouse/config.xml檔案中
在這裡插入圖片描述
如果只允許本機訪問的話就設定為127.0.0.1
如說允許外部訪問可以配置成本機IP或0.0.0.0
修改密碼在/etc/clickhouse/user.xml檔案中
在這裡插入圖片描述