,使用Docker安装phpmyadmin,先下载镜像
docker pull phpmyadmin/phpmyadmin
启动镜像
docker run -d --name myadmin -e PMA_HOST=172.17.0.1 -e PMA_PORT=3306 -p 10013:80 phpmyadmin/phpmyadmin
注意: 172.17.0.1是mysql服务器的地址,Ubuntu系统通过ip addr查看。10013是要映射到宿主主机上的端口。
启动完成后发现局域网访问不了。通过netstat -lntp查看服务器端口监听情况发现10013这个端口只有IPv6在监听。IPv4没有监听导致客户端无法访问。百度一圈没解决,最后突发奇想,通过Nginx反向代理,在服务器上将IPv6的访问代理为IPv4供没有IPv环境的局域网使用。在/etc/nginx/nginx.conf中加入以下部分即可:
server{ listen 10014; server_name 127.0.0.1;
#防止代理超时 large_client_header_buffers 4 16k; client_max_body_size 30m; client_body_buffer_size 128k; proxy_connect_timeout 300; proxy_read_timeout 300; proxy_send_timeout 300; proxy_buffer_size 64k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k; #防止代理超时 截止 access_log /var/log/nginx/phpmyadmin.access.log; error_log /var/log/nginx/phpmyadmin.error.log; location / { proxy_pass http://localhost:10013; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header REMOTE-HOST $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
./nginx -s reload
之后,局域网可以可访问了,但速度很慢,每步操作都要1分钟左右。查了一些资料,按以下方法:
# 在/etc/mysql/my.cnf中禁止mysql做域名解析
[mysqld]
skip-name-resolve