操屁眼的视频在线免费看,日本在线综合一区二区,久久在线观看免费视频,欧美日韩精品久久综

新聞資訊

    、前提準備

    首先請確認你的電腦是 windows10 專業版或企業版,只有這只有這兩個版本才帶有 hyperv。

    2、介紹

    以往我們如果想要在 windows 上使用 docker,都是使用 virual box 來創建虛擬機,自從 windows10 發布以來,微軟宣布了一系列的 linux 軟件登陸 windows,其中就包括了 docker,現在我們可以使用 windows 自帶的 hyper-v 虛擬機來創建運行 docker 服務。

    InteliiJ Idea 作為目前最實用的 IDE 對 Docker 也提供了支持。

    3、安裝 Docker for windows

    3.1 從官網下載 docker for windows,https://store.docker.com/editions/community/docker-ce-desktop-windows,下載完畢后進入安裝界面, docker 會自動安裝,界面一閃而過,電腦運行速度還不錯,安裝完成之后,docker 會彈個窗告訴你 hyper-v 未開啟,像這樣。

    不過如果你現在點擊 OK 基本上是沒有用的,得先去 BIOS 里打開硬件虛擬化,本機是惠普的機器,開啟點按 f10 進入 bios,其他品牌的機器自行搜索進入,像這樣

    重啟電腦后 docker 會自動運行,依然彈出上面那個 hyper-v 未開啟的窗口,這回可以點擊 OK 讓 docker 來幫你開啟 hyper-v,或者是自己在控制面板 - 程序 - 程序和功能 - 啟用或關閉 windows 功能里開啟 hyper-v

    到此,我們的 docker for windows 已經安裝完成。在命令行中輸入 docker --version 可以查看已經安裝的 docker 版本

    3.2 使用 docker 中的鏡像

    3.2.1 先用官方鏡像作個示例

    使用 docker search來搜索對應的鏡像

    然后使用 docker pull <鏡像名: tag> 例如 docker pull nginx:latest ,tag 不輸入是默認拉取最新的 

    當鏡像下載玩之后我們通過 docker images 命令來查看所有本地的鏡像

    我這里下載了 java 以及 nginx 的鏡像 其中還有我已經打包好的 spring cloud 的 eureka 注冊中心的鏡像

    使用 docker run 命令來運行鏡像,我這里運行 nginx 的鏡像

    使用 docker 運行 nginx 成功后訪問 localhost:80 就可以訪問到 nginx 的主頁,說明我們已經在 docker 運行了我們的第一個鏡像,雖然是官方鏡像,但心里的成就感還是不低的。

    好的,在運行了第一個鏡像之后,我們要開始在 IntelliJ IDEA 中使用 docker 并構建我們的第一個 spring boot 程序放到 docker 中去運行

    4、IDEA 的準備工作

    1:Docker 插件,首先需要在你的 IDEA 中安裝 Docker 插件,定位到 File-Setting-Plugins 后搜索 Docker Integration 安裝。

    2:配置 Docker 服務器,在 IDEA 中定位到 File-Setting-build,Execution,Deployment-Dockers

    如果你沒用使用 Docker Machine 來管理虛擬機的需求的話, 我們使用默認的 Docker 守護進程就 OK 了,不過在此之前我們還需要設置一下 docker

    將 docker 與本地的連接設置為不需要 TLS 加密。

    在完成這一步之后,可以在 IDEA 的配置窗口看到成功連接到了本機上的 docker

    到這里,我們已經完成對 docker 的配置,接下來就可以進入真正的實施階段。

    5、創建 spring cloud 項目

    1. 首先在 Idea 中創建一個 spring boot 項目,怎么創建在此就不再贅述了

    創建完成之后,我們在 pom.xml 中添加依賴項

    本地編寫的是 spring cloud 的注冊中心項目,所以還需要加上

    spring 的版本需要與 spring cloud 的版本號對應,詳細的對應信息可以去 http://projects.spring.io/spring-cloud / 查看

    由于本次只是簡單地示范如何在 IDEA 中部署 spring boot 項目到 docker 中,所以在項目中只需要對 eureka 注冊中心進行簡單的配置就 OK 了,

    在啟動類中加上注解標明這是一個 eureka 注冊中心的項目

    在配置文件中配置端口

    然后我們就完成了項目的編寫,可以先啟動看看項目是否能夠啟動,啟動之后我們訪問 http://localhost:8761/ , 可以看到我們的 eureka 注冊中心已經啟動,項目編寫沒有問題

    接下來就到了如何把項目部署到 docker 中去的問題了

    6、將項目部署到 Docker 中

    首先我們需要編寫 Dockerfile 文件,在 src-main 目錄下新建 docker 文件夾,然后在其中新建 Dockerfile 文件

    文件內容如下

    其中紅框的地方是本項目打包之后的 jar 包名字,默認是 artifactId-version.jar, 同時我們可以看到在左上叫有個運行的標記,很對,這個就是用來在 IDEA 構建 jar 包到鏡像,然后放到 Docker 中運行的按鈕, 不過我們還是需要先配置一下

    我們先配置鏡像名稱以及容器名稱

    然后需要對 docker 容器需要映射的端口號進行配置

    然后我們點擊 run, 可以看到,很快就報錯了,這是由于 DockerFile 與我們生成的 jar 包不在同一個文件夾造成的。

    為了解決這個問題,我找到了兩種方案:

    方案 1:先使用 maven 命令

    mvn clean package

    對項目進行打包,命令執行完畢之后可以在 target 目錄下看到已經打包完成的 jar 包

    然后把 jar 包放到 Dockerfile 所在的目錄下,像這樣

    然后接著點擊 Dockerfile 中的運行,

    在 Deploylog 窗口中,可以看到,這次構建鏡像就成功了, 在 log 窗口中可以看到我們的項目在運行過程中打出的日志信息

    很明顯,這次的構建和部署都成功了, 訪問 http://localhost:8761/,出現了我們想要看到的東西。

    在命令行中使用 docker ps 命令查看正在運行的容器信息

    可以看到,我們在 IDEA 中編寫的項目已經運行到了 docker 中。

    方案 2:使用 docker-maven-plugin 插件,在 pom.xml 中配置插件

    然后在 ternimal 中運行 mvn clean package -DskipTests=true docker:build 命令,打包項目并構建鏡像,命令執行完畢可以看到

    在 docker 窗口下,我們構建的鏡像已經出現在窗口中了

    右鍵點擊創建一個新的容器

    跳轉到我們的部署配置里面,只需要像方案 1 中的一樣進行配置完畢后點擊 run 就 OK 了, 訪問 http://localhost:8761/,同樣可以看到我們的 eureka 的運行信息。docker ps 命令也顯示我們的容器已經運行起來。

    好的,到這里我們先是在安裝了 windows 版的 docker, 然后使用 IDEA 創建了一個 spring cloud 項目,并在 IDEA 中將此項目部署到了 docker 中.


    本文轉載至微信公眾號——java思維導圖,如有侵權請聯系立刪!

    小編根據自己的開發經驗整理了一批JAVA學習資料以及面試題,有需要的伙伴可以私信我{java}獲取!


    隨著監控助理突然提示很多數據庫連接錯誤:

    排查數據庫錯誤便隨之提上了日程。

    重啟大法

    不得不說,有時候重啟大法還是挺好使的。所以我們上來也嘗試重啟mysql

    $ /usr/local/etc/rc.d/mysql-server stop
    $ /usr/local/etc/rc.d/mysql-server start

    再次連接,數據數據直接就連不上了。此時便需要來到正確的軌跡上:看報錯內容,根據報錯內容來排查原因,解決問題。

    錯誤日志

    很遺憾的是,mysql在啟動過程中,即使啟動失敗,也不會報什么的錯誤信息。我們查看mysql是否成功啟動則需要使用 mysql-server status 命令:

    root@YunzhiTest:/usr/home/panjie # /usr/local/etc/rc.d/mysql-server status
    mysql is not running.

    而是否打印日志,以及日志的位置放在哪,則需要我們進行手動配置。在mysql服務成功啟動的前提下,我們其實是可以使用mysql的相關命令來查看當前的配置文件位置的,無奈當前mysql并沒有成功啟動,所以此時則需要借助一些查詢軟件或是當初安裝mysql使用的工具(比如FreeBSD的ports)來查找mysql的配置文件位置了。在FreeBSD中,mysql的配置文件位于 /usr/local/etc/mysql 中:

    root@YunzhiTest:/usr/home/panjie # cd /usr/local/etc/mysql/
    root@YunzhiTest:/usr/local/etc/mysql # ls
    keyring        my.cnf        my.cnf.sample

    然后我們備份一個配置文件 cp my.cnf my.cnf.bak 后再對其進行編輯:

    [mysqld]
    log-error             =/var/log/mysql/error.log
    user                  =mysql
    port                  =3306

    在 mysqld 下增加log-error。同時由于當前mysql啟動的用戶是mysql,還需要保證mysql用戶對相關日志路徑擁有絕對權限:

    $ mdkir /usr/log/mysql
    $ chown mysql:mysql /usr/log/mysql

    查看日志

    此時我們再次啟動mysql 服務,則可以查看在/var/log/mysql/下生成的error.log文件了:

    $ /usr/local/etc/rc.d/mysql-server start

    其比較重要的錯誤信息如下:

    2022-07-11T14:22:25.946391Z 0 [Note] InnoDB: Rollback of non-prepared transactions completed
    2022-07-11T14:22:25.946435Z 0 [Note] InnoDB: Setting file '/var/db/mysql/ibtmp1' size to 128 MB. Physically writing the file full; Please wait ...
    2022-07-11T14:22:25.947132Z 0 [Note] InnoDB: Progress in MB:
     1002022-07-11T14:22:26.085805Z 0 [Warning] InnoDB: Retry attempts for writing partial data failed.
    2022-07-11T14:22:26.085855Z 0 [ERROR] InnoDB: Write to file /var/db/mysql/ibtmp1failed at offset 133169152, 1048576 bytes should have been written, only 0 were written. Operating system error number 28. Check that your OS and file system support files of this size. Check also that the disk is not full or a disk quota exceeded.
    2022-07-11T14:22:26.085940Z 0 [ERROR] InnoDB: Error number 28 means 'No space left on device'
    2022-07-11T14:22:26.085951Z 0 [Note] InnoDB: Some operating system error numbers are described at http://dev.mysql.com/doc/refman/5.7/en/operating-system-error-codes.html
    2022-07-11T14:22:26.085968Z 0 [ERROR] InnoDB: Could not set the file size of '/var/db/mysql/ibtmp1'. Probably out of disk space

    上述錯誤大概就是在說一個問題:磁盤空間滿了,此問題導致mysql無法啟動。

    整理數據

    問題的根本原因找到了,解決問題便成了最輕松的事情。

    root@YunzhiTest:/usr/local/etc/mysql # df -h
    Filesystem                     Size    Used   Avail Capacity  Mounted on
    /dev/ufsid/59a7effe7885633c     39G     36G    124M   100%    /
    devfs                          1.0K    1.0K      0B   100%    /dev
    zroot/mengyunzhi                48G     40G    8.4G    82%    /mengyunzhi
    zroot                          8.4G     23K    8.4G     0%    /zroot

    首先我們查看 my.cnf 中的數據庫文件配置路徑:

    datadir               =/var/db/mysql
    tmpdir                =/var/db/mysql_tmpdir
    slave-load-tmpdir     =/var/db/mysql_tmpdir
    secure-file-priv      =/var/db/mysql_secure

    然后依次查看其占用的空間:

    root@YunzhiTest:/var/db # du -h -d 1
    180M    ./portsnap
    3.1M    ./etcupdate
    8.0K    ./zfsd
     36K    ./entropy
    4.0K    ./ipf
    4.0K    ./hyperv
     87M    ./pkg
    688K    ./ports
    1.5G    ./freebsd-update
     12K    ./ntp
    148K    ./fontconfig
    8.0K    ./sudo
     18G    ./mysql
    4.0K    ./mysql_secure
    4.0K    ./mysql_tmpdir
    8.0K    ./redis
    8.0K    ./colord
     20G    .

    發現mysql占用了18G,但實際上并沒有這么多數據。進入mysql文件夾后繼續查看:

    root@YunzhiTest:/var/db/mysql # du -ah | sort -h
    104M    ./log/log.ibd
    105M    ./log
    130M    ./mysql/slow_log.CSV
    131M    ./mysql-bin.000108
    136M    ./measurement/instrument.ibd
    142M    ./mysql-bin.000113
    145M    ./mysql-bin.000104
    150M    ./mysql
    190M    ./mysql-bin.000114
    214M    ./mysql-bin.000111
    224M    ./mysql-bin.000109
    230M    ./mysql-bin.000103
    256M    ./ib_logfile0
    256M    ./ib_logfile1
    256M    ./mysql-bin.000106
    274M    ./mysql-bin.000107
    287M    ./mysql-bin.000110
    344M    ./mysql-bin.000102
    346M    ./instrument
    380M    ./mysql-bin.000112
    404M    ./measurement/instrument_check_info_mandatory_instrument_check_ability_list.ibd
    502M    ./mysql-bin.000120
    658M    ./mysql-bin.000121
    678M    ./mysql-bin.000125
    786M    ./mysql-bin.000116
    813M    ./mysql-bin.000123
    900M    ./mysql-bin.000118
    1.0G    ./measurement
    1.0G    ./mysql-bin.000115
    1.0G    ./mysql-bin.000117
    1.0G    ./mysql-bin.000119
    1.0G    ./mysql-bin.000122
    1.0G    ./mysql-bin.000124
    1.2G    ./switchgear1
    1.2G    ./switchgear1/record_value.ibd
    2.3G    ./ibdata1

    最終發現空間大戶如上,我們發現系統中的.mysql-bin文件占據了較大的空間,而mysql-bin文件大體有兩個作用:1是用來進行數據恢復;2是在主從數據庫的時候保障高可用性。

    雖然可以刪除相應的mysql-bin文件,但是保留該文檔還是有一定的必要性的。但我們可以將其保留的日期縮短一些,比如我們只保留一周的。查看文件的生成日期:

    root@YunzhiTest:/var/db/mysql # ls -alh
    -rw-r-----   1 mysql  mysql   344M Jun 13 17:02 mysql-bin.000102
    -rw-r-----   1 mysql  mysql   229M Jun 14 13:53 mysql-bin.000103
    -rw-r-----   1 mysql  mysql   145M Jun 14 20:44 mysql-bin.000104
    -rw-r-----   1 mysql  mysql    56M Jun 15 00:11 mysql-bin.000105
    -rw-r-----   1 mysql  mysql   256M Jun 15 22:34 mysql-bin.000106
    -rw-r-----   1 mysql  mysql   274M Jun 16 11:29 mysql-bin.000107
    -rw-r-----   1 mysql  mysql   131M Jun 16 17:38 mysql-bin.000108
    -rw-r-----   1 mysql  mysql   224M Jun 17 04:00 mysql-bin.000109
    -rw-r-----   1 mysql  mysql   287M Jun 17 17:26 mysql-bin.000110
    -rw-r-----   1 mysql  mysql   214M Jun 18 03:29 mysql-bin.000111
    -rw-r-----   1 mysql  mysql   380M Jun 18 21:19 mysql-bin.000112
    -rw-r-----   1 mysql  mysql   142M Jun 20 17:02 mysql-bin.000113
    -rw-r-----   1 mysql  mysql   189M Jun 21 00:09 mysql-bin.000114
    -rw-r-----   1 mysql  mysql   1.0G Jun 22 19:35 mysql-bin.000115
    -rw-r-----   1 mysql  mysql   785M Jun 24 00:16 mysql-bin.000116
    -rw-r-----   1 mysql  mysql   1.0G Jun 25 19:06 mysql-bin.000117
    -rw-r-----   1 mysql  mysql   900M Jun 27 08:14 mysql-bin.000118
    -rw-r-----   1 mysql  mysql   1.0G Jun 29 11:30 mysql-bin.000119
    -rw-r-----   1 mysql  mysql   502M Jul  1 13:09 mysql-bin.000120
    -rw-r-----   1 mysql  mysql   657M Jul  5 01:38 mysql-bin.000121
    -rw-r-----   1 mysql  mysql   1.0G Jul  6 21:05 mysql-bin.000122
    -rw-r-----   1 mysql  mysql   813M Jul  8 09:05 mysql-bin.000123
    -rw-r-----   1 mysql  mysql   1.0G Jul 10 10:36 mysql-bin.000124
    -rw-r-----   1 mysql  mysql   677M Jul 11 21:28 mysql-bin.000125

    發現該文件當前保存了近1個月,此時我們先刪除兩個稍大的歷史文件,把空間釋放一些出來,然后再去修改一下my.cnf中的保留日期將其縮短為10天。

    root@YunzhiTest:/var/db/mysql # rm mysql-bin.000115
    root@YunzhiTest:/var/db/mysql # rm mysql-bin.000124
    root@YunzhiTest:/var/db/mysql # df -h
    Filesystem                     Size    Used   Avail Capacity  Mounted on
    /dev/ufsid/59a7effe7885633c     39G     34G    2.1G    94%    /
    devfs                          1.0K    1.0K      0B   100%    /dev
    zroot/mengyunzhi                48G     40G    8.4G    82%    /mengyunzhi
    zroot                          8.4G     23K    8.4G     0%    /zroot

    將bin文件的保留天數據設置為10:

    binlog_cache_size     =16M
    expire_logs_days      =10

    最后嘗試啟動mysql

    root@YunzhiTest:/usr/local/etc/mysql # /usr/local/etc/rc.d/mysql-server start
    Starting mysql.
    root@YunzhiTest:/var/log/mysql # /usr/local/etc/rc.d/mysql-server status
    mysql is running as pid 11633.

    其實除此方法外,如果你的第二硬盤空間夠用,還可以直接把mysql的數據文件遷移到第二塊硬盤上,我只所以沒有這么做是由于我第二塊硬盤的剩余空間也僅有8.4G,而這個值小于當前mysql的占用空間18G。所以即便是我想進行遷移,也遷移不過去。其根本原因是由于當下有個系統需要上傳大量的較大的文件,而我并沒有使用 存儲 來處理這些文件,是時候使用 存儲 來專門存放資源的文件了。

    追蹤:雖然將 expire_logs_days 的值設置成了10,但mysql在啟動的時候并沒有自動刪除歷史的日志,可能還需要在某個時間節點上觸發吧,待后續進行追蹤。


    原文鏈接:https://www.tuicool.com/articles/rIjeQzY

網站首頁   |    關于我們   |    公司新聞   |    產品方案   |    用戶案例   |    售后服務   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權所有