Docker部署nextcloud

15 篇文章 0 订阅

1.安装mysql

$ docker run -d --name mysql \
> -v d_mysql:/var/lib/mysql \
> -e MYSQL_ROOT_PASSWORD=password \
> -e MYSQL_DATABASE=nextcloud \
> -e MYSQL_USER=nextcloud \
> -e MYSQL_PASSWORD=password \
> -p 3306:3306 \
> mysql:8.0

说一下这几个选项:

-d选项是让容器以守护态,这样容器就不会自己停止了;–name为容器指定一个名称;-v为数据库映射一个数据卷,d_mysql为本地的一个目录,这样做方便对数据进行本分和迁移;之后四个环境变量分别设置了root用户的密码、新建一个数据库、新建一个用户以及该用户的密码。这里新建的用户对新建的数据库拥有所有权限。然后-p指定端口映射。 MySQL就这样配置完了.

进入其中简单测试一下是不是安装成功了:

$ docker exec -it mysql bash
root@9f49cbe4a285:/# mysql -unextcloud -p
Enter password:
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| nextclud           |
+--------------------+
2 rows in set (0.00 sec)

2.安装next cloud

$ docker run -d --name nextcloud \
-v nextcloud:/var/www/html \
--link mysql:mysql \
-p 8080:80 nextcloud

–link将两个容器连接,这样nextcloud就会直接使用mysql容器作为数据库了。同样-p指定端口,8080是服务器对外开放的端口,网盘都是自己使用登陆的,建议不要选热门端口就行。除此之外,还要确保该端口是打开的,否则访问时会被拒绝;可以用命令行的方式或者云服务器可以更简单一些,直接在安全组中将对应端口开放。 现在,就可以在浏览器上访问了。首次打开会是一个管理员注册页面,数据库选择mysql/MariaDB即可,注意host栏不用填写地址,填写mysql就行。 一般来说到这里就结束了,但是我这里出现了一个错误:

验证不正确,但是在终端是可以正确访问。查了一下,得知是由于MySQL 8默认使用了新的密码验证插件:caching_sha2_password,而之前的PHP版本中所带的mysqlnd无法支持这种验证。 解决这个问题,有两种办法:一种办法是升级PHP支持MySQL 8的新验证插件,但是操作会麻烦一些;另一种是修改MySQL用户的验证,这就简单多了:

$ docker exec -it mysql bash
root@9f49cbe4a285:/# mysql -uroot -p

mysql> ALTER USER 'nextcloud'@'%' IDENTIFIED WITH mysql_native_password BY 'new_password';
Query OK, 0 rows affected (0.02 sec)

mysql> flush privileges;

在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

云原生解决方案

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值