MySQL node 관련 자주 발생하는 문제
MySQL node 에서 자주 발생하는 오류 및 문제와 이를 해결하거나 문제를 해결하는 단계를 소개합니다. 복합 키로 행 업데이트하기 # MySQL node의 Update 작업을 사용하면 Column to Match On 과 값을 지정하여 테이블의 행을 업데이트할 수 있습니다. 이 방식은 단일 칼럼 값으로 개별 행을 고유하게 식별할 수 있는 테이블에서 동작합니다. 행을 고유하게 식별하기 위해 여러 칼럼이 필요한 복합 키(composite key) 를 사용하는 테이블에는 이 패턴을 사용할 수 없습니다. 예를 들어 mysql 데이터베이스에 있는 MySQL의 user 테이블 에서는 행을 고유하게 식별하기 위해 user 와 host 칼럼이 모두 필요합니다. 복합 키를 사용하는 테이블을 업데이트하려면 대신 Execute SQL 작업을 사용하여 쿼리를 직접 작성하세요. 이 방식에서는 다음 예시처럼 customer_id 와 product_id 두 값을 모두 매칭하는 등 여러 값을 매칭할 수 있습니다. UPDATE orders SET quantity = 3 WHERE customer_id = 538 AND product_id = 800 ; Docker 사용 시 로컬 MySQL 서버에 연결할 수 없음 # n8n 또는 MySQL을 Docker에서 실행할 때는 n8n이 MySQL에 연결할 수 있도록 네트워크를 구성해야 합니다. 해결 방법은 두 구성 요소를 어떻게 호스팅하고 있는지에 따라 달라집니다. MySQL만 Docker에 있는 경우 # MySQL만 Docker에서 실행 중인 경우, 컨테이너 내부에서 0.0.0.0 에 바인딩하여 모든 인터페이스에서 수신 대기하도록 MySQL을 구성하세요(공식 이미지는 이미 이렇게 구성되어 있습니다). 컨테이너를 실행할 때 -p 플래그로 포트를 게시(publish) 하세요. MySQL은 기본적으로 3306 포트에서 실행되므로 Docker 명령어는 다음과 같은 형태여야 합니다. docker run -p 3306:3306 --name my-mysql -d mysql:latest MySQL 자격 증명 을 구성할 때는 localhost 주소가 문제없이 동작합니다( Host 를 localhost 로 설정하세요). n8n만 Docker에 있는 경우 # n8n만 Docker에서 실행 중인 경우, 호스트에서 0.0.0.0 에 바인딩하여 모든 인터페이스에서 수신 대기하도록 MySQL을 구성하세요. Linux 에서 Docker로 n8n을 실행하는 경우, 컨테이너를 시작할 때 --add-host 플래그를 사용하여 host.docker.internal 을 host-gateway 에 매핑하세요. 예시는 다음과 같습니다. docker run -it --rm --add-host host.docker.internal:host-gateway --name n8n -p 5678:5678 -v n8n_data:/home/node/.n8n docker.n8n.io/n8nio/n8n Docker Desktop을 사용하는 경우, 이 설정은 자동으로 구성됩니다. M