97色伦色在线综合视频,无玛专区,18videosex性欧美黑色,日韩黄色电影免费在线观看,国产精品伦理一区二区三区,在线视频欧美日韩,亚洲欧美在线中文字幕不卡

建設(shè)金融網(wǎng)站網(wǎng)絡(luò)營銷營銷型網(wǎng)站建設(shè)

鶴壁市浩天電氣有限公司 2026/01/24 10:43:45
建設(shè)金融網(wǎng)站,網(wǎng)絡(luò)營銷營銷型網(wǎng)站建設(shè),試描述一下網(wǎng)站建設(shè)的基本流程,網(wǎng)站開發(fā)服務(wù)合同前言 在如今的IT運維工作中#xff0c;重復(fù)的服務(wù)器配置、軟件安裝、服務(wù)啟停等工作占用了大量時間#xff0c;而且人工操作容易出錯。Ansible作為一款輕量級自動化工具#xff0c;無需在目標(biāo)主機(jī)安裝代理#xff0c;只需通過SSH即可實現(xiàn)遠(yuǎn)程管理#xff0c;而Playbook則是…前言在如今的IT運維工作中重復(fù)的服務(wù)器配置、軟件安裝、服務(wù)啟停等工作占用了大量時間而且人工操作容易出錯。Ansible作為一款輕量級自動化工具無需在目標(biāo)主機(jī)安裝代理只需通過SSH即可實現(xiàn)遠(yuǎn)程管理而Playbook則是Ansible的核心——它用簡單的YAML格式把復(fù)雜的運維任務(wù)寫成“劇本”讓基礎(chǔ)設(shè)施管理實現(xiàn)“代碼化”既高效又可靠。本文將從基礎(chǔ)概念到實戰(zhàn)案例一步步教你編寫和使用Ansible Playbook即使是運維新手也能輕松上手。一、Playbook 基礎(chǔ)概念1.1 Playbook 結(jié)構(gòu)概述Playbook 本質(zhì)是一個YAML格式的文件里面可以包含多個“劇本Play”每個Play專門針對一組主機(jī)執(zhí)行一系列任務(wù)。一個完整的Playbook通常由以下5個核心部分組成就像搭建房子需要不同的建材一樣Tasks任務(wù)最核心的部分每個任務(wù)調(diào)用一個Ansible模塊比如安裝軟件、啟動服務(wù)在目標(biāo)主機(jī)上執(zhí)行具體操作。Variables變量相當(dāng)于“萬能占位符”可以定義重復(fù)使用的值比如軟件名稱、端口號讓Playbook更靈活不用重復(fù)修改代碼。Templates模板基于Jinja2引擎的配置文件模板能把變量動態(tài)替換成實際值比如不同主機(jī)的Apache配置可以用同一個模板生成。Handlers處理器專門響應(yīng)任務(wù)變更的“觸發(fā)器”比如配置文件修改后通過它觸發(fā)服務(wù)重啟而且不管觸發(fā)多少次最后只執(zhí)行一次避免重復(fù)操作。Roles角色把任務(wù)、變量、模板等按功能拆分到不同目錄形成模塊化結(jié)構(gòu)比如把“Apache配置”“MySQL安裝”做成獨立角色方便重復(fù)使用和維護(hù)。二、Playbook 示例解析2.1 基礎(chǔ)Playbook示例下面用一個完整的示例帶你看懂Playbook的基本結(jié)構(gòu)——這個劇本會在目標(biāo)主機(jī)上關(guān)閉防火墻、安裝Apache、配置文件并啟動服務(wù)# 文件名test1.yaml---# 標(biāo)記YAML文件開始可省略-name:部署Apache服務(wù)# 劇本名稱方便識別可省略gather_facts:false# 不收集主機(jī)信息加快執(zhí)行速度可省略hosts:webservers# 目標(biāo)主機(jī)組在Ansible主機(jī)清單中定義remote_user:root# 用root用戶在目標(biāo)主機(jī)執(zhí)行操作tasks:# 任務(wù)列表按順序執(zhí)行-name:測試主機(jī)連通性# 任務(wù)名稱自定義ping:# 調(diào)用ping模塊測試SSH連接是否正常-name:關(guān)閉SELinuxcommand:/sbin/setenforce 0# command模塊執(zhí)行系統(tǒng)命令無需keyvalue格式ignore_errors:True# 忽略命令執(zhí)行失敗比如SELinux已關(guān)閉避免劇本中斷-name:關(guān)閉防火墻service:namefirewalld statestopped enabledno# service模塊管理系統(tǒng)服務(wù)keyvalue格式傳參-name:安裝Apacheyum:namehttpd statelatest# yum模塊安裝最新版httpd-name:復(fù)制Apache配置文件copy:src/opt/httpd.conf dest/etc/httpd/conf/httpd.conf# 復(fù)制本地配置文件到目標(biāo)主機(jī)notify:重啟Apache# 若該任務(wù)執(zhí)行后配置文件有變更觸發(fā)名為“重啟Apache”的處理器-name:啟動Apache服務(wù)service:namehttpd statestarted enabledyes# 啟動服務(wù)并設(shè)置開機(jī)自啟handlers:# 處理器列表僅在被notify觸發(fā)時執(zhí)行-name:重啟Apache# 名稱必須和notify中的一致service:namehttpd staterestarted# 重啟Apache服務(wù)這里有個關(guān)鍵知識點Handlers不會立即執(zhí)行要等當(dāng)前劇本中所有普通任務(wù)都完成后才會統(tǒng)一執(zhí)行被觸發(fā)的Handlers。這樣即使多次修改配置文件觸發(fā)notify也只會重啟一次服務(wù)效率更高。再補(bǔ)充一個安裝MySQL的簡單示例幫你鞏固基礎(chǔ)# 文件名install_mysql.yaml----name:安裝MariaDB數(shù)據(jù)庫hosts:dbservers# 目標(biāo)主機(jī)組為數(shù)據(jù)庫服務(wù)器tasks:-name:安裝MariaDB服務(wù)yum:name:[mariadb,mariadb-server]# 安裝兩個軟件包state:latest-name:啟動MariaDB服務(wù)service:name:mariadbstate:startedenabled:yes三、Playbook 執(zhí)行與管理3.1 命令行運行 Playbook寫好Playbook后通過ansible-playbook命令執(zhí)行常用參數(shù)如下直接套用即可# 1. 直接運行Playbookansible-playbook test1.yaml# 2. 檢查語法錯誤編寫后必做避免執(zhí)行失敗ansible-playbook test1.yaml --syntax-check# 3. 查看劇本中的所有任務(wù)不實際執(zhí)行ansible-playbook test1.yaml --list-task# 4. 查看劇本會影響哪些主機(jī)ansible-playbook test1.yaml --list-hosts# 5. 從指定任務(wù)開始執(zhí)行比如前面任務(wù)已完成無需重復(fù)執(zhí)行ansible-playbook test1.yaml --start-at-task安裝Apache執(zhí)行后會顯示每個任務(wù)的結(jié)果ok無變更、changed有變更、failed失敗一目了然。3.2 認(rèn)證相關(guān)參數(shù)如果目標(biāo)主機(jī)需要SSH密碼登錄或者執(zhí)行任務(wù)需要sudo權(quán)限非root用戶可以用以下參數(shù)# 提示輸入SSH登錄密碼ansible-playbook test1.yaml -k# 提示輸入sudo密碼執(zhí)行sudo命令時需要ansible-playbook test1.yaml -K四、變量定義與使用變量能讓Playbook擺脫“硬編碼”一次編寫多次復(fù)用比如換個軟件名稱、端口號不用修改任務(wù)只需改變量即可。4.1 變量定義方法最常用的是在Playbook中用vars關(guān)鍵字定義直接看示例# 文件名test2.yaml----name:用變量創(chuàng)建用戶和組hosts:dbserversremote_user:rootvars:# 定義變量groupname:mysql# 組名變量username:nginx# 用戶名變量tasks:-name:創(chuàng)建mysql組group:name:{{ groupname }}# 引用變量用{{ 變量名 }}格式system:yes# 系統(tǒng)組gid:306# 組ID-name:創(chuàng)建nginx用戶user:name:{{ username }}uid:306group:{{ groupname }}# 引用組名變量-name:保存主機(jī)IP到文件copy:content:{{ ansible_default_ipv4.address }}# 引用Ansible內(nèi)置變量獲取主機(jī)IPdest:/opt/host_ip.txtAnsible還有很多內(nèi)置變量比如主機(jī)名、內(nèi)存大小等可以通過ansible 主機(jī)名 -m setup命令查看所有內(nèi)置變量。4.2 命令行傳遞變量如果臨時需要修改變量值不用改Playbook直接用-e參數(shù)在命令行傳遞優(yōu)先級最高# 臨時將用戶名改為tom覆蓋Playbook中定義的nginxansible-playbook test2.yaml -eusernametom這里要提一下Ansible的冪等性不管執(zhí)行多少次Playbook結(jié)果都是一致的不會出現(xiàn)重復(fù)創(chuàng)建用戶、重復(fù)安裝軟件的問題非常安全。五、條件判斷與循環(huán)5.1 條件判斷 when有時候我們需要“滿足特定條件才執(zhí)行任務(wù)”比如只給IP為192.168.10.14的主機(jī)重啟或者內(nèi)存大于4G才安裝數(shù)據(jù)庫。Ansible中用when指令實現(xiàn)條件判斷值為true時執(zhí)行任務(wù)。常用場景示例按IP地址執(zhí)行任務(wù)----name:只重啟指定IP的主機(jī)hosts:allremote_user:roottasks:-name:重啟主機(jī)command:/sbin/shutdown-r nowwhen:ansible_default_ipv4.address 192.168.10.14# 變量不用加{{ }}按主機(jī)配置執(zhí)行任務(wù)比如內(nèi)存≥4G裝MariaDBCPU≥2核裝Apache----name:按主機(jī)配置安裝軟件hosts:allgather_facts:true# 必須開啟默認(rèn)開啟才能獲取內(nèi)存、CPU等信息remote_user:roottasks:-name:內(nèi)存≥4G安裝MariaDByum:name[mariadb,mariadb-server]statepresentwhen:ansible_memtotal_mb 4096# ansible_memtotal_mb是內(nèi)置變量代表總內(nèi)存MB-name:內(nèi)存不足提示debug:msg內(nèi)存只有{{ansible_memtotal_mb}}MB不安裝MariaDBwhen:ansible_memtotal_mb 4096-name:CPU≥2核安裝Apacheyum:namehttpd statepresentwhen:ansible_processor_cores 2# 內(nèi)置變量CPU核心數(shù)-name:CPU核心不足提示debug:msgCPU只有{{ansible_processor_cores}}核不安裝Apachewhen:ansible_processor_cores 2按主機(jī)名執(zhí)行任務(wù)# 需先在Ansible主機(jī)清單中配置主機(jī)名映射when:inventory_hostname web01# inventory_hostname是內(nèi)置變量代表主機(jī)名5.2 迭代循環(huán) with_items 和 loop如果需要重復(fù)執(zhí)行同一個任務(wù)比如創(chuàng)建多個目錄、多個用戶不用寫多個任務(wù)用循環(huán)就能搞定。Ansible支持with_items和loop功能完全一樣loop是較新的推薦用法。常用場景示例創(chuàng)建多個目錄----name:批量創(chuàng)建目錄hosts:dbserversremote_user:roottasks:-name:創(chuàng)建/tmp/test1和/tmp/test2目錄file:path:{{ item }}# item代表循環(huán)中的每個值state:directory# 狀態(tài)為目錄loop:# 循環(huán)列表-/tmp/test1-/tmp/test2創(chuàng)建多個用戶帶不同組----name:批量創(chuàng)建用戶hosts:dbserversremote_user:roottasks:-name:創(chuàng)建test1和test2用戶user:name:{{ item.name }}# 引用循環(huán)中的name字段state:presentgroups:{{ item.groups }}# 引用循環(huán)中的groups字段loop:-name:test1groups:wheel# test1用戶加入wheel組-name:test2groups:root# test2用戶加入root組執(zhí)行后目標(biāo)主機(jī)上會成功創(chuàng)建兩個用戶且所屬組符合配置。六、模板系統(tǒng) Templates有時候不同主機(jī)的配置文件只有少數(shù)參數(shù)不同比如端口號、網(wǎng)站根目錄如果每個主機(jī)寫一個配置文件維護(hù)起來很麻煩。這時用Jinja2模板就能解決——一個模板文件配合變量自動生成不同主機(jī)的配置文件。6.1 Jinja2 模板引擎Jinja2是基于Python的模板引擎核心作用是“變量替換”在模板文件中用{{ 變量名 }}標(biāo)記需要替換的內(nèi)容Ansible執(zhí)行時會把變量換成實際值生成最終的配置文件。6.2 模板使用示例以Apache配置文件為例步驟如下第一步創(chuàng)建Jinja2模板文件先復(fù)制默認(rèn)的Apache配置文件改名為.j2后綴標(biāo)識為模板文件# 復(fù)制默認(rèn)配置文件到/opt目錄并重命名cp/etc/httpd/conf/httpd.conf /opt/httpd.conf.j2編輯模板文件把需要動態(tài)修改的參數(shù)換成變量vim/opt/httpd.conf.j2# 42行監(jiān)聽端口替換為{{ http_port }}Listen{{http_port}}# 95行服務(wù)器名替換為{{ server_name }}ServerName{{server_name}}# 119行網(wǎng)站根目錄替換為{{ root_dir }}DocumentRoot{{ root_dir }}第二步在主機(jī)清單中定義變量編輯Ansible主機(jī)清單默認(rèn)路徑/etc/ansible/hosts給webservers組的主機(jī)指定變量值vim/etc/ansible/hosts[webservers]192.168.10.14http_port80server_namewww.test.com:80root_dir/etc/httpd/htdocs192.168.10.15http_port8080server_namewww.demo.com:8080root_dir/opt/htdocs這樣不同主機(jī)的變量值不同生成的配置文件也會不一樣。第三步編寫Playbook使用模板# 文件名template_demo.yaml----hosts:webserversremote_user:rootvars:service:httpd# 定義服務(wù)名變量tasks:-name:安裝Apacheyum:name{{service}}statelatest-name:部署動態(tài)配置文件template:src:/opt/httpd.conf.j2# 模板文件路徑dest:/etc/httpd/conf/httpd.conf# 目標(biāo)主機(jī)的配置文件路徑notify:重啟Apache# 配置文件變更后觸發(fā)重啟-name:創(chuàng)建網(wǎng)站根目錄file:path{{root_dir}}statedirectory# 引用主機(jī)清單中的root_dir變量-name:啟動Apache服務(wù)service:name{{service}}statestarted enabledyeshandlers:-name:重啟Apacheservice:name{{service}}staterestarted第四步執(zhí)行并驗證ansible-playbook template_demo.yaml# 驗證配置文件是否生效以192.168.10.14為例ansible192.168.10.14 -agrep -E Listen|ServerName|DocumentRoot /etc/httpd/conf/httpd.conf執(zhí)行后會看到配置文件中的變量已經(jīng)被替換成主機(jī)清單中定義的值實現(xiàn)了“一個模板多機(jī)復(fù)用”。七、Tags 模塊如果Playbook中有很多任務(wù)而你只想執(zhí)行其中幾個比如只更新配置文件不安裝軟件用Tags就能實現(xiàn)——給任務(wù)打標(biāo)簽執(zhí)行時指定標(biāo)簽即可。7.1 Tags 的作用給單個或多個任務(wù)打標(biāo)簽執(zhí)行Playbook時可指定只運行帶該標(biāo)簽的任務(wù)特殊標(biāo)簽always無論指定哪個標(biāo)簽帶always的任務(wù)都會執(zhí)行比如備份文件。7.2 Tags 使用示例# 文件名tags_demo.yaml----hosts:webserversremote_user:roottasks:-name:備份原有配置文件copy:src/etc/httpd/conf/httpd.conf dest/etc/httpd/conf/httpd.conf.baktags:always# 始終執(zhí)行不管指定哪個標(biāo)簽-name:安裝Apacheyum:namehttpd statelatesttags:install# 標(biāo)簽名為install-name:更新Apache配置文件copy:src/opt/httpd.conf dest/etc/httpd/conf/httpd.conftags:config# 標(biāo)簽名為config-name:重啟Apacheservice:namehttpd staterestartedtags:restart# 標(biāo)簽名為restart7.3 執(zhí)行指定Tags# 1. 只執(zhí)行帶config標(biāo)簽的任務(wù)備份任務(wù)會自動執(zhí)行因為有always標(biāo)簽ansible-playbook tags_demo.yaml --tagsconfig# 2. 執(zhí)行install和restart兩個標(biāo)簽的任務(wù)ansible-playbook tags_demo.yaml --tagsinstall,restart# 3. 只執(zhí)行always標(biāo)簽的任務(wù)僅備份配置文件ansible-playbook tags_demo.yaml --tagsalwaysTags在大型Playbook中非常實用能節(jié)省執(zhí)行時間避免不必要的操作。八、Roles 模塊當(dāng)你的Playbook越來越復(fù)雜比如要管理Web、數(shù)據(jù)庫、緩存等多種服務(wù)把所有任務(wù)都寫在一個文件里維護(hù)起來會非常困難。Roles就是為了解決這個問題——把不同服務(wù)的配置拆分成獨立的“角色”結(jié)構(gòu)清晰可重復(fù)使用。8.1 Roles 概念與優(yōu)勢Roles 是Ansible的模塊化組織方式把任務(wù)、變量、模板等按功能拆分到固定目錄中優(yōu)勢很明顯結(jié)構(gòu)清晰每個角色負(fù)責(zé)一個具體功能比如httpd角色管Apachemysql角色管數(shù)據(jù)庫復(fù)用性高一個角色可以在多個項目中使用不用重復(fù)寫代碼易于維護(hù)修改某個服務(wù)的配置只需改對應(yīng)的角色目錄不影響其他部分。8.2 Roles 目錄結(jié)構(gòu)每個角色都有固定的目錄結(jié)構(gòu)創(chuàng)建后如下以web和db兩個角色為例roles/ # 總角色目錄默認(rèn)路徑/etc/ansible/roles ├── web/ # Apache角色目錄 │ ├── files/ # 存放copy/script模塊需要的文件比如靜態(tài)配置文件 │ ├── templates/ # 存放Jinja2模板文件 │ ├── tasks/ # 任務(wù)目錄必須有main.yml定義角色的任務(wù) │ ├── handlers/ # 處理器目錄必須有main.yml │ ├── vars/ # 變量目錄main.yml中定義角色專屬變量 │ ├── defaults/ # 默認(rèn)變量目錄優(yōu)先級低于vars │ └── meta/ # 依賴關(guān)系目錄main.yml中定義角色依賴 └── db/ # MySQL角色目錄 ├── files/ ├── templates/ ├── tasks/ ├── handlers/ ├── vars/ ├── defaults/ └── meta/核心是tasks/main.yml角色的任務(wù)入口和vars/main.yml角色的變量定義其他目錄用不到可以為空或不創(chuàng)建。8.3 使用Roles的步驟創(chuàng)建總角色目錄yum安裝Ansible后默認(rèn)已有mkdir -p /etc/ansible/roles創(chuàng)建具體角色目錄比如httpd、mysql、php在每個角色目錄下創(chuàng)建子目錄files、tasks、vars等在tasks、vars等目錄下創(chuàng)建main.yml文件編寫任務(wù)和變量編寫site.yml文件調(diào)用不同角色執(zhí)行site.yml。8.4 Roles 實戰(zhàn)案例下面通過部署LAMPLinuxApacheMySQLPHP環(huán)境帶你實戰(zhàn)Roles的使用。8.4.1 創(chuàng)建項目目錄先創(chuàng)建三個角色httpd、mysql、php的目錄和必要文件# 創(chuàng)建角色目錄和子目錄mkdir-p /etc/ansible/roles/{httpd,mysql,php}/{files,templates,tasks,handlers,vars,defaults,meta}# 在每個角色的tasks、vars等目錄創(chuàng)建main.ymltouch/etc/ansible/roles/httpd/{tasks,vars,handlers}/main.ymltouch/etc/ansible/roles/mysql/{tasks,vars,handlers}/main.ymltouch/etc/ansible/roles/php/{tasks,vars,handlers}/main.yml8.4.2 編寫httpd模塊Apache角色編寫任務(wù)文件定義安裝、啟動Apachevim/etc/ansible/roles/httpd/tasks/main.yml - name: 安裝Apache軟件 yum:name{{pkg}}statelatest - name: 啟動Apache服務(wù)并設(shè)置開機(jī)自啟 service:name{{svc}}statestartedenabledyes編寫變量文件定義軟件名和服務(wù)名vim/etc/ansible/roles/httpd/vars/main.yml pkg: httpd# 軟件包名svc: httpd# 服務(wù)名8.4.3 編寫mysql模塊MySQL角色編寫任務(wù)文件vim/etc/ansible/roles/mysql/tasks/main.yml - name: 安裝MariaDB軟件 yum:name{{pkg}}statelatest - name: 啟動MariaDB服務(wù)并設(shè)置開機(jī)自啟 service:name{{svc}}statestartedenabledyes編寫變量文件vim/etc/ansible/roles/mysql/vars/main.yml pkg: - mariadb# MariaDB客戶端- mariadb-server# MariaDB服務(wù)端svc: mariadb# 服務(wù)名8.4.4 編寫php模塊PHP角色編寫任務(wù)文件vim/etc/ansible/roles/php/tasks/main.yml - name: 安裝PHP軟件 yum:name{{pkg}}statelatest - name: 啟動php-fpm服務(wù)并設(shè)置開機(jī)自啟 service:name{{svc}}statestartedenabledyes編寫變量文件vim/etc/ansible/roles/php/vars/main.yml pkg: - php# PHP核心- php-fpm# PHP進(jìn)程管理器svc: php-fpm# 服務(wù)名8.4.5 編寫roles劇本調(diào)用角色創(chuàng)建site.yml文件指定哪些主機(jī)調(diào)用哪些角色vim/etc/ansible/site.yml --- - name: 部署LAMP環(huán)境 hosts: webservers# 目標(biāo)主機(jī)組需要在/etc/ansible/hosts中定義remote_user: root roles: - httpd# 調(diào)用Apache角色- mysql# 調(diào)用MySQL角色- php# 調(diào)用PHP角色執(zhí)行并驗證# 進(jìn)入Ansible配置目錄執(zhí)行cd/etc/ansible ansible-playbook site.yml# 驗證服務(wù)是否正常運行在目標(biāo)主機(jī)執(zhí)行systemctl is-active httpd# 輸出active表示正常systemctl is-active mariadb systemctl is-active php-fpm執(zhí)行成功后目標(biāo)主機(jī)就部署好了LAMP環(huán)境整個過程結(jié)構(gòu)清晰后續(xù)要修改Apache配置只需改httpd角色的相關(guān)文件即可。總結(jié)Ansible Playbook 是運維自動化的“瑞士軍刀”通過YAML格式的簡單語法把復(fù)雜的運維任務(wù)變成可復(fù)用、可維護(hù)的“代碼”。本文從基礎(chǔ)結(jié)構(gòu)入手逐步講解了變量、條件判斷、循環(huán)、模板、Tags和Roles等核心功能每個部分都配有實戰(zhàn)示例新手也能跟著操作。核心要點回顧Playbook的核心是“任務(wù)”通過模塊實現(xiàn)具體操作變量、模板讓Playbook更靈活避免重復(fù)代碼Tags能精準(zhǔn)執(zhí)行指定任務(wù)提高效率Roles是模塊化的關(guān)鍵適合管理復(fù)雜環(huán)境。
版權(quán)聲明: 本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請聯(lián)系我們進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

在哪做網(wǎng)站專業(yè)公司做網(wǎng)站計入那個科目

在哪做網(wǎng)站專業(yè),公司做網(wǎng)站計入那個科目,建湖做網(wǎng)站多少錢,網(wǎng)站建設(shè)哪個品牌好你是否曾經(jīng)遇到過這樣的困擾#xff1a;花重金購買的Audible有聲書只能在特定設(shè)備上播放#xff0c;想在其他播放器上欣

2026/01/22 22:50:01

做國外網(wǎng)站賺錢注冊深圳公司流程及費用

做國外網(wǎng)站賺錢,注冊深圳公司流程及費用,求一個dw做的網(wǎng)站,網(wǎng)站建設(shè)如何提高瀏覽量1. 數(shù)據(jù)查詢語法#xff08;DQL#xff09;DQL就是數(shù)據(jù)查詢語言#xff0c;數(shù)據(jù)庫執(zhí)行DQL語句不會對數(shù)據(jù)

2026/01/23 01:22:01