.yml文件是啥,怎么书写?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了.yml文件是啥,怎么书写?相关的知识,希望对你有一定的参考价值。

参考技术A 在 github 一些开源项目里经常可以看到 .travis.yml 文件,后来接触持续集成这个概念时发现很多文件都是 .yml 后缀的文件。
yaml 语言(或者说是一种规范吧)可以编写 .yml 文件,和 json 一样是配置文件。也许是有人认为 json 的写法不爽,于是乎发明了这玩意。

具体内容参阅 这篇文章

Ruby on Rails database.yml 中的套接字声明是啥?

【中文标题】Ruby on Rails database.yml 中的套接字声明是啥?【英文标题】:What is the socket declaration for, in Ruby on Rails database.yml?Ruby on Rails database.yml 中的套接字声明是什么? 【发布时间】:2011-06-04 07:44:40 【问题描述】:

config/database.yml中的socket声明有什么用?

示例代码:

staging:
  adapter: mysql
  encoding: utf8
  database: (database)
  pool: 5
  username: (user)
  password: (pass)
  socket: /tmp/mysql.sock     # <--------- this line

我的应用可以正常工作,无论这条线是否被评论。那么它有什么用呢?我有什么理由留下它、评论它或改变它的价值?

【问题讨论】:

【参考方案1】:

当两个程序想要通过网络相互通信时,一个程序可能会打开一个与另一个程序的 TCP 连接(“套接字”)。第一个程序需要知道第二台计算机的 IP 地址和程序正在侦听的端口。

在 Linux 上,当同一台计算机上的两个程序想要相互通信时,它们仍然可以打开 TCP 连接。但他们也可以通过“套接字文件”打开连接。 Linux 使套接字文件 API 与 TCP API 非常相似,因此将已经通过 TCP 通过网络进行通信的程序更新为也支持通过套接字文件进行通信并不是什么大问题。 Socket 文件比 TCP 快,但仅在两个程序在同一台计算机上时才有效。

【讨论】:

在我的 Rails 4 应用程序中,socket 设置似乎被忽略了。相反,我必须设置 host: /path/to/socket/ 才能至少使 rake db:migrate 工作。【参考方案2】:

MySQL 有两种在 unix-ish 系统上与它通信的方法,tcp/ip 和域套接字。通过指定套接字 Rails,或者更确切地说是数据库驱动程序,将使用套接字而不是网络连接。使用socket可以更快,但是YMMV。

http://dev.mysql.com/doc/refman/5.5/en/connecting.html

【讨论】:

另外补充一句——只有当你的数据库与应用服务器在同一个机器上运行时,套接字才会起作用——所以这种机制往往不适合集群部署【参考方案3】:

因为我的 database.yml 中指定了一个套接字,我浪费了整个下午——测试环境的数据库规范根本没有被解析。 因此,如果您的测试数据库无法访问,尽管一切似乎都很好,请尝试删除套接字规范。

【讨论】:

【参考方案4】:

这将显示 UNIX 套接字的文件位置:

mysqladmin version -u 'your user name' -p

结果:

mysqladmin  Ver 8.42 Distrib 5.7.26, for Linux on x86_64
Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Server version      5.7.26-0ubuntu0.19.04.1
Protocol version    10
Connection      Localhost via UNIX socket
UNIX socket     /var/run/mysqld/mysqld.sock
Uptime:         6 min 40 sec

您的用户必须已授予权限。

【讨论】:

以上是关于.yml文件是啥,怎么书写?的主要内容,如果未能解决你的问题,请参考以下文章

这个 database.yml 文件中的 &,<<, * 是啥意思?

在 prometheus 的 alert_rules.yml 文件中指定的正确规则应该是啥

SpringBoot中.yml和.application的区别以及.yml和.properties配置在线转换

springboot怎么读取application.yml文件

java怎么读取yml文件

springboot属性类自动加载配置文件中的值