WordPress 问题汇总3

最近甲骨文的免费云终于注册成功,准备把wordpress迁过去,所以重新搭了一遍wordpress,又遇到很多问题,记录一下;

最新的搭建手册可参考这里,非常全面,但是没有数据库相关的操作;之前腾讯官方的搭建手册,MySQL升级到8.x版本后,里边的数据库相关操作大部分就不能用了,其他的操作还可以作为补充参考下;

对比之前搭的服务,本次迁移,还有了这些变动:

  • 服务器换成 Nginx;
  • MySQL从7.x升级到8.x;

其他遇到的问题如下:

0、Oracle云服务器

关闭防火墙,执行下面的操作(ubuntu)

# Oracle自带的Ubuntu镜像默认设置了Iptable规则,关闭并重启
apt-get purge netfilter-persistent
reboot

1、数据库操作

1.1、报错信息

基本上执行sql语句报错,都会提示下面这个信息,说“语法错误,检查数据库版本”之类的;

这里包含多种情况,比如真的是语法错误,但还可能是8.0版本不支持这样操作,错误信息中没有体现出来,只是说语法错误;

1.2、提示信息

一些操作(比如创建用户),执行成功后,提示信息如下:

Query OK, 0 rows affected (0.02 sec)

“0 rows affected”表示本次执行没有对原数据产生影响,新增操作是执行成功了的,不放心再查一下数据库;

1.3、mysql登录

没设密码时,直接执行“mysql”就进入mysql的命令行了,设置密码之后,需要执行下面这句,-u 后是用户名,-p 表示要输入密码;

mysql -u root -p

1.4、用户表

mysql进入命令行后,可以用sql语句查询当前用户,库和表是 mysql.user,每次都要输入“mysql”这个库名比较麻烦,可以先 “use mysql” 指定使用这个库;

use mysql;
select user,host from user;

1.5、注意结尾和刷新

每次输入sql语句后,一定要加结尾的分号“;”,否则会再一次让输入,直到有分号才结束;

“quit;”是退出mysql命令行;

用户和权限相关的操作,执行完成一定要刷新一下权限,操作才会生效;

flush privileges;

1.6、具体操作

创建用户

CREATE USER test IDENTIFIED BY 'password';
CREATE USER test@localhost IDENTIFIED BY 'password';

创建一个用户名为“test”,密码为“password”的用户;

上面两句sql不同的是访问方式,对应mysql.user表中的host字段;

“test@localhost”中的localhost表示限制在localhost,只能本地连接;
“test”是“test@%”的默认写法,%表示可以远程连接数据库;

修改密码

下面两种方式都可以;

8.0版本,password(‘123’)这种生成/设置密码的方式不能用了,一定要注意,网上很多低版本的教程,注意区分;

# 方式1
ALTER USER 'test'@'%' IDENTIFIED BY 'password1234';

# 方式2:特别要注意,密码部分不是 password('123')
set password for 'test'@'%' = '123';

给用户添加权限

这个也要注意下,8.0版本之前,可以在授权的时候创建账号,现在也不行了;只能先创建用户,再授权;

grant all privileges on wordpress.* to 'test'@'%' with grant option;
flush privileges;

上面的sql语句中,“wordpress.*” 表示 wordpress 这个数据库下的所有表;
整句sql执行完成,就给 test@% 这个用户添加了 wordpress 这个库下所有表的权限;

2、FTP

Oracle云服务器ubuntu有UFW防火墙,需要允许FTP通信

sudo ufw allow 20:21/tcp

新服务器上最终还是没装好 vsftp,安装 lrzsz 也可以解决上传下载的问题;

sudo apt install lrzsz # 安装
rz  # 上传文件,会弹一个选择框
sz file.txt # 下载文件
sz dir/*  # 下载dir文件夹下的所有文件

WordPress 更新插件、主题等默认都是走的 FTP 下载更新,服务器上没有 FTP 服务时,需要在 wp-config.php 中配置

// 直接使用文件上传,不走ftp
define('FS_METHOD', 'direct');

如果这篇文章对你有用,可以点击下面的按钮告诉我

0