반응형
셰프 ruby_block ShellOut mysql 결과 stdout 영원히 비어 있습니다.
다음 사례가 있습니다.
test3 = Mixlib::ShellOut.new("echo '1'")
test4 = Mixlib::ShellOut.new("mysql -u root --silent --skip-column-names --password='rootpass' -e 'some sql;'")
test3.run_command
test4.run_command
puts test3.stdout # => 1
puts test4.stdout # => empty string, nothing
test4가 test3으로 결과를 반환할 것으로 예상하기
아마도 stdout이 아닌 mysql이 결과를 반환할 수 있을 것입니다. 그러면 어디서 어떻게 결과를 얻을 수 있을까요?
추신: 저는 이 작업에 사용할 수 있는 루비 gem mysql2에 대해 알고 있지만 솔직히 간단한 SQL 결과만 얻기 위해 이런 것을 구현할 시간이 없습니다. 또한 --silent 및 --skip-column-names 플래그가 없는 run 명령을 시도했지만 이 또한 도움이 되지 않습니다.
그래서 문제는, 내 명령이 코드 1번 출구를 반환하고 있었는데, 실패한 것 같아서, 명령을 수정한 후에 문제는 이중 쉼표 대신 단일 쉼표를 사용하는 것이었습니다.
언급URL : https://stackoverflow.com/questions/51721449/chef-ruby-block-shellout-mysql-result-stdout-forever-empty
반응형
'programing' 카테고리의 다른 글
| ES6 Itable을 배열로 변환 (0) | 2023.10.01 |
|---|---|
| .cnf에서 sql_mode를 변경해도 @@sql_mode가 변경되지 않는 MariaDB 10.5의 이유는 무엇입니까? (0) | 2023.10.01 |
| Wordpress - Uncatched TypeError: wp.media가 함수가 아닙니다. (0) | 2023.10.01 |
| MacOS 시에라와 MySQL 호환성 (0) | 2023.10.01 |
| ng-bind-html 스트립 요소 특성 (0) | 2023.10.01 |