Julia使用DBInterface连接MySQL执行SQL报1046未选择数据库故障求助
解决方案
1046 No database selected 与 1049 Unknown database 报错处理
- 报错1046是因为连接时未指定操作的数据库,且执行SQL前没有切换到目标库
- 报错1049是因为你指定的数据库还没有在MySQL实例中创建,MySQL不会自动生成数据库
操作步骤:
先创建目标数据库再切换使用即可,无需在连接时强制指定数据库,示例操作如下:
using DBInterface using MySQL # 初始化连接,不指定数据库 con = DBInterface.connect(MySQL.Connection, "12345.rds.amazonaws.com", "admin", "54321") # 创建目标数据库(存在则跳过) DBInterface.execute(con, "CREATE DATABASE IF NOT EXISTS 你需要的数据库名称;") # 切换到目标数据库 DBInterface.execute(con, "USE 你需要的数据库名称;") # 此时再执行建表等操作不会触发1046报错 sql = "CREATE TABLE friends2(last_name VARCHAR(10), first_name VARCHAR(20));" DBInterface.execute(con, sql) # 操作结束后关闭连接 DBInterface.close!(con)
如果需要在连接时直接指定数据库,先确保上述数据库已经提前创建完成,再通过关键字参数传入库名:
con = DBInterface.connect(MySQL.Connection, "12345.rds.amazonaws.com", "admin", "54321"; db="你已创建的数据库名称")
mysql_connect 未定义报错处理
mysql_connect是MySQL.jl v0.9版本之前的旧API,目前新版本的MySQL.jl已经完全移除该接口,统一使用DBInterface.connect进行连接操作,无需再尝试调用已废弃的方法。
内容的提问来源于stack exchange,提问作者neutrino
相关产品推荐
相关产品推荐

