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,就遇到了这么多问题,总结出来,希望跟一样有此困惑的人一起走出困惑!