I have a Ubuntu 22 server running LangChain and MySQL.
But LangChain can't connect to MySQL from inside this local environment (code runs fine without exception, just won't print out any tables).
from langchain_community.utilities.sql_database import SQLDatabaseimport pyodbcdb = SQLDatabase.from_uri('mysql+mysqlconnector://root:abcd1234@localhost:3306/test?auth_plugin=mysql_native_password')print(db.dialect) # print out: mysqlprint(db.get_usable_table_names()) #print out empty list: []
I further tested a regular connection works:
import mysql.connectorDB_HOST = 'localhost'DB_PASS = 'abcd1234'DB_NAME = 'test'DB_USER = 'root'def db_select(sql): con = mysql.connector.connect(host = DB_HOST, user = DB_USER, passwd = DB_PASS, db = DB_NAME, auth_plugin = 'mysql_native_password') cursor = con.cursor(dictionary=True) cursor.execute(sql) result = cursor.fetchall() con.close() return resulta = db_select('select * from test_table limit 2')for item in a: print(item) # this works
Any suggestions?