我已经启动了标准 mysql docker 容器,现在想要创建一个用户并授予他权限。但是什么也没发生,我收到这个警告:
MySQL is started in --skip-name-resolve mode; you must restart it without this switch for this grant to work
我对 mysql 不太熟悉 - 那么我应该在这里做什么?
更好的解决方案是使用额外的 sql 脚本启动此容器。
我应该怎么做才能使用这样的脚本启动容器:
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'myuser';
GRANT ALL PRIVILEGES ON * . * TO 'myuser'@'localhost';
Run Code Online (Sandbox Code Playgroud)
这是我实际的 docker 命令:
docker run -p 3306:3306 --name mysql-server -e MYSQL_ROOT_PASSWORD=root -d mysql:latest
有人可以帮助我吗?
有没有办法通过环境变量选择是否有 logback 附加程序?
我有一个 dockerized spring boot 微服务,现在添加了 ELK 堆栈。
到目前为止效果很好。
但现在如果我想在没有 ELK 堆栈的情况下启动服务,应用程序会抛出一个错误,它不知道 Logstash 的主机:
app | 10:09:23,537 |-ERROR in ch.qos.logback.classic.net.SyslogAppender[SYSLOG] - Could not create SyslogWriter java.net.UnknownHostException: logstash: Name or service not known
app | at java.net.UnknownHostException: logstash: Name or service not known
Run Code Online (Sandbox Code Playgroud)
这是我的 logback.xml 文件:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="SYSLOG" class="ch.qos.logback.classic.net.SyslogAppender">
<syslogHost>logstash</syslogHost>
<port>5000</port>
<facility>LOCAL1</facility>
<suffixPattern>[%thread] %logger %msg</suffixPattern>
</appender>
<root level="INFO">
<appender-ref ref="SYSLOG"/>
</root>
</configuration>
Run Code Online (Sandbox Code Playgroud)
我知道这是一个非常简单的版本,但我是使用 logback/ELK 堆栈进行日志记录的新手。
那么有没有一种方法可以像 yaml 文件一样使用环境变量注入一些东西,例如active=${LOGBACK_ACTIVE:false}我可以使用我的 prometheus 指标来做到这一点?
在我的 Spring Boot 应用程序中,我有一个 DTO 对象,其中包含 DTO 对象的嵌套列表。班级:
@Getter
@Setter
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "contact")
public class ContactDTO {
@ApiModelProperty(value = "id", example = "1", hidden = true)
private Long id;
@ApiModelProperty(value = "first name", example = "John")
private String firstName;
@ApiModelProperty(value = "last name", example = "Doe")
private String lastName;
@Builder.Default
@ApiModelProperty(value = "list of phone numbers", name = "phonenumbers")
List<PhoneNumberDTO> phoneNumberDTOList = new ArrayList<>();
}
Run Code Online (Sandbox Code Playgroud)
post 请求的 swagger 示例值:
{
"firstName": "John",
"lastName": "Doe",
"phoneNumberDTOList": [
{ …Run Code Online (Sandbox Code Playgroud) 我想实现一个千分尺,来监控数据库中的记录量。所以我创建了一个方面,spring-boot-starter-aop在调用我的服务方法后执行该方面。
方面:
@Slf4j
@Aspect
@Configuration
public class ContactAmountAspect {
@Autowired
ContactRepository contactRepository;
@Autowired
MeterRegistry registry;
@AfterReturning(value = "execution(* mypackage.ContactService.*(..))")
public void monitorContactAmount() {
Gauge
.builder("contacts.amount", contactRepository.findAll(), List::size)
.register(registry);
log.info("Amount of contacts in database: {}", contactRepository.findAll().size());
}
}
Run Code Online (Sandbox Code Playgroud)
在/prometheus端点上,我只能看到应用程序启动后第一次呼叫的联系人数量。如果我现在调用我的 POST 休息端点并将联系人添加到我的数据库中,则只有我log.info打印出新的联系人数量,但我的仪表什么也不做。
命令:
1. App Startup (let's say with 1 contact in DB)
2. Call Rest Endpoint "getAllContacts"
3. My AOP method starts
4. The gauge monitors contact amount of 1
5. the logger logs contact …Run Code Online (Sandbox Code Playgroud) 在docker-compose之后,在Windows上我退出"CTRL + C"并且容器仍在运行.当我在我的Mac上执行此操作时,docker会杀死我的容器:(
我现在尝试使用shell脚本,执行docker-compose到"echo",但在某个容器上,脚本挂断.
你怎么做那有什么最佳实践吗?(适用于windows)非常
感谢.
有关架构的一些信息: - 我们在 Cloud Foundry 中运行(使用 https 路由) - 我们有一个网关(Spring Cloud Netflix zuul) - 我们的应用程序由令牌进行内部保护
如果您需要其他信息,请询问。
现在我们想api/v1/authorizations通过证书保护网关 ( ) 的一条路由。这样只有拥有此证书的客户端才能调用此端点。
那可能吗?
spring certificate spring-security cloud-foundry spring-boot
我用mysql启动了一个docker容器.
实际上我想创建一个新用户和一个新表 - 我必须在MySQL Workbench中完成.
这是我的docker run命令:
docker run -p 3306:3306 --name mysql-server -v ~/Development/web/myproject/docker/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:latest
我的问题是:
我如何添加一个sql启动脚本(仅用于容器的第一次启动),它创建了我的用户和我的表?
我必须做哪些步骤?
有人可以帮我吗?
非常感谢!
实际上我正在写我的zshrc链接的这个函数:
function mgit {
string='github'
remote=$(git remote -v)
if [[ ${remote} == *${string}* ]]; then
git config --global user.name "name1"
git config --global user.email "email1@test.com"
else
git config --global user.name "name2"
git config --global user.email "email2@test.de"
fi
git "$@"
}
Run Code Online (Sandbox Code Playgroud)
如果我现在执行这工作得很好mgit --version,而不是git --version.
但有没有办法捕获真正的git命令并执行此功能?
因为现在我不能用我的别名,例如ga用于git add ....
而是它可能然后用像搬运工或别的东西所有的命令?
spring-boot ×4
docker ×3
mysql ×2
shell ×2
sql ×2
aop ×1
bash ×1
certificate ×1
database ×1
git ×1
java ×1
logback ×1
logging ×1
macos ×1
micrometer ×1
monitoring ×1
spring ×1
springfox ×1
swagger ×1
swagger-ui ×1
zsh ×1