![pfSense에 새로운 MySQL을 설치하면 시작 시 "-c 옵션 오류"가 반환됩니다.](https://linux55.com/image/128691/pfSense%EC%97%90%20%EC%83%88%EB%A1%9C%EC%9A%B4%20MySQL%EC%9D%84%20%EC%84%A4%EC%B9%98%ED%95%98%EB%A9%B4%20%EC%8B%9C%EC%9E%91%20%EC%8B%9C%20%22-c%20%EC%98%B5%EC%85%98%20%EC%98%A4%EB%A5%98%22%EA%B0%80%20%EB%B0%98%ED%99%98%EB%90%A9%EB%8B%88%EB%8B%A4..png)
FreeBSD를 실제로 사용하는 것은 이번이 처음이므로 중요한 것을 놓칠 수도 있지만 그럴 가능성은 없습니다.
그래서 ntopng에서 기록을 활성화할 수 있도록 pfSense 서버에 mysql을 설정하고 싶습니다. 나는 이 작업의 위험성을 알고 있으며 내 시스템을 안전하게 유지하기 위해 필요한 예방 조치를 취하고 있습니다.
url을 복사해서 설치했어요http://pkg.freebsd.org/FreeBSD:11:amd64/latest/All/붙여넣었 pkg add
더니 효과가 있었습니다. mysql56-server와 모든 종속 항목을 설치했습니다.
service mysql-server onestart
pfSense를 사용하고 있으므로 rc.conf가 없기 때문에 시작해야 하지만 그렇게 하면 다음과 같은 결과가 나타납니다.
Starting mysql.
Bad -c option
/usr/local/etc/rc.d/mysql-server: WARNING: failed to start mysql
mysql이 무엇을 의미하는지 검색해봤지만 bad -c option
답이 전혀 없습니다. 유사한 문제를 설명하는 페이지가 없습니다.
제거해 보았지만 /var/db/mysql/*
별 차이가 없었습니다.
혼란스러워요. 미리 감사드립니다.
편집하다:예, 사용자가 있습니다 mysql
. pkg가 자동으로 생성됩니다.
답변1
문제를 해결하기 위해 pfSense에는 mysql 패키지가 없으므로 다음을 수행하여 공식 FreeBSD 패키지를 사용합니다.
pkg add http://pkg.freebsd.org/FreeBSD:11:amd64/latest/All/mysql80-server-8.0.2_1.txz
이것이 문제의 원인일 수 있습니다.
pfSense 2.3의 기본 시스템과 pfSense 패키지는 pkg를 기반으로 하므로 pfSense의 pkg 저장소가 사용되지만 표준 FreeBSD 패키지 저장소는 사용할 수 없습니다. FreeBSD에서 패키지를 설치하는 것은 기술적으로 가능하지만 잠재적인 종속성 문제로 인해 권장되지 않습니다. pkg add를 사용하여 전체 URL을 패키지에 전달하면 작동하지만 향후 문제를 방지하려면 주의가 필요합니다.
기본 FreeBSD 패키지 목록은 여기에서 찾을 수 있습니다: http://pkg.freebsd.org/freebsd:10:x86:64/latest/All/
이것은에서 온 것입니다pfSense 문서.
MySQL 패키지에는 매개변수 목록을 구문 분석하기 위한 프로그램/라이브러리(설치된 모든 패키지를 포함하지 않았기 때문에 여기에서 확인할 수 없음) 또는 pfSense와 함께 제공되지 않는 일부 프로그램/라이브러리에 대한 일부 종속성이 있을 수 있습니다(그러나 FreeBSD의 일부입니다).
따라서 모든 종속성이 설치되어 있는지 확인해야 하며, 이는 오류의 원인을 추적해야 함을 의미합니다.
또한 데이터베이스 서비스를 제공하기 위해 방화벽 장치/운영 체제를 사용하는 것은 일반적으로 권장되지 않습니다. 절대 이렇게 해서는 안 된다는 말은 아니지만, 이는 특이한 사용 사례입니다.
답변2
이 오류는 freebsd 서비스 셸 스크립트의 일부 잘못된 이스케이프 방법으로 인해 발생합니다. su -c 'sh -c "..."'
특정 사용자를 지정하여 서비스를 실행하려고 하면 MySQL이 문제를 일으키는 것 같습니다.
들어가서 /usr/local/etc/rc.d/mysql-server
54행을 주석 처리 mysql_user="mysql"
하고 55행을 다음으로 변경했는데 mysql_limits_args="-e"
위 코드가 실행되지 않기 때문에 이제 mysql이 정상적으로 시작됩니다.
데이터베이스에 대한 공개 연결을 허용하는 시스템에서는 이 작업을 수행하지 마십시오! 누군가 원격 코드 실행 취약점을 발견하면 mysql이 이제 루트로 실행되어 공격자가 서버의 모든 파일을 읽고 쓸 수 있기 때문에 정말 망할 것입니다! 악의적인 외부 연결이 액세스할 수 없으므로 localhost에서 ntopng를 사용하는 것은 안전해야 하지만 여전히 좋은 생각은 아닙니다.