<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      使用 Docker 部署 MySql

      前言

      雖然不建議將需要持久化的數據保存在容器中,但是自己平時做個小項目玩玩還是沒什么問題的。

      拉取鏡像

      docker pull mysql
      

      不加 tag 的話默認從 DockerHub 拉取最新版本的

      啟動容器

      • 運行一下試試

        docker run mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql_test mysql
        

        這里的 -e 參數是必須指定的,作用是設置數據庫的密碼,否則將無法啟動容器。

      • 復制容器內的文件到宿主機

        現在我們還沒有進入容器,可以在宿主機的命令行中輸入 docker ps 查看當前正在運行的容器,如果沒出什么問題的話應該可以看到一個名為 mysql_test 的容器正在運行。在學習數據庫的時候我們已經知道了 MySql 的數據庫文件默認位于 /var/lib/mysql/ 中,配置文件在 /etc/mysql/conf.d/etc/my.cnf

        我們不對默認的配置做更改,所以就沒必要掛載 conf.d 目錄到宿主機了,只需要映射一下容器內的數據庫文件,以防止容器宕掉了導致數據的丟失。

        docker cp mysql_test:/var/lib/mysql $PWD/
        

        這里的 cp 命令作用是復制容器內的文件,后面的 $PWD當前所在的宿主機目錄,例如我現在的目錄是 /home/hsk/box_container/mysql/,復制出來的 mysql 文件夾就會在我當前的路徑下。

      啟動一個新的容器

      • 將默認的數據庫文件復制出來后,就可以刪除之前測試用的容器了,在刪除之前 我們要先停掉它:

        docker stop mysql_test
        
      • 刪除舊容器:

        docker rm mysql_test
        
      • 創建一個新的容器并掛載卷,映射端口:

        docker run \
          -d \
          --name mysql01 \
          -p 3309:3306 \
          -v /home/hsk/box_container/mysql01/conf.d/:/etc/mysql/conf.d \
          -v /home/hsk/box_container/mysql01/mysql/:/var/lib/mysql \ 
          -e MYSQL_ROOT_PASSWORD=123456 \ 
          mysql
        

        -d 表示讓容器在后臺運行
        --name 為容器起一個名字
        -p 映射端口,這里把容器內的 3306 端口映射到了宿主機的 3309
        -v 掛載卷,冒號前是宿主機目錄,冒號后是容器內目錄
        -e 容器的環境配置

      進入容器

      • 使用 docker exec -it <容器ID|容器name> /bin/bash 指令進入模擬終端:

        docker exec -it mysql01 /bin/bash
        
      • 進入容器后,啟動 MySql 交互命令行:

        mysql -hlocalhost -uroot -p123456
        

      • 查看數據庫表:

        mysql> show databases;
        +--------------------+
        | Database           |
        +--------------------+
        | information_schema |
        | mysql              |
        | performance_schema |
        | sys                |
        +--------------------+
        4 rows in set (0.00 sec)
        

        外部掛載進來的默認數數據庫表都正常加載了

      創建新的數據庫

      由于我的數據庫基礎不是很好,而且過了很長時間已經忘了基本所有的 SQL語句,所以這里使用 DBeaver 圖形化數據庫工具來創建數據庫和添加數據,類似于大家上課時用到的 Navicat

      • 防火墻放行端口:

        在創建容器的時候我們指定了對外映射端口 3309,所以要放行該端口以供外網訪問,如果像我一樣使用云服務商提供的服務器的話具體去官網控制臺放行一下端口就行了,如果是在自己家搭建的服務器在有 公網IP 的條件下去路由器管理界面設置,本機的話就不需要配置了。

      • 使用 DBeaver 連接數據庫:

        新建連接 -> mysql

        沒有報錯就說明連接成功了

      • 創建數據庫:

        右鍵「數據庫」,選擇「新建」,我起名為 FruitDatabase

      • 新建表:

        選擇「數據庫」,點擊「創建」-> 「表」,我起名為 fruit_table

      • 新增列,配置主鍵:

        直接點擊鼠標操作就行,無需輸入任何 SQL語句,但是要了解數據類型、鍵等基礎知識。我創建的字段如下所示 ↓

      • 再隨便添加點數據:

      回到容器

      插入數據完成后,進入容器中檢查下:

      docker exec -it mysql01 /bin/bash
      
      bash-4.4# mysql -hlocalhost -uroot -p123456
      
      mysql> show databases;
      +--------------------+
      | Database           |
      +--------------------+
      | FruitDatabase      |
      | information_schema |
      | mysql              |
      | performance_schema |
      | sys                |
      +--------------------+
      5 rows in set (0.00 sec)
      
      mysql> use FruitDatabase
      Reading table information for completion of table and column names
      You can turn off this feature to get a quicker startup with -A
      
      Database changed
      
      mysql> show tables;
      +-------------------------+
      | Tables_in_FruitDatabase |
      +-------------------------+
      | fruit                   |
      +-------------------------+
      1 row in set (0.00 sec)
      
      mysql> select * from fruit_table;
      +------------+----------+-------+-------+-----------------------------------------+
      | fruit_name | fruit_id | price | stock | avatar                                  |
      +------------+----------+-------+-------+-----------------------------------------+
      | ?????      | 1        | 24.20 |    70 | http://www.xxx.com/apple.jpg            |
      | ?????      | 2        | 74.20 |    80 | http://www.xxx.com/pears.jpg            |
      | ????       | 3        | 78.40 |   190 | http://www.xxx.com/jujube.jpg           |
      | ?????      | 4        | 78.00 |     8 | http://www.xxx.com/jackfruit.jpg        |
      | ?????      | 5        | 24.20 |    70 | http://www.xxx.com/litchi.jpg           |
      +------------+----------+-------+-------+-----------------------------------------+
      5 rows in set (0.00 sec)
      
      

      由于字符集的問題導致顯示中文字符會出問題,這只是在命令行中會發生這種情況 ??

      posted @ 2022-09-30 20:44  HuStoking  閱讀(4915)  評論(1)    收藏  舉報
      主站蜘蛛池模板: 无码高潮爽到爆的喷水视频app| 久久久精品2019中文字幕之3| 国产一精品一av一免费| 偷自拍另类亚洲清纯唯美| 国产玖玖视频| 92国产精品午夜福利| 成年女人免费碰碰视频| 久久国产精品波多野结衣av| 亚洲精品久久久蜜桃| 日韩精品亚洲专在线电影| 长腿校花无力呻吟娇喘| 国产女人在线视频| 免费国产va在线观看| 和黑人中出一区二区三区| 少妇人妻偷人精品视蜜桃 | 久久精品一本到99热免费| 成av免费大片黄在线观看| 日韩深夜免费在线观看| 久久青青草原亚洲AV无码麻豆| 亚洲色www成人永久网址| 日韩高清亚洲日韩精品一区二区| 午夜A理论片在线播放| 黑森林福利视频导航| 开心色怡人综合网站| 亚洲色欲或者高潮影院| 亚洲国产午夜福利精品| 国产老熟女国语免费视频| 囯产精品久久久久久久久久妞妞| 国产免费播放一区二区三区| 精品国产午夜福利伦理片| 国产精品丝袜一区二区三区| 成人av专区精品无码国产| 在线视频中文字幕二区| 国产一区二区三区在线观看免费| 中文字幕一区二区三区久久蜜桃| 亚洲男人的天堂一区二区| 2021亚洲国产精品无码| 男人一天堂精品国产乱码| 欧美精品一区二区三区中文字幕| 久久人人妻人人爽人人爽| 中文字幕人妻av第一区|