docker中使用Mysql8+phpmyadmin


現在基本裝這套都用docker了,有一些小坑在里面,簡單說一下。

運行mysql比較簡單,參考mysql⭐Docker Official Images,需要注意不要忘記暴露端口給phpmyadmin用。

$ docker run --name <mysql容器名> -e MYSQL_ROOT_PASSWORD=<root用戶的密碼> -d -P mysql:tag

直接在run時設置好密碼,但是這時沒法給phpmyadmin用的,必須改一下權限:

docker exec -it <mysql容器名> bash

進去后先登錄mysql

mysql -p

輸入密碼之后就進入mysql控制台了,用8.0以上的方法來改變root授權使其可跨域訪問:

grant all privileges on *.* to 'root'@'%' with grant option;

2020/1/8更新,上述跨域方法已不能用

目前grant是不能夠修改用戶的配置信息的,包括host等,僅能通過

grant all on *.* to 'root'@'localhost';

來修改權限。所以目前的方案,如果想遠程,有下面兩種:修改root賬戶或者創建新用戶

-- 1. 使用alter user
alter user set user.host='%' where user.user='root';
-- 2. 使用create user
create user 'userName'@'%' identified by 'your_password';

PS: docker版本的bind已經是0.0.0.0了,如果是普通版本,默認是127.0.0.1,遠程訪問還需要修改/etc/mysql/mysql.conf.d/mysqld.cnf中的bind。

然后修改文件中

之后就可以愉快使用phpmyadmin了,官方提供的版本是phpmyadmin/phpmyadmin

運行的方法也給出了,除了HOST還要指定端口。

docker run --name <phpmyadmin容器名> -d -e PMA_HOST=<mysql的host或ip> -e PMA_HOST=<剛才的mysql的端口> -P phpmyadmin/phpmyadmin

之后就可以根據暴露的端口訪問phpmyadmin服務了。

祝愉快。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM