實際環境中,常常是已經存在本地 mysql ,沒有必要再去改動 mysql 環境,甚至轉移 mysql 數據php
有的系統安裝的 mysql 缺省只有一個 locall 的root 帳戶,有的已經存在一個 % 的 root 帳戶mysql
讓 nginx + php 容器配置的網站,訪問宿主機本地數據庫的時候,身份已經不是 localhost 或 127.0.0.1 的 root了!nginx
剛剛特地檢查了一下 mysql 容器的mysql,已經缺省就存在 % 的 root,因此,他們只須要被 link ,就能夠被 php 訪問sql
進入 mysql 容器 [root@centos7-71 application]# docker exec -it mysql57 bash 本地mysql root@c49318865d09:/# mysql -u root -p 查詢 mysql user mysql> use mysql mysql> select User,host from user; +---------------+-----------+ | User | host | +---------------+-----------+ | root | % | | mysql.session | localhost | | mysql.sys | localhost | | root | localhost | +---------------+-----------+ 4 rows in set (0.00 sec)
同理,宿主機本地的 mysql 須要配置訪問控制,容許非 localhost 或 127.0.0.1 的 用戶(缺省爲root)docker
https://blog.csdn.net/weixin_36296538/article/details/84189706數據庫
cd /etc/mysql/mysql.conf.d/ vim mysql confubuntu
# by wzh 20190422 bind-address = 0.0.0.0 # bind-address = 127.0.0.1
檢查並增長 % 的 root 帳戶 (或者其餘帳戶) ** 我這個 ubuntu 18.04 下的 mysql 中,就只有127.0.0.1 的 root 帳戶 ** 沒有按照參考中直接 update 這個 root,而是增長一條 % 的 root帳戶 記錄 ** 簡單複製 127.0.0.1 的 root 記錄 ,而後修改 Host = %vim
CREATE TEMPORARY TABLE tmp SELECT * FROM user WHERE User = 'root'; UPDATE tmp SET Host='%' WHERE User = 'root'; INSERT INTO user SELECT * FROM tmp WHERE User = 'root';
確認一下:centos
mysql> Select User,Host from user; +------------------+-----------+ | User | Host | +------------------+-----------+ | root | % | | debian-sys-maint | localhost | | mysql.session | localhost | | mysql.sys | localhost | | phpmyadmin | localhost | | root | localhost | +------------------+-----------+ 6 rows in set (0.00 sec)
先找個已經存在容器的宿主機,學習一下獲取容器 ip 的指令 ip route show ip route show | grep docker0 ip route show | grep docker0 | awk '{print $9}'瀏覽器
安裝 Docker phpmyadmin 容器 docker search phpmyadmin docker pull phpmyadmin/phpmyadmin
啓動容器,映射 宿主機 9997 端口 對應到 phpmyadmin 容器的 80 端口 docker run -d
--name myadmin
-e PMA_HOST=$(ip route show | grep docker0 | awk '{print $9}')
-e PMA_PORT=3306
-p 9997:80
phpmyadmin/phpmyadmin
curl 127.0.0.1:9997 瀏覽器測試 http://192.168.1.192:9997/index.php