zoukankan      html  css  js  c++  java
  • docker的LNMP架构实战二

    本篇文章主要是描述docker中对Mysql的操作,同时学习容器之间的通信问题,目前架构情况如下:

     1、数据库连接使用

    在docker中启动Mysql服务后,可以使用两种方法对Mysql进行操作(连接Mysql数据库需要的是IP和端口):

    ##使用Mysql容器里的ip连接数据库(该方法的前提是连接前必须确定能够ping通容器IP地址):

    ###使用该方法可在容器

    root@test:~# mysql -h172.17.0.2 -uroot -p123456

    ##使用宿主机的IP连接数据库

    root@test:~# mysql -h192.168.44.128 -uroot -p123456

    注:实际项目中应该根据自己的需求进行选择,理论上整改项目使用容器架构的话,利用容器内部的ip进行容器间的通讯,可以减少路由数量,速度更快。

    进入数据库后,创建相应的数据库,用于php代码写入数据:

    mysql> create database class;

    mysql> use class;

    mysql> create table product(pid int primary key auto_increment, name varchar(60) not null,url varchar(60),pLike tinyint);

    2、PHP与Mysql交互

    在nginx的访问目录下编写好php代码,用于测试能否对数据库进行写入功能功能:

    ##首页展示代码,root@test:/var/www/html# cat mysql.php :

    ###经测试之间把IP改为192.168.44.128同样可连接数据库:

    <?php
    $servername = "172.17.0.2";
    $username = "root";
    $password = "123456";
    $db="class";
    try {
    $conn = new PDO("mysql:host=$servername;dbname=$db", $username, $password);
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $conn->beginTransaction();
    $conn->exec("INSERT INTO product (name, url, pLike) 
    	    VALUES ('John', 'Doe', 1)");
    $conn->commit();
    echo "新记录插入成功";
    }
    catch(PDOException $e)
    {
    	    // 如果执行失败回滚
         $conn->rollback();
         echo $sql . "<br>" . $e->getMessage();
     }          
    $conn = null;
    ?>

    注:需要注意每个组件的版本问题,本次使用的是PHP7.1版本,在函数使用方面,若连接数据库中的mysqlLi函数已经废除,因此报错:

    3、功能展示:

    参考文章:https://blog.csdn.net/sxudong2010/article/details/83277285

                      https://www.runoob.com/php/php-mysql-connect.html

     

  • 相关阅读:
    ES基础知识
    ES工具使用
    ES环境部署
    C# 新特性
    自动化测试工程师--面试
    python 报错 pip安装三方库不成功:WARNING: You are using pip version 20.2.3; however, version 20.2.4 is available
    jmeter 测试调用https接口
    JDK升级操作
    Jmeter之post上传文件
    弱网测试—Network-Emulator-Toolkit(一)
  • 原文地址:https://www.cnblogs.com/liyuanshu/p/13273626.html
Copyright © 2011-2022 走看看