Luasql错误:“LuaSQL:连接到数据库错误”。

我正在使用mysql工作。 我正在尝试使用Luasql来访问mysql数据库。我已经使用yum安装了Luasql。然后我尝试了以下代码:

mysql = require "luasql.mysql"

env = assert(mysql.mysql())

con = assert(env:connect ( "db_name", "username", "password", "localhost"))

for no, name in rows (con, "select * from t1") do

print (string.format ("%s", name))

end

在执行上述代码时,我收到以下错误:

lua: check.lua:3: LuaSQL: error connecting to database. MySQL: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
stack traceback:
    [C]: in function 'assert'
    check.lua:3: in main chunk
    [C]: ?

如何克服这个错误。 有人可以帮助我正确执行代码吗? 谢谢!!!

点赞
用户2203643
用户2203643

env:connect 中的变量应该如下所示:

local db_conn = env:connect("test_db", "root", "abc123", "192.168.1.3", 3306)
local cur = db_conn:execute("select * from t1")
local row = cur:fetch({}, 'a')
for k, v in pairs(row) do
    print(k, v)
end
2014-06-27 02:30:09
用户3777917
用户3777917

这段代码执行良好。非常感谢 @EgorSkriptunoff 和 @jaylzhang 的回答。

mysql = require "luasql.mysql"
env = assert(mysql.mysql())
con = assert(env:connect ( "db_name", "username", "password", "hostname", "3306"))
local cur = con:execute("select * from t1")
local row = cur:fetch({}, 'a')
for k, v in pairs(row) do
    print(k, v)
end
2014-06-27 05:02:31
用户8009958
用户8009958

尝试这个,它能在ZeroBraneIDE上运行。将解释器改为lua而不是Lua 5.2或5.3。

你需要在ODBC数据来源的管理工具中创建System DSN,这里是"testDSN",如下所示: 这里

require "luasql.odbc"
  env = assert(luasql.odbc())
  print(env)
  con = assert(env:connect("testDSN", "sa", "p@ssw0rd"))
  print(con)
  cur = assert (con:execute"use testdb")
  cur = assert (con:execute"SELECT MSISD FROM MSID")
  row = cur:fetch({}, "a")

  while row do
    print(string.format("%s",row.MSISD))
    row = cur:fetch (row, "a")
  end

  cur:close()
  con:close()
  env:close()
2019-01-24 08:46:01