[Spring] 내장DB(Embedded mariadb) mariaDB4j 실행 관련 에러 (feat. openssl)

Posted by qwlake on November 11, 2021

내장 mariadb 설치

testImplementation*("ch.vorburger.mariaDB4j:mariaDB4j:2.5.3")

설치 후 실행(Junit test)하는데 에러

현재 맥 계열(intel, silicon)에서만 발견한 문제이다. (리눅스는 확인 못해봤고, 윈도우에서는 정상동작)

1
2
3
4
5
6
...
dyld[30098]: Library not loaded: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib
  Referenced from: /private/var/folders/09/zcbzjdzj4bv5dclns9v6jzsh0000gn/T/MariaDB4j/base/bin/my_print_defaults
  Reason: tried: '/usr/local/opt/openssl/lib/libssl.1.0.0.dylib' (mach-o file, but is an incompatible architecture (have 'arm64', need 'x86_64')), '/usr/local/lib/libssl.1.0.0.dylib' (no such file), '/usr/lib/libssl.1.0.0.dylib' (no such file), '/opt/homebrew/Cellar/openssl@1.0/1.0.2u/lib/libssl.1.0.0.dylib' (mach-o file, but is an incompatible architecture (have 'arm64', need 'x86_64')), '/usr/local/lib/libssl.1.0.0.dylib' (no such file), '/usr/lib/libssl.1.0.0.dylib' (no such file)
Installing MariaDB/MySQL system tables in '/private/var/folders/09/zcbzjdzj4bv5dclns9v6jzsh0000gn/T/MariaDB4j/data/60735' ...
...

해결방법

openssl1.0 버전이 다음 위치에 필요 /usr/local/opt/openssl

이를 위해선 아래의 명령어를 실행하면 됨

1
2
brew install rbenv/tap/openssl@1.0
ln -sfn /usr/local/Cellar/openssl@1.0/1.0.2t /usr/local/opt/openssl

m1 사용자는 위 명령어에서 에러가 날텐데..

  • 에러

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    
      Last 15 lines from /Users/jungwoo/Library/Logs/Homebrew/openssl@1.0/03.make:
       ^
      x86_64cpuid.s:273:10: error: unknown token in expression
       cmpq $0,%rax
               ^
      x86_64cpuid.s:273:10: error: invalid operand
       cmpq $0,%rax
               ^
      x86_64cpuid.s:274:9: error: unknown token in expression
       cmoveq %rcx,%rax
              ^
      x86_64cpuid.s:274:9: error: invalid operand
       cmoveq %rcx,%rax
              ^
      make[1]: *** [x86_64cpuid.o] Error 1
      make: *** [build_crypto] Error 1
        
      If reporting this issue please do so at (not Homebrew/brew or Homebrew/core):
        https://github.com/rbenv/homebrew-tap/issues
        
      These open issues may also help:
      `brew install rbenv/tap/openssl@1.0` not working anymore https://github.com/rbenv/homebrew-tap/issues/1
      jungwoo@jungwoo-MacBookAir ~ % brew uninstall ./openssl@1.0.rb
      Error: No available formula with the name "./openssl@1.0.rb". Did you mean openssl@1.0?
    

openssl1.0 설치 자체는 이 링크 의 방법으로 설치가 가능하지만 mariaDB4j에서는 openssl1.0 뿐만 아니라 x86_64로 설치된 파일을 요구하기 때문에 다른 방법을 찾아야 한다.

현재 알려진 방법으로는 x86_64 버전의 libssl.1.0.0.dylib 를 구해서 /usr/local/opt/openssl/lib 위치에 넣는 것이다. 다음의 링크를 참조 바란다. https://github.com/vorburger/MariaDB4j/issues/411#issuecomment-963983334