1、背景
在客户的项目中有很多场景下不允许开发、运维人员,通过本地的客户端工具连接redis、mysql之类的中间件,进行数据的查看、修改等。所以需要一些特定的软件进行连接。
2、工具介绍
phpMyAdmin 是一个用PHP编写的免费软件工具,旨在?通过 Web处理MySQL的管理。phpMyAdmin 支持对 MySQL 和 MariaDB 的广泛操作。常用操作(管理数据库、表、列、关系、索引、用户、权限等)可以通过用户界面执行,同时您仍然可以直接执行任何 SQL 语句。详细介绍可以查看官网
3、部署
部署方式
1.docker run –name myadmin -d –link mysql_db_server:db -p 8080:80 phpmyadmin 这个是使用连接其他mysql容器的方式启动 –link后跟mysql容器ip
2.docker run –name myadmin -d -e PMA_HOST=dbhost -p 8080:80 phpmyadmin 指定ip启动,PMA_HOST是指向mysql的ip
3.docker run –name myadmin -d -e PMA_ARBITRARY=1 -p 8080:80 phpmyadmin 不特别指定mysql端,登录时再输入,建议使用这个方式启动
反向代理的用法
将变量设置为反向代理使 phpMyAdmin 可用PMA_ABSOLUTE_URI 的完全限定路径 。
docker run --name pma -d -e PMA_ARBITRARY=1 -e PMA_ABSOLUTE_URI=http://10.0.0.0/phpmy/ -p 8088:80 phpmyadmin
Nginx反向代理配置文件
location /phpmyadmin/ {
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Host $server_name;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://10.0.0.0:8088/; # phpmyadmin 真实访问路径
}
总结:
在实际的配置过程中,再点‘执行’的时候会跳转到‘404’的状态码,查看路由发现少了‘/phpmyadmin/’在手动补写路由后正常。
解决办法:
在运行docker的时候加入环境变量‘PMA_ABSOLUTE_URI ’补齐路由就可以解决该问题。
环境变量总结
PMA_ARBITRARY - 当设置为 1 时,将允许与任意服务器的连接PMA_HOST - 定义 MySQL 服务器的地址/主机名PMA_VERBOSE - 定义 MySQL 服务器的详细名称PMA_PORT - 定义 MySQL 服务器的端口PMA_HOSTS - 定义以逗号分隔的 MySQL 服务器地址/主机名列表PMA_VERBOSES - 定义以逗号分隔的 MySQL 服务器详细名称列表PMA_PORTS - 定义逗号分隔的 MySQL 服务器端口列表PMA_USER 和PMA_PASSWORD - 定义用户名和密码以仅用于config 身份验证方法PMA_ABSOLUTE_URI - phpMyAdmin 的完整 URL。在反向代理配置中使用时有时需要。除非需要,否则不要设置它。请参阅文档。PMA_CONFIG_BASE64 config.inc.php - 如果设置,此选项将使用变量的 base64 解码内容覆盖默认值PMA_USER_CONFIG_BASE64 config.user.inc.php - 如果设置,此选项将使用变量的 base64 解码内容覆盖默认值PMA_CONTROLHOST - 设置时,它指向用于存储phpMyAdmin 配置存储数据库数据库的备用数据库主机PMA_CONTROLPORT - 如果设置,将覆盖默认端口 (3306) 用于连接到控制主机以存储phpMyAdmin 配置存储数据库数据库PMA_PMADB - 定义用于phpMyAdmin 配置存储数据库的数据库名称。未设置时,默认不启用高级功能(用户在使用零配置(零配置)功能登录时仍可能启用它们。建议值:phpmyadmin 或pmadb PMA_CONTROLUSER - 为 phpMyAdmin 定义用户名以用于高级功能(controluser)PMA_CONTROLPASS - 定义 phpMyAdmin 与controluser一起使用的密码PMA_QUERYHISTORYDB - 当设置为 true时,可以将SQL 历史记录存储到phpMyAdmin 配置存储数据库。为false时,历史记录存储在浏览器中,并在注销时清除PMA_QUERYHISTORYMAX - 当设置为整数时,控制历史项目的数量。请参阅文档。默认为25 .MAX_EXECUTION_TIME - 如果设置,将覆盖 phpMyAdmin ( $cfg['ExecTimeLimit']?) 和 PHP?max_execution_time?(格式为)的最大执行时间(默认 600 秒[0-9+] )MEMORY_LIMIT - 如果设置,将覆盖 phpMyAdmin (?$cfg['MemoryLimit']?) 和 PHP?memory_limit的内存限制(默认为 512M) (格式为[0-9+](K,M,G) K 代表千字节,M 代表兆字节,G 代表千兆字节,1K = 1024 字节)UPLOAD_LIMIT - 如果设置,此选项将覆盖 apache 和 php-fpm 的默认值(格式为[0-9+](K,M,G) 默认值为 2048K,这将更改upload_max_filesize 和post_max_size 值)HIDE_PHP_VERSION - 如果定义,此选项将隐藏 PHP 版本 (?expose_php = Off )。设置为任何值(例如HIDE_PHP_VERSION=true )。
|