前几天购买了某云的服务器,一站式搭建了WordPress系统,觉得网站用的是HTTP的URL,修改完了后发现登录不上去了,而且云服务器里面docker运行的数据库密码是不知道的,只能自己解决,经过一番找解决问题,终于成功修改完原来的URL并成功登录,具体过程如下:
原始正常登录:
修改后:
造成无法访问的后果:
解决过程:
云服务器里面的程序基本都是使用docker来运行的,登录服务器查看docker 运行的程序:
docker ps
进入MySQL数据库容器:
docker exec -it wordpress-db /bin/bash
找到数据库的配置文件路径,基本上在/etc/mysql/下:
因为docker容器原始是没有安装vim的,先更新:
apt update
然后安装vim:
apt install vim
然后编辑 mariadb.cnf 文件,输入一下内容:
skip-grant-tables
skip-grant-tables 作用是跳过授权表,也就是说谁都能进入mysql看到所有数据表,输入任意字符账号密码都可以。不行就继续添加【如上图中两行注释】:
skip-host-cache
skip-name-resolve
保存退出后,退出到终端命令行,重启数据库容器:
docker restart wordpress-db
然后重新进入数据库容器:
docker exec -it wordpress-db /bin/bash
登录数据库:
mysql -uroot -p
直接按 Enter 健进入数据库,先执行:
flush privileges;
作用是刷新授权表,然后才可以更改root账户的密码:
alter user 'root'@'localhost' IDENTIFIED BY '123456';
成功更改密码后,现在可以修改 WordPress 在数据库里面存储的URL站点了,具体如下:
UPDATE wp_options SET option_value=replace(option_value,'http://错误的url','http://正确的url') WHERE option_name='home' OR option_name='siteurl';
然后继续执行上面 刷新授权表 的命令,退出数据库,编辑 刚刚修改的 mariadb.cnf 配置文件,把刚刚添加的内容给 注释掉:
然后退出数据库容器,执行 上面的容器重启的命令,重启完成后,浏览器访问刚刚修改 正常访问的URL ,就可以正常登录上去啦!