安装包:https://nextcloud.com/changelog/#latest20
系统需求:https://docs.nextcloud.com/server/20/admin_manual/installation/system_requirements.html
nginx 配置:https://docs.nextcloud.com/server/18/admin_manual/installation/nginx.html
php 配置相关:https://docs.nextcloud.com/server/20/admin_manual/installation/source_installation.html#php-fpm-tips-label
修改 php 内存限制:https://www.chinaz.com/program/2011/1010/213048.shtml
安装 php 内存缓存:https://docs.nextcloud.com/server/15/admin_manual/configuration_server/caching_configuration.html
命令行安装:https://docs.nextcloud.com/server/stable/admin_manual/installation/command_line_installation.html

在创建 MySQL 用户时需要设置密码,有时候输入输入密码后会提示创建失败,密码设置 policy 错误。这是因为当前设置的密码和 MySQL 密码创建规则不符,可以查看当前规定的密码规则也可以进行修改。

进入 MySQL 执行下面命令:

SHOW VARIABLES LIKE 'validate_password%';

会列出密码创建相关参数:

mysql> SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+--------+
| Variable_name                        | Value  |
+--------------------------------------+--------+
| validate_password_check_user_name    | ON     |
| validate_password_dictionary_file    |        |
| validate_password_length             | 8      |
| validate_password_mixed_case_count   | 1      |
| validate_password_number_count       | 1      |
| validate_password_policy             | MEDIUM |
| validate_password_special_char_count | 1      |
+--------------------------------------+--------+
7 rows in set (0.03 sec)

其中 validate_password_length 是密码位数,validate_password_special_char_count 是密码包含特殊字符。可以通过命令修改参数值来改变密码规则,例如:

取消特殊字符:

SET GLOBAL validate_password_special_char_count= 0;

修改后可以测试再次建立用户设置密码。

MySQL 8.0 默认创建的用户密码加密方式为:caching_sha2_password,有些应用在连接时由于不兼容会导致报错,可以修改为 MySQL 5 使用的加密方式:sha256_password。

创建用户:

create user "newuser"@"localhost" identified by "PASSWORD";

授予全部数据库权限:

grant all privileges on *.* to 'newuser'@'localhost';

修改成原来的加密方式:

alter user "newuser"@"localhost" identified with mysql_native_password by 'PASSWORD';

刷新权限:

    FLUSH PRIVILEGES;

查看已建立的用户及加密方式:

SELECT user,authentication_string,plugin,host FROM mysql.user;

显示如下:

+------------------+------------------------------------------------------------------------+---
| user             | authentication_string                         | plugin                | host      |
+------------------+------------------------------------------------------------------------+-----
| marco            | *D51541FCBC8DD8E                              | mysql_native_password | localhost |
| root             |                                               | auth_socket           | localhost |
+------------------+------------------------------------------------------------------------+---------

以上就是修改用户密码加密方式的方法。

首先备份本地数据库,以防升级错误:

mysqldump -uUSER -pPASSWORD --all-databases > /path/to/backup.sql

官网下载最新的 MySQL apt 库:https://dev.mysql.com/downloads/repo/apt/

当前最新地址为:https://dev.mysql.com/get/mysql-apt-config_0.8.16-1_all.deb

下载到本地后安装:

dpkg -i mysql-apt-config_0.8.16-1_all.deb

期间会提示选择安装的 MySQL 版本,第一步选择当前安装的 MySQL 5.7,然后下一步选择 MySQL server 8.0,然后再下一步切换到 ok 选项确认。

配置完成后更新 apt 库及安装新版 MySQL:

apt update
apt install mysql-server

安装完成后验证当前安装版本:

mysql -V

以上就是简单的 MySQL 升级教程。

参考链接:
https://dev.mysql.com/doc/mysql-apt-repo-quick-guide/en/#apt-repo-setup
https://www.digitalocean.com/community/questions/upgrade-mysql-5-7-to-8-ubuntu-18-04