Centos 7.x的Docker中安裝Discuz論壇遇到的Mysql問題
阿新 • • 發佈:2018-11-20
Docker下安裝Discuz
目前自學在Centos中Docker部署容器,想在裡面直接安裝一個Discuz,目前遇到了一個棘手的問題。
正常情況下,拉取了一個MySQL 5.7和Discuz。
[[email protected] ~]# 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,就遇到了這麼多問題,總結出來,希望跟一樣有此困惑的人一起走出困惑!