GVKun编程网logo

docker中使用Mysql8+phpmyadmin(docker中使用gpu)

24

在本文中,我们将为您详细介绍docker中使用Mysql8+phpmyadmin的相关知识,并且为您解答关于docker中使用gpu的疑问,此外,我们还会提供一些关于Adminer轻量级MySQL管理

在本文中,我们将为您详细介绍docker中使用Mysql8+phpmyadmin的相关知识,并且为您解答关于docker中使用gpu的疑问,此外,我们还会提供一些关于Adminer 轻量级 MySQL 管理工具,替代 phpMyAdmin、apache+MySQL+php,把phpmyadmin放到htdocs根目录下,在地址栏中输入http://localhost/phpMyAdmin,该如何解决、CentOS-Docker安装phpMyAdmin(MySQL的web客户端)、centos7一步一步搭建docker phpmyadmin 及nginx配置phpmyadmin非根目录重点讲解的有用信息。

本文目录一览:

docker中使用Mysql8+phpmyadmin(docker中使用gpu)

docker中使用Mysql8+phpmyadmin(docker中使用gpu)

现在基本装这套都用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服务了。

祝愉快。

Adminer 轻量级 MySQL 管理工具,替代 phpMyAdmin

Adminer 轻量级 MySQL 管理工具,替代 phpMyAdmin

Adminer

工具名称:Adminer
工具作用:图形化MySQL管理工具
工具下载: [https://www.adminer.org/](https://www.adminer.org/)

Why is Adminer better than phpMyAdmin?

优势:1. 安全,2. 用户体验更好,3. 性能更好,4. 支持特性更多,5. 最小体积,单个文件.

附 Adminer 与 phpMyAdmin 的对比 https://www.adminer.org/en/phpmyadmin/

Apache 安装

$ sudo apt-get install apache2

php 安装

$ sudo apt-get install php7.0
$ sudo apt-get install libapache2-mod-php7.0

mysql 另行安装,不在赘述

$ sudo apt-get install mysql-server mysql-client

php 扩展安装

$ sudo apt-get install php7.0-mysql

adminer 安装

下载 adminer.php 至 /var/www/html

$ cd /var/www/html
$ sudo wget "http://www.adminer.org/latest.php" -O adminer.php

重启 Apache

$ sudo /etc/init.d/apache2 restart

重载 Apache 配置

$ sudo systemctl reload apache2

apache+MySQL+php,把phpmyadmin放到htdocs根目录下,在地址栏中输入http://localhost/phpMyAdmin,该如何解决

apache+MySQL+php,把phpmyadmin放到htdocs根目录下,在地址栏中输入http://localhost/phpMyAdmin,该如何解决

apache+MySQL+php,把phpmyadmin放到htdocs根目录下,在地址栏中输入http://localhost/phpMyAdmin
尽然出现了Forbidden

You don''t have permission to access /phpMyAdmin on this server.
求解啊,搞了好久
------解决思路----------------------
apche配置文件:

    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all --》改成Allow from all

CentOS-Docker安装phpMyAdmin(MySQL的web客户端)

CentOS-Docker安装phpMyAdmin(MySQL的web客户端)

注:phpMyAdmin是一款MySQL的web客户端,还是很直观且好用的,所以推荐给你~

下载镜像

$ docker pull phpmyadmin/phpmyadmin

运行镜像

1.无指定固定数据库IP模式(推荐)

$ docker run --restart=unless-stopped --name myadmin -d -e PMA_ARBITRARY=1 -p 8080:80 phpmyadmin/phpmyadmin

2.指定固定数据库IP和端口模式

$ docker run --restart=unless-stopped --name myadmin -d -e PMA_HOST=192.168.1.100 -e PMA_PORT=3306 -p 8080:80 phpmyadmin/phpmyadmin

参数说明:

-e PMA_HOST=192.168.1.100 数据库的IP地址
-e PMA_PORT=3306 数据库的端口,不指定默认为3306
-p 8080:80 将容器80端口映射到主机的8080端口
--name myadmin 将容器命名为myadmin

 

使用说明

1.无指定固定数据库IP模式(推荐)

2.指定固定数据库IP模式

 

直观的监控信息

centos7一步一步搭建docker phpmyadmin 及nginx配置phpmyadmin非根目录重点讲解

centos7一步一步搭建docker phpmyadmin 及nginx配置phpmyadmin非根目录重点讲解

 系统环境:centos7.7 

 镜像image 版本:PHPmyadmin/PHPmyadmin(截止2020.01.10最新版)

  参考文章:https://blog.csdn.net/a2589293499/article/details/102938724

 一、根目录下的PHPmyadmin访问。

 1、查看版本。

  

 2、拉取最新版本。视网络速度等待~~

  

 3、查看镜像。

  

 4、运行。先启动一个临时容器,假设你已经有一个可ip连接的MysqL数据库。  

docker run --name my_PHPadmin_2020 -d -p 8001:80 --restart=always -e PMA_HOST=192.168.197.129 -e PMA_PORT=3306 -e TZ="Asia/Shanghai" PHPmyadmin/PHPmyadmin

  

 5、访问。浏览器访问ip:8001。报错 MysqLi_real_connect(): (HY000/2002): No route to host ,问题原因是配置的访问ip不对

  

 6、解决问题。复制PHPmyadmin 容器的配置文件config.sample.inc.PHP到宿主机config.inc.PHP。

  

  

  设置 $cfg['Servers'][$i]['host'] = '你的ip地址',保存。

  

 7、删除容器 my_PHPadmin_2020。然后重启一个挂载配置文件的容器。

docker run --name my_PHPadmin_2020 -d -p 8001:80 --restart=always -e PMA_HOST=192.168.197.129 -e PMA_PORT=3306 -e TZ="Asia/Shanghai" -v /www/my_admin/config.inc.PHP:/var/www/html/config.inc.PHP PHPmyadmin/PHPmyadmin

参数解析:
-d 后台运行容器,并返回容器ID;
--name 为容器起一个容易区分且容易书写的名字
-p 映射宿主机端口到容器端口,宿主机端口:容器端口
--restart=always 机器重启时自动启动容器
-e       设定一些必须的环境变量。
          -e TZ="Asia/Shanghai" 设定时区为上海,强烈建议国内设定,否则容器内打印的所有日志时间都会差8小时。
          -e PMA_HOST=192.168.197.129 -e PMA_PORT=3306 设定数据库的访问地址。
-v       挂载宿主机文件到容器。
          -v /www/my_admin/config.inc.PHP:/var/www/html/config.inc.PHP 绑定挂载文件

 8、重新访问登录,成功。

  

 

生活不止眼前的苟且,还有诗和远方~~
原文地址:https://www.cnblogs.com/jying/p/12177746.html
作者:一定会去旅行
欢迎任何形式的转载,但请务必注明出处。
限于本人水平,如果文章和代码有表述不当之处,还请不吝赐教。

 

 9、如果有人也是在vmware 虚拟机中配置的,仍报错MysqLi_real_connect(): (HY000/2002): No route to host 的话,请检查端口是否已添加到防火墙。

  

原文地址:https://www.cnblogs.com/jying/p/12177746.html
作者:一定会去旅行
欢迎任何形式的转载,但请务必注明出处。
限于本人水平,如果文章和代码有表述不当之处,还请不吝赐教。

 二、下面我们介绍如果在Nginx配置非根目录节点的 PHPmyadmin。

 1、前6步与第一部分一样,从第7步重启容器时多加一个参数:-e PMA_ABSOLUTE_URI=你的ip:8001/PHPmyadmin,由于前面的my_PHPadmin_2020没有删除,此处我们重命名为my_PHPadmin_2019。

  

docker run --name my_PHPadmin_2019 -d -p 8001:80 --restart=always -e PMA_ABSOLUTE_URI=http://192.168.197.129/PHPmyadmin -e PMA_HOST=192.168.197.129 -e PMA_PORT=3306 -e TZ="Asia/Shanghai" -v /www/my_admin/config.inc.PHP:/var/www/html/config.inc.PHP PHPmyadmin/PHPmyadmin

参数解析:
-d 后台运行容器,并返回容器ID;
--name 为容器起一个容易区分且容易书写的名字
-p 映射宿主机端口到容器端口,宿主机端口:容器端口
--restart=always 机器重启时自动启动容器
-e       设定一些必须的环境变量。
          -e TZ="Asia/Shanghai" 设定时区为上海,强烈建议国内设定,否则容器内打印的所有日志时间都会差8小时。
          -e PMA_HOST=192.168.197.129 -e PMA_PORT=3306 设定数据库的访问地址。
          -e PMA_ABSOLUTE_URI=http://192.168.197.129/PHPmyadmin  反向代理路径,路径名字可以自己起名,此处的ip也可以使用上线后的域名。
-v       挂载宿主机文件到容器。
          -v /www/my_admin/config.inc.PHP:/var/www/html/config.inc.PHP 绑定挂载文件

 

 2、访问。此时我们在访问ip:8001页面能显示,但是登录会提示session错误。我们配置了上面的反向代理路径为ip/PHPmyadmin,但此时直接访问/PHPmyadmin页面也报错。

  

  

 3、使用Nginx配置PHPmyadmin访问。

  上一篇(https://www.cnblogs.com/jying/p/12182715.html)已介绍Nginx docker的搭建,本文直接修改Nginx.conf配置,内容如下。  

  

  

  

# user root;
worker_processes 8;

events {
    worker_connections  10240;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    log_format  main  '$host "$request" $remote_addr $remote_user [$time_local] $status $request_time $body_bytes_sent "$http_referer" "$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/Nginx/access.log  main;# 这个地址竟然可以是docker里面的绝对路径!!!,因为-v挂载到了此处

    keepalive_timeout  300;
    fastcgi_connect_timeout 300;
    fastcgi_send_timeout 300;
    fastcgi_read_timeout 300;
    send_timeout 300;

    client_max_body_size 200m;
    sendfile        on;
    #tcp_nopush     on;
    #gzip  on;

    limit_req_zone $binary_remote_addr zone=req_limit_per_ip_second:1m rate=10r/s;
    limit_req_zone $binary_remote_addr zone=req_limit_per_ip_minute:10m rate=100r/s;

    #
    server{
        listen 80;
        server_name mytest;
        
        # location ~ .*\.(PHP|PHP5|jsp)$ {
        #     deny all;
        # }

        #
        location / {
            if ($document_uri ~* ".*\.(PHP|PHP5|jsp)$") {
                # if中不能使用 deny 和 allow
                return 404; 
            }

            root   /usr/share/Nginx/html; # 这个地址竟然可以是docker里面的绝对路径!!!,因为-v挂载到了此处
            index  index.html index.htm;
            access_log /var/log/Nginx/root.log  main;
        }

        #
        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://192.168.197.129:8001/; # PHPmyadmin 真实访问路径
            access_log /var/log/Nginx/PHPmyadmin.log  main;
        }

    }

}

  

 4、重启Nginx容器。访问ip/PHPmyadmin正常~~

   

  

 

 

原文地址:https://www.cnblogs.com/jying/p/12177746.html
作者:一定会去旅行
欢迎任何形式的转载,但请务必注明出处。
限于本人水平,如果文章和代码有表述不当之处,还请不吝赐教。

  5、如果有人也是在vmware centos虚拟机中配置的,请记得添加防火墙端口权限~~

  

 

  6、配置完成~~

  

原文地址:https://www.cnblogs.com/jying/p/12177746.html
作者:一定会去旅行
欢迎任何形式的转载,但请务必注明出处。
限于本人水平,如果文章和代码有表述不当之处,还请不吝赐教。

  本文的难点是Nginx配置PHPmyadmin非根目录访问,如果是根目录其实直接配置就能访问,但是非根目录必须要配置 PMA_ABSOLUTE_URI 参数用于反向代理,特别感谢文章: https://stackoverflow.com/questions/44499620/phpmyadmin-inside-docker-container-via-nginx-reverse-proxy

  stackoverflow.com 依然是最强大的解决问题基地!!!

 

  

关于docker中使用Mysql8+phpmyadmindocker中使用gpu的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于Adminer 轻量级 MySQL 管理工具,替代 phpMyAdmin、apache+MySQL+php,把phpmyadmin放到htdocs根目录下,在地址栏中输入http://localhost/phpMyAdmin,该如何解决、CentOS-Docker安装phpMyAdmin(MySQL的web客户端)、centos7一步一步搭建docker phpmyadmin 及nginx配置phpmyadmin非根目录重点讲解的相关知识,请在本站寻找。

本文标签: