Centos 7.x的Docker中安装Discuz论坛遇到的Mysql问题

Docker下安装Discuz

目前自学在Centos中Docker部署容器,想在里面直接安装一个Discuz,目前遇到了一个棘手的问题。
正常情况下,拉取了一个MySQL 5.7和Discuz。

[root@MyServer ~]# docker images
REPOSITORY                                  TAG                 IMAGE ID            CREATED             SIZE
docker.io/mysql                             5.7                 ae6b78bedf88        4 days ago          372 MB
docker.io/skyzhou/docker-discuz             latest              54339c48016c        4 years ago         269 MB

先安装数据库:

docker run -dit --restart=always --name=mysqldb -e MYSQL_ROOT_PASSWORD=redhat -e MYSQL_DATABASE=wordpress -v /docker/mysql/log/:/var/log/mysqld.log --privileged=true -v /docker/mysql/conf/:/etc/mysql/conf.d -v /docker/mysql/data/:/var/lib/mysql/ -p 3306:3306 docker.io/mysql:5.7 -h dockermysql

再安装Discuz:

docker run --name=discuz --privileged=true -v /docker/discuz:/var/www/html --link mysqldb:mysql -p 8090:80 -d docker.io/skyzhou/docker-discuz

这里–link 比较方便的链接到刚刚建好的数据库

--link mysqldb:mysql

浏览器访问虚拟机上的IP就可以了。进入到Discuz页面进行安装配置数据库等。
在这里插入图片描述
以上就是完成了简单的论坛搭建。

使用MySQL 8以上的版本报错!

如果数据库使用的镜像是8.0以上版本,在创建容器后,数据库需要修改相应的权限,基本步骤如下:
1.以自带流水方式进入创建的容器:

docker exec -it mysqldb /bin/bash

2.登陆MySQL,输入您的密码登陆:

mysql -uroot -p

3.选择数据库

use mysql;

4.授权root用户的权限,并设置远程访问:

GRANT ALL ON *.* TO 'root'@'%';

其中,* . * 表示:数据库名 . 表名

5.完成后刷新

flush privileges;

如果没有这么设置,再安装论坛后,会报Access denied。
接下来按上面的方式继续安装Discuz后,到浏览器进入安装界面会报错,目前还没有方法解决这个问题!
所以还是先用5.7的数据库,等待大神解决问题。

MySQL 8.0 使用可视化工具的问题

参考 https://blog.csdn.net/jc_benben/article/details/80652897

这个不要忘记

mysql> use mysql;

root登陆设置

mysql> alter user 'root'@'%' identified by 'redhat' password expire never;
mysql> alter user 'root'@'%' identified with  mysql_native_password by  'redhat'; 

刷新

mysql> flush privileges;

修改密码

mysql> alter  user 'root'@'%' identified by '1234';

这样就可以使用SQLyog等工具链接登陆了。撒花~

OK,就遇到了这么多问题,总结出来,希望跟一样有此困惑的人一起走出困惑!

猜你喜欢

转载自blog.csdn.net/gamenoover/article/details/84298682