Tại sao trình kết nối mysql không hoạt động?

Các luồng công việc vẫn ổn khi được thực thi trong Knime Platform (localhost). Tuy nhiên, khi tôi thử xem qua chúng trong Máy chủ Knime, có vẻ như chúng không thể kết nối với MySQL

Đây là thông báo lỗi

LỖI Trình kết nối MySQL 0. 939. Thực thi không thành công. Lỗi liên kết truyền thông Gói cuối cùng được gửi thành công đến máy chủ là 0 mili giây trước. Trình điều khiển chưa nhận được bất kỳ gói tin nào từ máy chủ

Qua tìm hiểu lỗi này với đội IT (đội chịu trách nhiệm quản lý DB trên MySQL), chúng tôi nghĩ rằng lỗi này là do IP của Knime Server chưa được cấp quyền truy cập vào MySQL. Do đó, họ đã thay đổi cấu hình để Knime Server có thể truy cập DB từ MySQL. Tuy nhiên, lỗi vẫn còn

Anh em nào biết cách xử lý lỗi này không?

Đây là bản in quy trình làm việc và lỗi trên máy chủ dao

  • quy trình làm việc

    Tại sao trình kết nối mysql không hoạt động?

    hình ảnh1331×416 30. 4KB

  • lỗi

    Tại sao trình kết nối mysql không hoạt động?

    hình ảnh1619×419 30. 1KB

Cảm ơn trước,
Alan Dias

Xin chào @ bruno29a. Xin lỗi, tôi nghĩ rằng tôi đã nhầm lẫn

Thông qua bàn làm việc từ máy chủ Knime, nó sẽ là

  1. thông qua một quy trình làm việc trên máy chủ knime?

Nếu có, tôi có thể kết nối khi tôi chạy quy trình công việc này trong máy tính để bàn Knime (như trong bản in bên dưới), nhưng khi tôi chạy quy trình công việc tương tự trong Máy chủ Knime, nút MySQL không thể kết nối

quan sát. thông tin đăng nhập được định cấu hình trong nút MySQL không phải là thông tin đăng nhập giống như người dùng Máy chủ Knime của tôi. Tôi không thể kết nối với nút MySQL bằng thông tin xác thực của Máy chủ Knime mặc dù đang chạy nút từ máy tính để bàn Knime

  1. hoặc từ bàn làm việc của MySQL bằng thông tin đăng nhập Máy chủ Knime?

Nếu có, tôi cũng đã thử kết nối với máy chủ mysql thông qua bàn làm việc mysql bằng thông tin xác thực của Máy chủ Knime, nhưng không thể. Tuy nhiên, tôi có thể kết nối với máy chủ MySQL bằng thông tin xác thực người dùng TI trên máy chủ aws.
Để đơn giản hóa.
người dùng alan. dias (máy chủ dao) = không ổn
người dùng alan_dias (dw aws) = ổn

Nếu không phải là một trong hai lựa chọn thay thế này, bạn có thể hướng dẫn tôi cách thực hiện kiểm tra này để kết nối với máy chủ mysql của tôi từ máy chủ Knime không?

Cả hai biểu mẫu (hoặc sử dụng hàm tạo

from mysql.connector import (connection)

cnx = connection.MySQLConnection(user='scott', password='password',
                                 host='127.0.0.1',
                                 database='employees')
cnx.close()
5 hoặc trực tiếp lớp) đều hợp lệ và có chức năng như nhau, nhưng sử dụng
from mysql.connector import (connection)

cnx = connection.MySQLConnection(user='scott', password='password',
                                 host='127.0.0.1',
                                 database='employees')
cnx.close()
5 được ưa thích hơn và được sử dụng bởi hầu hết các ví dụ trong sách hướng dẫn này

Để xử lý các lỗi kết nối, hãy sử dụng câu lệnh

from mysql.connector import (connection)

cnx = connection.MySQLConnection(user='scott', password='password',
                                 host='127.0.0.1',
                                 database='employees')
cnx.close()
7 và bắt tất cả các lỗi bằng cách sử dụng các lỗi. Ngoại lệ lỗi

import mysql.connector
from mysql.connector import errorcode

try:
  cnx = mysql.connector.connect(user='scott',
                                database='employ')
except mysql.connector.Error as err:
  if err.errno == errorcode.ER_ACCESS_DENIED_ERROR:
    print("Something is wrong with your user name or password")
  elif err.errno == errorcode.ER_BAD_DB_ERROR:
    print("Database does not exist")
  else:
    print(err)
else:
  cnx.close()

Xác định đối số kết nối trong từ điển và sử dụng toán tử

from mysql.connector import (connection)

cnx = connection.MySQLConnection(user='scott', password='password',
                                 host='127.0.0.1',
                                 database='employees')
cnx.close()
0 là một tùy chọn khác

import mysql.connector

config = {
  'user': 'scott',
  'password': 'password',
  'host': '127.0.0.1',
  'database': 'employees',
  'raise_on_warnings': True
}

cnx = mysql.connector.connect(**config)

cnx.close()

Sử dụng Trình kết nối/Python Phần mở rộng Python hoặc C

Trình kết nối/Python cung cấp hai cách triển khai. giao diện Python thuần túy và tiện ích mở rộng C sử dụng thư viện máy khách MySQL C (xem Chương 8, Trình kết nối/Tiện ích mở rộng Python C). Điều này có thể được cấu hình trong thời gian chạy bằng cách sử dụng đối số kết nối

from mysql.connector import (connection)

cnx = connection.MySQLConnection(user='scott', password='password',
                                 host='127.0.0.1',
                                 database='employees')
cnx.close()
1. Nó mặc định là
from mysql.connector import (connection)

cnx = connection.MySQLConnection(user='scott', password='password',
                                 host='127.0.0.1',
                                 database='employees')
cnx.close()
2 kể từ MySQL 8, nghĩa là phần mở rộng C được sử dụng. Nếu phần mở rộng C không có sẵn trên hệ thống thì
from mysql.connector import (connection)

cnx = connection.MySQLConnection(user='scott', password='password',
                                 host='127.0.0.1',
                                 database='employees')
cnx.close()
1 mặc định là
from mysql.connector import (connection)

cnx = connection.MySQLConnection(user='scott', password='password',
                                 host='127.0.0.1',
                                 database='employees')
cnx.close()
4. Cài đặt
from mysql.connector import (connection)

cnx = connection.MySQLConnection(user='scott', password='password',
                                 host='127.0.0.1',
                                 database='employees')
cnx.close()
5 khiến kết nối sử dụng Tiện ích mở rộng C nếu bản cài đặt Trình kết nối/Python của bạn bao gồm nó, trong khi đó, từ
from mysql.connector import (connection)

cnx = connection.MySQLConnection(user='scott', password='password',
                                 host='127.0.0.1',
                                 database='employees')
cnx.close()
6 đến
from mysql.connector import (connection)

cnx = connection.MySQLConnection(user='scott', password='password',
                                 host='127.0.0.1',
                                 database='employees')
cnx.close()
2 có nghĩa là triển khai Python được sử dụng nếu có

Tùy chọn

from mysql.connector import (connection)

cnx = connection.MySQLConnection(user='scott', password='password',
                                 host='127.0.0.1',
                                 database='employees')
cnx.close()
1 và tiện ích mở rộng C đã được thêm vào Trình kết nối/Python 2. 1. 1

Ví dụ sau đây cho thấy cách đặt

from mysql.connector import (connection)

cnx = connection.MySQLConnection(user='scott', password='password',
                                 host='127.0.0.1',
                                 database='employees')
cnx.close()
1 thành Sai

from mysql.connector import (connection)

cnx = connection.MySQLConnection(user='scott', password='password',
                                 host='127.0.0.1',
                                 database='employees')
cnx.close()
2

Cũng có thể sử dụng trực tiếp Tiện ích mở rộng C bằng cách nhập mô-đun

import mysql.connector
from mysql.connector import errorcode

try:
  cnx = mysql.connector.connect(user='scott',
                                database='employ')
except mysql.connector.Error as err:
  if err.errno == errorcode.ER_ACCESS_DENIED_ERROR:
    print("Something is wrong with your user name or password")
  elif err.errno == errorcode.ER_BAD_DB_ERROR:
    print("Database does not exist")
  else:
    print(err)
else:
  cnx.close()
0 thay vì mô-đun
import mysql.connector
from mysql.connector import errorcode

try:
  cnx = mysql.connector.connect(user='scott',
                                database='employ')
except mysql.connector.Error as err:
  if err.errno == errorcode.ER_ACCESS_DENIED_ERROR:
    print("Something is wrong with your user name or password")
  elif err.errno == errorcode.ER_BAD_DB_ERROR:
    print("Database does not exist")
  else:
    print(err)
else:
  cnx.close()
1. Để biết thêm thông tin, hãy xem Phần 8. 2, “Mô-đun mở rộng _mysql_connector C”