阿里云服務(wù)器搭建NextCloud

NextCloud搭建

NextCloud是一個(gè)私有云軟件

搭建的整個(gè)過(guò)程十分簡(jiǎn)單,主要有兩個(gè)步驟:

  1. 使用docker啟動(dòng)NextCloud應(yīng)用
  2. 為NextCloud配置MySQL數(shù)據(jù)庫(kù)

Docker搭建NextCloud應(yīng)用

拉取鏡像:

docker pull nextcloud

啟動(dòng)應(yīng)用:

docker run -d \
--name nextcloud \
-p 8000:80 \
-v /root/apps/nextcloud/data:/var/www/html \
nextcloud

沒(méi)什么問(wèn)題的話(huà)就啟動(dòng)成功了,使用IP:8000訪(fǎng)問(wèn)下應(yīng)該就可以看到nextcloud的初始化界面

配置MySQL數(shù)據(jù)庫(kù)

nextcloud自帶SQLit數(shù)據(jù)庫(kù),但是性能較低,官方推薦使用MySQL數(shù)據(jù)庫(kù)

如果只是體驗(yàn)一下,完全可以不配置數(shù)據(jù)庫(kù),直接創(chuàng)建一個(gè)管理員賬戶(hù)即可

  1. 登錄nextcloud初始化界面

    在首次登錄nextcloud界面時(shí),是一個(gè)初始化界面,要求填寫(xiě):

    1. 管理員用戶(hù)名。注意,用戶(hù)名與后面數(shù)據(jù)庫(kù)賬戶(hù)名是有關(guān)聯(lián)的,比如你的用戶(hù)名為admin,那么數(shù)據(jù)庫(kù)賬戶(hù)名一定要是oc_admin。
    2. 管理員密碼。管理員密碼沒(méi)有重復(fù)確認(rèn),設(shè)置時(shí)請(qǐng)慎重
  2. MySQL數(shù)據(jù)庫(kù)操作

    1. 創(chuàng)建數(shù)據(jù)庫(kù)

      create database nextcloud;
      
    2. 創(chuàng)建賬戶(hù)

      create user oc_admin@localhost identified by 'adminpasswd';
      

      前面說(shuō)了,這里的賬戶(hù)一定要與nextcloud賬戶(hù)對(duì)應(yīng),就是前面加個(gè)oc_

    3. 為賬戶(hù)賦予訪(fǎng)問(wèn)權(quán)限

      GRANT ALL PRIVILEGES ON nextcloud.* TO 'oc_admin'@'%' IDENTIFIED BY 'adminpasswd'
      
    4. 刷新權(quán)限

      flush privileges;
      
  3. 填寫(xiě)nextcloud初始化界面上的配置

    1. oc_admin
    2. adminpasswd
    3. nextcloud
    4. ip:3306

    上面的MySQL地址部分是比較奇怪的,MySQL數(shù)據(jù)庫(kù)與nextcloud應(yīng)用在同一臺(tái)服務(wù)器上,但報(bào)錯(cuò),找不到服務(wù)器地址。最后用了自己服務(wù)器的域名才成功的

搭建過(guò)程中踩的坑

  1. nextcloud用戶(hù)名定義為aa,數(shù)據(jù)庫(kù)用戶(hù)名填寫(xiě)bb,報(bào)錯(cuò):ERROR 1044(42000): Access denied for user 'oc_aa'@'localhost' to database,oc_aa沒(méi)有nextcloud數(shù)據(jù)庫(kù)權(quán)限。

    這時(shí)候就很奇怪了,數(shù)據(jù)庫(kù)賬戶(hù)為bb,跟aa有半毛錢(qián)關(guān)系?百度了下,也有外國(guó)友人遇到同樣的問(wèn)題,但是并沒(méi)有給出解決方案。自己推理一下,既然說(shuō)oc_aa沒(méi)有權(quán)限,那么就把數(shù)據(jù)庫(kù)賬戶(hù)取名oc_bb吧,結(jié)果就成了。。。

  2. 數(shù)據(jù)庫(kù)地址填寫(xiě) localhost 或者 127.0.0.1

    這里又報(bào)錯(cuò):SQLSTATE[HY000] [2002] No such file or directory,找不到數(shù)據(jù)庫(kù)
    原因:nextcloud 和 MySQL 都是啟動(dòng)在容器中, 127.0.0.1 肯定不行。。。

  3. MySQL數(shù)據(jù)庫(kù)相關(guān)

    由于上面第二個(gè)問(wèn)題,需要在MySQL數(shù)據(jù)庫(kù)中進(jìn)行用戶(hù)的添加和刪除操作,平時(shí)大多在搞增刪改查,關(guān)于MySQL用戶(hù)的操作還真不熟練,這里記錄一下

    # 切換數(shù)據(jù)庫(kù)
    use mysql;
    # 查詢(xún)數(shù)據(jù)庫(kù)中的所有用戶(hù)
    select user from user;
    # 刪除用戶(hù)
    delete from user where user=`username`
    # 上面的操作可能會(huì)觸發(fā)保護(hù)機(jī)制,使用一種臨時(shí)策略去除保護(hù)機(jī)制,再重新登錄MySQL時(shí),保護(hù)機(jī)制會(huì)恢復(fù)
    # 保護(hù)機(jī)制報(bào)錯(cuò):ERROR 1175: You are using safe update mode
    set sql_safe_updates=0; # 然后再執(zhí)行delete操作就好了
    # 在刪除用戶(hù)后,再次創(chuàng)建與刪除用戶(hù)同名的用戶(hù)時(shí)報(bào)錯(cuò):ERROR 1396 (HY000): Operation CREATE USER failed for 'XXXX'@'XXXX',原因是沒(méi)有刷新,刷新一下權(quán)限就好了
    flush privileges;
    
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容