华为云用户手册

  • 配置追踪文件 配置追踪文件方法如下所示。 表2 追踪文件配置方法 场景 方法 追踪所有后缀名为“.psd”的文件 追踪所有后缀名为“.psd”的文件: git lfs track "*.psd" 追踪单个文件 追踪单个文件: git lfs track "logo.png" 查看已追踪的文件 查看已追踪的文件,可以通过git lfs track,或通过查看“.gitattributes”文件,获取详情: $ git lfs track Listing tracked patterns *.png (.gitattributes) *.pptx (.gitattributes) $ cat .gitattributes *.png filter=lfs diff=lfs merge=lfs -text *.pptx filter=lfs diff=lfs merge=lfs -text
  • 背景信息 代码托管支持Git LFS(Large File Storage,大文件存储)协议,可以把音乐、图片、视频等指定的任意大文件资源存储在Git仓库之外,对于使用者而言,类似在操作一个完整的Git仓库,非常方便。通过将大文件存储在Git原有的数据结构之中,可以减小Git仓库本身的体积,使克隆Git仓库的速度加快,也使得Git不会因为仓库中充满大文件而损失性能。 当您要上传的文件单个超过200MB时,需要使用Git LFS。 使用操作包含以下内容: 安装Git LFS 配置追踪文件 提交大文件 克隆包含Git LFS文件的远程仓库 更多操作
  • 常用命令 Git常用命令的功能、格式、参数说明以及使用示例如下所示。 表1 Git常用命令 命令 功能 格式 参数说明 使用实例 ssh–keygen –t rsa 生成密钥 ssh–keygen –t rsa –C [email] email:邮箱地址 在C盘.ssh文件夹下获取密钥文件“id_rsa.pub” ssh–keygen –t rsa –C "devcloud_key01@test.com" git branch 新建分支。 git branch [new branchname] new branchname:新的分支名 新建分支: git branch newbranch git branch –D 删除分支 git branch –D [new branchname] new branchname:新的分支名 删除本地分支: git branch –D newbranch 删除服务器仓库分支 git branch –rd origin/newbranch 同步远端已删除的分支 git remote prune origin git add 添加文件到暂存区。 git add [filename] filename:文件名 添加一个文件到暂缓区: git add filename 添加所有修改的和新增的文件到暂缓区: git add . git rm 删除本地目录或文件。 git rm [filename] filename:文件名或目录名 删除文件: git rm filename git clone 克隆远程仓库。 git clone [VersionAddress] VersionAddress:版本库的网址。 克隆jQuery的版本库: git clone https://github.com/jquery/jquery.git 该命令会在本地主机生成一个目录,与远程主机的版本库同名。 git pull 把远程仓库的分支pull到本地,再与本地的指定分支合并。 git pull [RemoteHostname] [RemoteBranchname]:[LocalBranchname] - 取回“origin”主机的“next”分支,与本地的“master”分支合并: git pull origin next:master git diff 文件、分支、目录或版本的比较。 git diff - 当前与“master”分支的比较: git diff master git commit 文件提交。 git commit - 添加提交信息: git commit –m "commit message" git push 推送文件到远程仓库。 git push [RemoteHostname] [LocalBranchname] [RemoteBranchname] - 如果省略远程分支名,则表示将本地分支推送与之存在“追踪关系”的远程分支(通常两者同名),如果该远程分支不存在,则会被新建: git push origin master 上面命令表示,将本地的master分支推送到origin主机的master分支。如果后者不存在,则会被新建。 git merge 合并分支。 git merge [branch] branch:分支名 假设当前分支为“develop”,将master主分支之后的最新提交merge到当前的develop分支上: git merge master git checkout 切换分支。 git checkout [branchname] branchname:分支名 切换到master分支: git checkout master git log 列出日志信息。 git log - 列出所有的log: git log –-all git status 查看状态输出。 git status - git status git grep 查找字符串。 git grep - 查找是否有“hello”字符串: git grep "hello" git show 显示内容或修改的内容。 git show - git show v1 显示“tag v1”的修改内容 git show HEAD 显示当前版本的修改文件 git show HEAD^ 显示前一版本所有的修改文件 git show HEAD~4 显示前4版本的修改文件 git stash 暂存区。 git stash - git stash 用于保存和恢复工作进度 git stash list 列出暂存区的文件 git stash pop 取出最新的一笔,并移除 git stash apply 取出但不移除 git stash clear 清除暂存区 git ls-files 查看文件。 git ls-files - git ls-files –d 查看已经删除的文件 git ls-files –d |xargs git checkout 将已删除的文件还原 git remote 操作远程。 git remote - git push origin master:newbranch 增加远程仓库的分支 git remote add newbranch 增加远程仓库的分支 git remote show 列出现在远程有多少版本库 git remote rm newbranch 删除远程仓库的新分支 git remote update 更新远程所有版本的分支
  • 操作步骤 避免中文文件名出现乱码的几种提交场景操作方法如下表所示。 表1 中文名文件提交场景 场景 操作方法 在Git客户端中,使用git add添加要提交的文件时,如果文件名是中文,会显示形如“256\346\200\273\347\273\223.png”的乱码。 在bash提示符下输入: git config --global core.quotepath false 使用git log提交显示中文Log乱码。 设置git gui的界面编码: git config --global gui.encoding utf-8 设置commit log提交时使用“utf-8”编码,可避免服务器上乱码,同时与Linux上的提交保持一致: git config --global i18n.commitencoding utf-8 使得在$ git log时将“utf-8”编码转换成“gbk”编码,解决Msys bash中git log乱码: git config --global i18n.logoutputencoding gbk 使得git log可以正常显示中文(配合“i18n.logoutputencoding” = “gbk”),在“/etc/profile”中添加: export LESSCHARSET=utf-8 在MsysGit自带的bash中,使用ls命令查看中文文件名乱码,cygwin没有该问题。 使用ls --show-control-chars命令来强制使用控制台字符编码显示文件名,即可查看中文文件名。 为了方便使用,可以编辑“/etc/git-completion.bash”,新增一行: alias ls="ls --show-control-chars" 重启Git客户端即可生效。
  • 操作步骤 (可选)默认Git不对core.autocrlf进行配置,请设置如下值来辨别并对文本文件执行换行符转换: Windows系统 设置配置变量“core.autocrlf”为“true”,相当于在版本库中所有的文本文件都使用“LF”作为换行符,而检出到工作区无论是什么操作系统都使用CRLF作为换行符。 Linux系统 设置配置变量“core.autocrlf”为“input”,相当于在新增入库的文本文件的换行符自动转换为“LF”,如果将文件从版本库检出到工作区则不进行文件转换。 通过配置变量core.autocrlf来开启文本文件换行符转换的功能: git config --global core.autocrlf true
  • 操作步骤 设置Git编码为“UTF-8”。 $ git config --global core.quotepath false # 设置不转义特殊字符(bash运行Git命令时显示的文件路径不用编码模式显示) $ git config --global gui.encoding utf-8 # 图形界面编码 $ git config --global i18n.commit.encoding utf-8 # 提交信息编码 $ git config --global i18n.logoutputencoding utf-8 # 输出log编码 $ export LESSCHARSET=utf-8 # 最后一条命令是因为git log默认使用less分页,所以需要bash对less命令进行utf-8 以上命令等效于: 在“etc\gitconfig”中添加: [core] quotepath = false [gui] encoding = utf-8 [i18n] commitencoding = utf-8 logoutputencoding = utf-8 在“etc\profile”中添加: export LESSCHARSET=utf-8 gui.encoding = utf-8 解决在$ git gui和gitk中的中文乱码。如果发现代码中的注释显示乱码,可以设置项目根目录中“git/config”文件添加:[gui] encoding = utf-8 i18n.commitencoding = utf-8 设置commit log提交时使用“utf-8”编码,可避免服务器上乱码,同时与Unix上的编码提交保持一致。 i18n.logoutputencoding = utf-8 保证在$ git log时编码设置为“utf-8”。 export LESSCHARSET=utf-8保证$ git log可以正常显示中文(配合i18n.logoutputencoding设置)。 设置ls命令可以显示中文名称。 修改“etc\git-completion.bash”文件:alias ls="ls --show-control-chars --color"
  • Git客户端上传下载代码 检查网络。 在客户端输入:telnet *************.com 22 如果显示commant not found,则说明网络无法访问 代码托管服务 ; 检查客户端和代码托管服务器互信。 如果在pull、push时提示要输入密码,请确定是否已经添加了公钥文件。 添加完成后,判断互信是否添加成功:$ ssh -vT git@*************.com 如果出现如下图所示信息则表示互信正常。 如果已添加代码仓库的互信,双方指纹信息有变化,在提交代码时报公钥认证出错,需要做如下操作: 删除“~/.ssh/known_hosts”中*************.com相关的行。 重试push、pull或ssh -T git@*************.com。 遇到询问是否信任服务器公钥,输入“yes”即可。 代码正常下载,如果页面分支列表做了分支保护,提交的分支会显示在已受保护分支列表中,则向某个分支Push代码会不成功。 联系仓库管理员解除分支保护,解除保护后,开发人员可以正常提交代码。 父主题: Git客户端示例
  • 生成PPK文件 使用TortoiseGit作为客户端时,下载和提交代码需要PPK文件,主要有如下两种场景: Git客户端生成了公私钥对,并将该公钥添加到代码仓库的ssh-key配置中 在“开始”菜单,搜索并选择“PuttyGen”。 单击“Load”按钮,如下图所示。 选择您的公私钥目录下的“id_rsa”文件,然后单击“打开”按钮。 单击“确定”,再选择“Save private key”,如下图所示。 根据提示单击“是(Y)”确定生成。 保存到您的个人账户公私钥目录下,如下图所示。 此前未添加互信操作,即没有添加公钥到代码仓库中 在“开始”菜单,搜索并选择“PuttyGen”。 单击“Generate”按钮,即可生成密钥,如下图所示。 单击“Save private key”按钮,把生成的密钥保存为PPK文件,如下图所示。 根据提示单击“是(Y)”确定生成。 保存到您的个人账户公私钥目录下,如下图所示。
  • Windows系统如何使用HTTPS协议设置免密码提交代码 Windows系统设置免密码提交代码方法,如下表所示。 表1 Windows系统设置免密码提交代码 方法 操作说明 本地配置HTTPS密码 设置Git验证方式。 打开Git客户端:git config --global credential.helper store 使用Git命令进行首次Clone或Push代码,根据提示填写用户名和密码。 打开“.git-credentials”文件,如果已在本地存储了用户名和密码,会出现如下记录: https://username:password@***.***.***.com
  • Linux系统如何使用HTTPS协议设置免密码提交代码 Linux系统提供两种可选的免密码访问模式: cache模式: 将凭证存放在内存中一段时间,密码永远不会被存储在磁盘中,并且在15分钟后从内存中清除: git config --global credential.helper cache #Set git to use the credential memory cache 通过timeout选项设置过期时间,单位为秒: git config --global credential.helper 'cache --timeout=3600' # Set the cache to timeout after 1 hour (setting is in seconds) store模式: 将凭证用明文的形式存放在磁盘“home”目录下(默认是“~/.git-credentials”),永不过期,除非手动修改在Git服务器上的密码,否则永远不需要再次输入凭证信息。“git-credentials”文件内容如下: https://username:password@***********.com 保存退出后,执行如下命令即可完成: git config --global credential.helper store
  • 查看提交历史 代码托管服务支持查看提交历史的详细信息以及其涉及的文件变更。 您可以在仓库的动态、仓库文件列表的历史页签中,查看提交历史的清单,单击某次提交历史可以进入查看此次提交提交人、提交号、父节点、此条提交下评论的数量、代码变更对比等。 您可以对提交内容进行评论,也可对评论内容进行跟帖。 单击下图中的图标可以切换代码变更对比的横版或纵版显示,单击“全部展开”可以查看此次提交中涉及的文件的全文。 父主题: 提交代码到代码托管仓库
  • Linux、Mac平台的git-crypt、gpg安装 Linux平台安装git-crypt、gpg Linux安装依赖环境。 Software Debian/Ubuntu package RHEL/CentOS package Make make make A C++11 compiler (e.g. gcc 4.9+) g++ gcc-c++ OpenSSL development files libssl-dev openssl-devel Linux环境下,使用源码编译方式安装git-crypt。 下载源码 make make install 安装到指定目录。 make install PREFIX=/usr/local Linux环境下,使用源码编译方式安装GPG。 下载源码 ./configure make make install 使用Debian包安装git-crypt。 下载源码 Debian打包可以在项目Git仓库的“debian”分支中找到。 软件包是用“git-buildpackage”构建的,如下所示。 git checkout debian git-buildpackage -uc -us Debian环境下使用构建包安装GPG。 sudo apt-get install gnupg MAC平台安装git-crypt、gpg macOS上安装git-crypt。 使用 brew 软件包管理器,只需运行如下命令。 brew install git-crypt macOS上安装GPG。 使用 brew 软件包管理器,只需运行如下命令。 brew install gpg
  • 在Windows中使用密钥对方式进行加密、解密 安装并初始化Git。 下载最新基于Windows的git-crypt,将下载到的exe文件放到Git安装目录下的“cmd”文件夹中,下图以“Windows Server 2012 R2 标准版 64”的默认Git Bash安路径为例。 放进文件夹即可,不需要运行此exe。 生成密钥对。 打开“Git Bash”,并进入本地仓库(如下图1)。 生成密钥对,输入指令如下(如下图2): git-crypt init 将密钥文件导出,本示例中将密钥文件导出到C:\test目录并名为KeyFile,输入指令如下(如下图3): git-crypt export-key /c/test/keyfile 执行完以上步骤,可以到密钥导出的文件路径,验证下是否生成了密钥,在本示例中到C:\test路径下验证是否有KeyFile文件,如下图所示。 持有这个密钥文件的计算机,可以解密对应的加密文件。 为仓库配置加密范围。 在仓库的根目录下新建一个名为.gitattributes的文件。 打开.gitattributes文件,设置加密范围,语法如下。 文件名或文件范围 filter=git-crypt diff=git-crypt 下面给出四个示例。 FT/file01.txt filter=git-crypt diff=git-crypt #将 特定文件加密,这里加密的是FT文件夹下的file01.txt *.java filter=git-crypt diff=git-crypt #将 .java类型文件加密 G* filter=git-crypt diff=git-crypt #将 文件名为 G 开头的文件加密 ForTest/** filter=git-crypt diff=git-crypt #将 ForTest 文件夹下的文件加密 如果创建.gitattributes文件时提示“必须键入文件名”,可以将文件名填写成 “.gitattributes.”即可创建成功,如果使用Linux指令创建文件,则不会出现此问题。 注意不要将.gitattributes保存成txt文件,这样配置会无效。 进行文件加密。 仓库根目录打开Git bash,执行如下指令即可完成加密,并会看到目前文件的加密状态。 git-crypt status 加密执行后,在您的本地仓库仍能明文方式打开和编辑这些加密文件,这是因为您本地仓库有密钥存在。 这时你可以使用add 、commit、push组合将仓库推送到代码托管仓库,此时加密文件将一同被推送。 加密文件在代码托管仓库中将以加密二进制方式存储,无法直接查看。如果没有密钥,就算将其下载到本地,也无法解密。 “git-crypt status”只会加密本次待提交的文件,对本次未发生修改的历史文件不会产生加密作用,Git会对此设定涉及的未加密文件做出提示(见上图中的Warning),如果想将仓库中的对应类型文件全部加密,请使用“git-crypt status -f”。 在让团队合作中 -f (强制执行)具有一定的风险,可能会对合作伙伴的工作产生不变,请谨慎使用。 进行文件解密。 确认本机器Git安装路径下存在git-crypt文件。 将仓库从代码托管克隆到本地。 获取加密此仓库的密钥文件,并存储于本地计算机。 进入仓库目录,右键打开Git bash。 执行解密指令,执行后无回显,则为执行成功。 git-crypt unlock /C/test/KeyFile #请将 /C/test/KeyFile 更换为您实际的密钥存储路径
  • git-crypt加密在团队合作中的应用 在很多时候,团队需要在代码仓库中存储限制公开的文件,这时可以优先考虑使用“CodeArts Repo” + “Git” + “git-crypt”的组合,来实现部分文件在仓库分布式开源中的加密。 通常,直接使用密钥对方式的加密就能满足限制部分文件访问的需要。 当团队需要将加密文件设置不同的秘密级别时,可以使用GPG方式加密,这种方式支持您对同一个仓库的不同文件使用不同的密钥加密,将不同密级的密钥分别随仓库共享给组织内的伙伴,即可实现文件的定向分级限制访问。
  • IP白名单格式 IP白名单支持IPv4和IPv6,有3种格式,如下表所示。 表1 IP白名单格式 格式 说明 单个IP 这是最简单的一种IP白名单格式,如将您的个人家庭电脑的IP添加到白名单中,比如:100.*.*.123。 IP范围 当您拥有不止一台服务器而且IP段是连续的,或者您的IP会在一个网段内动态变化,这时您可以添加一个IP白名单范围,比如:100.*.*.0 - 100.*.*.255。 CIDR格式(无类别域间路由) 当您的服务器在一个局域网内并使用CIDR路由时,您可以指定局域网的32位出口IP以及一个指定网络前缀的位数。 从同一个IP发起的请求,只要网络前缀同您设定的前缀部分相同,即可视为来自同一授信范围从而被接受。
  • 在代码托管控制台提交代码并关联工作项 进入仓库详情页。 新建一个文件,如下图所示,在填写“提交信息”时以fix #708206209开头,其他信息任意即可。 708206209是task02的编号。 单击“确定”按钮,此时系统相当于在代码托管仓库上执行了以下操作: 新建文件写入内容 git add . git commit -m "fix #708206209 Task02" 也就是将一个新建的文件进行了一次commit,并通过-m参数中的“fix”关键字关联到了task02工作项。 验证。 此时您再去查看task02工作项时,如下图所示: 其状态已经置于“已解决”。 增加了一条关联得代码提交记录,单击提交编号可以前往查看提交详情。 增加了一条自动生成的评论以说明本次工作项关联。
  • 在本地提交代码并关联工作项 首先您需要在本地具备Git环境,详细请参考Git客户端安装与配置,在可以访问仓库时(已经关联到了对应的远程仓库),可以开始进行以下操作。 在本地的master分支上新建一个文件,将其推送到远程仓库,在推送时-m里使用“fix”关键字去关联工作项task01。 本示例直接修改master分支,是为了缩短流程减少杂音让开发者更快的了解本地提交关联工作项的操作和原理。 在实际代码开发中,尽量不要直接修改master分支,推荐新建一个分支进行文件操作,操作完后再合并到master分支并将master推送到远程仓库。(这是一种默认规则和良好习惯) 在本地仓库文件夹下单击鼠标右键,打开Git Bash客户端。 确认远程仓库地址绑定是否成功。 git remote -v #该命令可以查看目前本地仓库所绑定的远程仓库地址。 如下图返回内容中,红线部分是本地仓所关联的远程仓库地址,地址之前是远程仓库在本地的别名。 如果发现绑定的仓库并非需要关联的仓库,或者没有绑定仓库,推荐直接将想绑定的仓库Clone到本地。 Clone成功以后再次执行“git remote -v”查看确认绑定正确即可。 (上步骤已Clone的仓库可跨过此步)用status命令查看下目前仓库的状态,切换到master分支。 git status #查看当前仓库状态,可以看到目前处于哪个分支、该分支有没有未暂存、未提交、未推送的修改 git checkout master #切换到master分支,如果当前没有处于master分支时使用 在本地仓库文件夹下新建一个文件,本示例中将其命名为“fileFor708206208”。 在Git Bash中将新建的文件添加到暂存区。 git add fileFor708206208 在Git Bash中将本次操作提交。 git commit -m "fix #708206208 Task01" #/本次提交用fix关键字关联了编号为708206208的task01 708206208是task01的编号。 在Git Bash将提交的内容推送到关联的代码托管仓库。 git push 如下图为推送成功,不同仓库结构返回会略有不同,只要看到所有步骤都100%、done就是推送成功了,如果推送失败一般是您的密钥问题。 验证关联结果。 上述操作完成后,进入工作项列表,找到编号为708206208的工作项,进入查看详情,如下图所示: 其状态已经置于“已解决”。 增加了一条关联的代码提交记录,单击提交编号可以前往查看提交详情。 增加了一条自动生成得评论以说明本次工作项关联。
  • 操作步骤 在代码托管服务中,创建一个空仓库。 不选择“选择gitignore”。 不勾选“允许生成README文件”。 在本地,准备好将要上传的源代码。 如果原来是来自SVN服务器的,建议参考将SVN代码库迁移到Git代码库。 如果原来没有纳入过任何的版本系统,则在源代码的根目录,执行以下git命令(以Git Bash为例): 初始化Git仓库: git init 将文件加入版本库: git add * 创建初始提交: git commit -m "init commit" 设置本地仓库的远程服务器地址: 如果原来从其它地方clone的git仓库,则添加一个新的remote,命令行参考如下: git remote add new git@***.***.com:testtransfer/Repo1.git #(new 后面为仓库地址) 仓库地址在仓库详情页,获取方式如下图: 如果是一个刚刚初始化的仓库,则添加一个名为origin的remote,命令行参考如下: git remote add origin git@***.***.com:testtransfer/Repo1.git #(origin 后面为仓库地址) 推送全部代码到代码托管仓库: git push new master #(对应步骤3的第一种情况) git push origin master #(对应步骤3的第二种情况) 以上操作需要一定的Git基础知识,如遇到问题可以在Git官网学习或者申请技术支持。
  • 验证HTTPS密码是否生效 当设置好HTTPS密码后,您可以在Git Bash执行git clone https://username:password@example.com/repo_path.git克隆您有权限访问的代码仓。其中,“username”为您配置的HTTPS用户名,“password”为您配置的HTTPS密码,“example.com/repo_path.git”为您要克隆的代码仓的https地址。如果根据此命令,成功克隆代码,说明HTTPS密码设置成功。
  • 集群实例 集群实例的shard节点和config节点均采用三节点副本集架构。当其中的某个节点发生故障后,系统会使用另一个正常节点替换故障节点继续提供服务,并对故障节点进行检查与修复。该过程对用户完全透明,可能会产生1次30秒内的连接闪断,建议您的应用程序添加自动重连机制。 图1 集群实例拓扑图 集群实例的dds mongos节点采用单节点架构,当某个dds mongos节点发生故障,该节点相关服务将不可用。推荐您使用Connection String URI连接所有dds mongos节点,请勿连接单个dds mongos节点。当使用Connection String URI连接所有dds mongos节点时,如果某个dds mongos节点发生故障,客户端能自动进行故障切换,将请求分散到状态正常的dds mongos节点上。连接命令示例: mongo "mongodb://rwuser:xxxxxxxx@192.168.95.167:8635,192.168.92.43:8635/test?authSource=admin" 使用Connection String URI连接兼容MongoDB 3.4版本的集群实例时,建议使用4.0以上的MongoDB客户端,否则会出现报错。 图2 报错信息
  • 问题描述 使用如下命令连接DDS实例时报错。 ./mongo "mongodb://rwuser:xxxxxx@192.168.0.45:8635,192.168.0.96:8635/test?authSource=admin&replicaSet=replica" 报错信息如下: MongoDB shell version v4.0.3 connecting to: mongodb://192.168.0.45:8635,192.168.0.96:8635/test?authSource=admin&replicaSet=replica 2021-11-05T05:52:53.717+0000 I NETWORK [js] Starting new replica set monitor for replica/192.168.0.45:8635,192.168.0.96:8635 2021-11-05T05:52:53.718+0000 I NETWORK [ReplicaSetMonitor-TaskExecutor] Successfully connected to 192.168.0.45:8635 (1 connections now open to 192.168.0.45:8635 with a 5 second timeout) 2021-11-05T05:52:53.718+0000 I NETWORK [js] Successfully connected to 192.168.0.96:8635 (1 connections now open to 192.168.0.96:8635 with a 5 second timeout) Implicit session: session { "id" : UUID("5945d2a5-8275-4e3c-b06f-632f062a2ead") } MongoDB server version: 4.0.3 2021-11-05T05:52:53.722+0000 I NETWORK [js] Marking host 192.168.0.96:8635 as failed :: caused by :: Location50692: can't authenticate against replica set node 192.168.0.96:8635 :: caused by :: Error preflighting normalization: U_STRINGPREP_PROHIBITED_ERROR 2021-11-05T05:52:53.722+0000 I NETWORK [js] Successfully connected to 192.168.0.45:8635 (1 connections now open to 192.168.0.45:8635 with a 0 second timeout) 2021-11-05T05:52:53.723+0000 I NETWORK [js] Marking host 192.168.0.45:8635 as failed :: caused by :: Location50692: can't authenticate against replica set node 192.168.0.45:8635 :: caused by :: Error preflighting normalization: U_STRINGPREP_PROHIBITED_ERROR 2021-11-05T05:52:53.724+0000 I NETWORK [js] Marking host 192.168.0.96:8635 as failed :: caused by :: Location50692: can't authenticate against replica set node 192.168.0.96:8635 :: caused by :: Error preflighting normalization: U_STRINGPREP_PROHIBITED_ERROR 2021-11-05T05:52:53.725+0000 I NETWORK [js] Marking host 192.168.0.45:8635 as failed :: caused by :: Location50692: can't authenticate against replica set node 192.168.0.45:8635 :: caused by :: Error preflighting normalization: U_STRINGPREP_PROHIBITED_ERROR 2021-11-05T05:52:53.725+0000 E QUERY [js] Error: can't authenticate against replica set node 192.168.0.45:8635 :: caused by :: Error preflighting normalization: U_STRINGPREP_PROHIBITED_ERROR : DB.prototype._authOrThrow@src/mongo/shell/db.js:1685:20 @(auth):6:1 @(auth):1:2 exception: login failed
  • 问题描述 使用Java驱动程序连接DDS实例时报错,报错信息如下。 org.springframework.data.mongodb.UncategorizedMongoDbException: Timeout while receiving message; nested exception is com.mongodb.MongoSocketReadTimeoutException: Timeout while receiving message
  • 问题描述 使用如下命令连接DDS副本集实例时报错。 ./mongo mongodb://rwuser:xxxxxxxxxxx@192.168.168.116:8635,192.168.200.147:8635/test?authSource=admin&replicaSet=replica 报错信息如下: FailedToParse: Cannot list multiple servers in URL without 'replicaSet' option try 'mongo --help' for more information.
  • 问题描述 使用如下命令连接3.4版本的DDS实例时报错。 mongo --host 192.168.64.201 --port 8635 -u rwuser -p xxxxxxxxx --authenticationDatabase admin --ssl --sslCAFile /root/ca.crt --sslAllowInvalidHostnames 报错信息如下: MongoDB shell version v3.4.17 connecting to: mongodb://192.168.64.201:8635/ 2019-09-19T09:45:48.168+0800 W NETWORK [thread1] Failed to connect to 192.168.64.201:8635 after 5000ms milliseconds, giving up. 2019-09-19T09:45:48.168+0800 E QUERY [thread1] Error: couldn't connect to server 192.168.64.201:8635, connection attempt failed : connect@src/mongo/shell/mongo.js:240:13 @(connect):1:6 exception: connect failed
  • 问题描述 使用如下命令连接DDS实例时报错。 mongo --host 192.168.168.116 --port 8635 -u rwuser -p xxxxxxxxx --authenticationDatabase admin --ssl --sslCAFile /root/ca.crt --sslAllowInvalidHostnames 报错信息如下: MongoDB shell version v3.4.17 connecting to: mongodb://192.168.168.116:8635/ 2019-09-19T09:39:24.306+0800 W NETWORK [thread1] The server certificate does not match the host name. Hostname: 192.168.168.116 does not match CN: 172.16.2.65 MongoDB server version: 4.0.3 WARNING: shell and server versions do not match 2019-09-19T09:39:24.329+0800 E QUERY [thread1] Error: Authentication failed. : DB.prototype._authOrThrow@src/mongo/shell/db.js:1461:20 @(auth):6:1 @(auth):1:2 exception: login failed
  • 排查思路 检查DDS实例与E CS 是否在同一个区域、同一个安全组和子网内。 登录DDS控制台,单击实例名称,在基本信息页面查看DDS实例所在的区域、VPC、安全组和子网信息。 图1 查看DDS实例网络信息 登录弹性云服务器控制台,单击云服务器名称,在基本信息页面,查看当前ECS所在的区域、VPC、安全组和子网信息。 图2 查看ECS网络信息 检查实例的端口是否正确,并通过curl命令检查端口是否可用。 单击实例名称,在基本信息页面查看当前实例的端口信息。 图3 查看实例端口 通过curl命令确认端口是否可用,示例: curl 192.168.1.6:8635 提示“It looks like you are trying to access MongoDB over HTTP on the native driver port.”表示可以正常连接该IP地址,且8635端口可以正常通信。 图4 回显信息
  • 问题描述 使用如下命令连接DDS实例时报错。 ./mongo --host 192.168.1.6 --port 8635 -u rwuser -p xxxxxxxxx --authenticationDatabase admin --ssl --sslCAFile /root/ca.crt –sslAllowInvalidHostnames 报错信息如下: MongoDB shell version v3.4.17 connecting to: mongodb://192.168.1.6:8635/ 2019-09-19T09:38:36.954+0800 W NETWORK [thread1] Failed to connect to 192.168.1.6:8635, in(checking socket for error after poll), reason: No route to host 2019-09-19T09:38:36.954+0800 E QUERY [thread1] Error: couldn't connect to server 192.168.1.6:8635, connection attempt failed : connect@src/mongo/shell/mongo.js:240:13 @(connect):1:6 exception: connect failed
  • 处理方法 方法一:关闭SSL连接,使用非SSL方式下的命令连接实例。 ./mongo --host 192.168.168.182 --port 8635 -u rwuser -p xxxxxxxxxx --authenticationDatabase admin 方法二:通过SSL的方式连接实例。 通过SSL方式连接实例需要下载SSL证书,将证书上传到ECS目录下(示例:/root/ca.crt),然后使用SSL方式下的命令连接实例。 您可以在DDS控制台界面,单击实例名称,在“连接管理”页签的“SSL”处,单击,下载SSL证书。 ./mongo --host 192.168.168.182 --port 8635 -u rwuser -p xxxxxxxxxx --authenticationDatabase admin --ssl --sslCAFile /root/ca.crt --sslAllowInvalidHostnames 图2 连接成功
  • 操作步骤 获取安装包。 进入官网下载链接地址:https://www.mongodb.com/try/download/community。 在“Version”中选择“5.0.28”,在“Platform”中选择“RedHat/CentOS 8.0 ×64”,在“Package”中选择“tgz”。如图1所示。 图1 MongoDB官网页面 将安装包上传到弹性云服务器上,请参见如下两种方式: 如何登录弹性云服务器,请参见如何创建并登录弹性云服务器。 单击“Download”下载5.0.28版本的二进制安装包,安装包名称为“mongodb-linux-x86_64-rhel80-5.0.28.tgz”,将安装包上传至弹性云服务器上。 单击“Copy link”获取下载链接地址,登录弹性云服务器,执行wget copylink。 copylink请替换为实际下载的链接地址。 在弹性云服务器上,解压安装包。 tar zxvf mongodb-linux-x86_64-rhel80-5.0.28.tgz 安装包名字请根据实际情况替换。 进入安装包的“bin”文件夹下,获取客户端工具。 cd mongodb-linux-x86_64-rhel80-5.0.28/bin 安装包名字请根据实际情况替换。 其中,常用工具包含如下: MongoDB客户端mongo。 数据导出工具mongoexport。 数据导入工具mongoimport。 使用客户端工具前,需要对工具赋予执行权限。 执行chmod +x mongo,赋予连接实例的权限。 执行chmod +x mongoexport,赋予导出数据的权限。 执行chmod +x mongoimport,赋予导入数据的权限。 客户端安装成功后,如需连接实例,请参见连接集群实例、连接副本集实例和连接单节点实例。
  • CTS 支持的CodeArts Pipeline操作 表1 云审计 服务支持的CodeArts Pipeline操作列表 操作名称 资源类型 事件名称 执行流水线任务 pipelineTask executePipelineTask 修改流水线任务 pipelineTask updatePipelineTask 创建流水线任务 pipelineTask createPipelineTask 删除流水线任务 pipelineTask deletePipelineTask 停止流水线任务 pipelineTask stopPipelineTask
共100000条