Docker+Wordpress建站问题总结记录
Wordpress] 仪表盘 - 设置更改固定连接后无法访问了 (更改未进行备案域名/未进行Nginx反向代理)
- 问题产生原因: 如果更改为域名(例如未进行备案域名) 因域名无法直接访问, 模拟请求过程
- PC电脑浏览器输入 IP:端口
- Wordpress 收到请求后自动重定向设置的域名, 这时候域名无解析/未备案导致无法访问所以界面显示 404 或其他界面.
- 解决方案
- 登录云服务器
- 进入Docker-MySql
1
2
3
4
5
6查看正在运行的 docker进程
$ docker ps
进入docker镜像内部
$ docker exec -it fId bash
如果启动镜像时指定name 则可以以name方式进入
$ docker exec -it wp(启动时候的名称) bash 进入dockerfId 为运行时第一个 12位字母数字混合组合
当看到 /$ 代表以及在此项docker中, exit退出 - 登入MySql, 进入数据库, 执行更新命令
- 登录
1
mysql -uroot -p
- 回车并输入密码(密码无显示的) 启动mysql时的密码
如启动用户名不一样则 mysql -u用户名 -p
显示 mysql > 则代表以进入 - 进入数据库(要选择操控那个库)
1
2show databales; 查看所有的库
use wordpress; 进入 wordpress显示 Database changed 代表切换成功
- 进入库后(必须切换要操作的库), 执行命令
1
2
3
4
5
6
7
8
9
10
11
12
13
14查看所有的表 wp_options 中
$ show tables;
查看表中数据当前是什么
$ select * from wp_option where option_id=1;
如忘记设置什么 这样查看 一般都是第一个option_value中域名
$ select * from wp_otion where option_value=‘从仪表盘设置的域名/IP’;
$ select * from wp_otion where option_value link ‘%xx%’; 模糊查询 %是匹配所有前面有东西的
更新命令 UPDATE 表名称 SET 字段=值 where 约束更改那些
$ UPDATE wp_options SET option_value = replace( option_value, 'http://旧域名', 'http://新域名' ) WHERE option_name = 'home' OR option_name = 'siteurl';
$ UPDATE wp_posts SET post_content = replace( post_content, 'http://旧域名', 'http://新域名' ) ;
$ UPDATE wp_posts SET guid = replace( guid, 'http://旧域名', 'http://新域名' ) ;
$ UPDATE wp_comments SET comment_content = replace(comment_content, 'http://旧域名', 'http://新域名') ;
$ UPDATE wp_comments SET comment_author_url = replace(comment_author_url, 'http://旧域名', 'http://新域名') ;
- 登录
运行后wordpress mysql链接失败
- Q1 问题描述:
启动时IP使用127.0.0.1 / localhost / 0.0.0.0 管理界面初始化时访问失败
Docker-Wordpress连接 Docker-mysql
- A1 解决方案
创建一个 docker新网络 查看docker IP后重新启动
- 添加一个 docker network
1
$ docker network create docker-mysql-net
- 查看网络IP ifconfig 并记住 尝试使用新建的ip去连接
- 例如: 重新启动wordpress
1 | $ WORDPRESS_DB_HOST=172.18.0.1:3306 -e WORDPRESS_DB_USER=root -e WORDPRESS_DB_PASSWORD=123456-e WORDPRESS_DB_NAME=wordpress-p 8050:80 -d hub.c.163.com/library/wordpress |
上述尝试之后还是无法解决排除问题
尝试 root 连接
1 | mysql -h0.0.0.0 -uroot -p密码 |
root可连接,但是自己新建的账号无法连接
- A2 解决方案
请对用户授权 %因权限不足,请授权, docker是归属一个单独的虚拟环境中网络Ip非127.0.0.1 localhost 所以需要授权%
- root 连接进入
1
mysql -h0.0.0.0 -uroot -p 密码
- 授权
1
grant all privileges on `数据库名称`.* to '用户名称'@'%' ;
评论
TwikooValine