Bluebay Posted February 18, 2013 Share Posted February 18, 2013 When i have type "restart mysql" to the console, it says: [19:06:21] restart: Requested by Console [19:06:21] restart: Resource restarting... [19:06:21] Stopping mysql [19:06:21] Starting mysql [19:06:21] ERROR: mysql/connection.lua:16: attempt to call global 'mysql_connect ' (a nil value) [19:06:21] mysql restarted successfully Everybody says, that i need mta_mysql.so, but I HAVE IT! (Sorry for bad english) Link to comment
tosfera Posted February 18, 2013 Share Posted February 18, 2013 When i have type "restart mysql" to the console, it says: [19:06:21] restart: Requested by Console [19:06:21] restart: Resource restarting... [19:06:21] Stopping mysql [19:06:21] Starting mysql [19:06:21] ERROR: mysql/connection.lua:16: attempt to call global 'mysql_connect ' (a nil value) [19:06:21] mysql restarted successfully Everybody says, that i need mta_mysql.so, but I HAVE IT! (Sorry for bad english) wiki: "This function is provided by the external module MTA-MySQL. You must install this module to use this function." have you done it? (https://wiki.multitheftauto.com/wiki/Mod ... ql_connect) also, if you dont want to install the module, use this: dbConnect Link to comment
Bluebay Posted February 18, 2013 Author Share Posted February 18, 2013 So what i need to do? I need the modul, and i don't know what is the problem. Link to comment
50p Posted February 18, 2013 Share Posted February 18, 2013 You don't need the module. Just use native MTA MySQL functions. https://wiki.multitheftauto.com/wiki/Ser ... _functions Link to comment
Bluebay Posted February 18, 2013 Author Share Posted February 18, 2013 But the mode, what i use, need the module. Link to comment
50p Posted February 18, 2013 Share Posted February 18, 2013 If you have downloaded a resource which uses the module then you will have to install it. Follow this page to find out how: https://wiki.multitheftauto.com/wiki/Modules/MTA-MySQL Link to comment
Bluebay Posted February 18, 2013 Author Share Posted February 18, 2013 But I have already installed it. It can be found at the 'modules' folder, and at the mtaserver.conf too. (But i still get this error.) Link to comment
50p Posted February 18, 2013 Share Posted February 18, 2013 Follow the steps again. Restart the server if it's running. If I were you I would stop the server before editing the confing file. Link to comment
Bluebay Posted February 18, 2013 Author Share Posted February 18, 2013 Okay, i'm done. but it's already bad. There is my connection.lua file: -- connection settings local hostname = get( "hostname" ) or "secret" local username = get( "username" ) or "secret" local password = get( "password" ) or "secret" local database = get( "database" ) or "secret" local port = tonumber(get( "port" )) or 3306 -- global things. local MySQLConnection = nil local resultPool = { } local sqllog = false local countqueries = 0 -- ToDatabase - Internal function, to spawn a DB connection function connectToDatabase(res) MySQLConnection = mysql_connect(hostname, username, password, database, port) if (not MySQLConnection) then if (res == getThisResource()) then cancelEvent(true, "Cannot connect to the database.") end return nil end return nil end addEventHandler("onResourceStart", getResourceRootElement(getThisResource()), connectToDatabase, false) -- destroyDatabaseConnection - Internal function, kill the connection if theres one. function destroyDatabaseConnection() if (not MySQLConnection) then return nil end mysql_close(MySQLConnection) return nil end addEventHandler("onResourceStop", getResourceRootElement(getThisResource()), destroyDatabaseConnection, false) -- do something usefull here function logSQLError(str) local message = str or 'N/A' outputDebugString("MYSQL ERROR "..mysql_errno(MySQLConnection) .. ": " .. mysql_error(MySQLConnection)) exports['logs']:logMessage("MYSQL ERROR ! [QUERY] " .. message .. " [ERROR] " .. mysql_errno(MySQLConnection) .. ": " .. mysql_error(MySQLConnection), 24) end function getFreeResultPoolID() local size = #resultPool if (size == 0) then return 1 end for index, query in ipairs(resultPool) do if (query == nil) then return index end end return (size + 1) end ------------ EXPORTED FUNCTIONS --------------- function ping() if (mysql_ping(MySQLConnection) == false) then -- FUU, NO MOAR CONNECTION destroyDatabaseConnection() connectToDatabase(nil) if (mysql_ping(MySQLConnection) == false) then logSQLError() return false end return true end return true end function escape_string(str) if (ping()) then return mysql_escape_string(MySQLConnection, str) end return false end function query(str) if sqllog then exports['logs']:logMessage(str, 24) end countqueries = countqueries + 1 if (ping()) then local result = mysql_query(MySQLConnection, str) if (not result) then logSQLError(str) return false end local resultid = getFreeResultPoolID() resultPool[resultid] = result return resultid end return false end function unbuffered_query(str) if sqllog then exports['logs']:logMessage(str, 24) end countqueries = countqueries + 1 if (ping()) then local result = mysql_unbuffered_query(MySQLConnection, str) if (not result) then logSQLError(str) return false end local resultid = getFreeResultPoolID() resultPool[resultid] = result return resultid end return false end function query_free(str) local queryresult = query(str) if not (queryresult == false) then free_result(queryresult) return true end return false end function rows_assoc(resultid) if (not resultPool[resultid]) then return false end return mysql_rows_assoc(resultPool[resultid]) end function fetch_assoc(resultid) if (not resultPool[resultid]) then return false end return mysql_fetch_assoc(resultPool[resultid]) end function free_result(resultid) if (not resultPool[resultid]) then return false end mysql_free_result(resultPool[resultid]) table.remove(resultPool, resultid) return nil end -- incase a nub wants to use it, FINE function result(resultid, row_offset, field_offset) if (not resultPool[resultid]) then return false end return mysql_result(resultPool[resultid], row_offset, field_offset) end function num_rows(resultid) if (not resultPool[resultid]) then return false end return mysql_num_rows(resultPool[resultid]) end function insert_id() return mysql_insert_id(MySQLConnection) or false end function query_fetch_assoc(str) local queryresult = query(str) if not (queryresult == false) then local result = fetch_assoc(queryresult) free_result(queryresult) return result end return false end function query_rows_assoc(str) local queryresult = query(str) if not (queryresult == false) then local result = rows_assoc(queryresult) free_result(queryresult) return result end return false end function query_insert_free(str) local queryresult = query(str) if not (queryresult == false) then local result = insert_id() free_result(queryresult) return result end return false end function escape_string(str) return mysql_escape_string(MySQLConnection, str) end function debugMode() if (sqllog) then sqllog = false else sqllog = true end return sqllog end function returnQueryStats() return countqueries -- maybe later more end Link to comment
50p Posted February 19, 2013 Share Posted February 19, 2013 Why do you expect people to post if you haven't asked a single question? Read my signature. Link to comment
xXMADEXx Posted February 20, 2013 Share Posted February 20, 2013 That is the script, of Valhalla. Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now