An effortless way to create dynamic website application involves Open Database Connectivity aka ODBC.
However, web apps can fail due to errors with ODBC database connection. And, they report ODBC error 80004005.
Finding the real reason behind the ODBC error can be tricky. That’s why, we regularly receive requests to fix odbc errors as part of our Server Management Services.
In this write-up, we’ll analyze the top 5 reasons for ODBC error 80004005 and how our Database experts fix it.
How does error 80004005 look like?
A vast majority of websites in internet use database as its back-end. These websites store the user details and related data in the databases. And, to make these details display on the website, we commonly use ODBC method.
Fortunately, this ODBC method is independent of website coding language. That is, it doesn’t matter whether your website uses PHP or ASP code.
It is the ODBC database drivers that hold the underlying database details and helps to connect to the database systems. And, if for some reason this database connection fails, it results in ODBC error 80004005. For example, a typical error page looks like:
In general, such ODBC errors show up with websites using Microsoft Access databases. These ASP websites generate these errors when having trouble accessing the database file. Again, these 80004005 errors occur in OLE DB Provider for ODBC or Microsoft Jet Database Engine too.
What causes ODBC error 80004005 ?
Now, its time to check on the causes for error 80004005. From our experience in managing websites, our Dedicated Engineers often encounter this message in various scenario.
1. Incorrect permissions
Basically, Windows websites should have access rights on the database files with extension .mdb, .ldb, etc.. If any of the read or write permissions are missing, website will show error 80004005. Essentially, the website user Need MODIFY permissions on the entire database directory. This allows the process to create a lock file (ldb) in the same directory as the mdb file.
The same error can happen if the website database .mdb file has a READ ONLY attribute set.
IIS7 supports classic ASP. But, for using ASP with an MS Access mdb database, it requires special settings. Often, the path to the database files create a problem here too.
2. Wrong DSN settings
Another common reason for ODBC errors attributes to Data Space Name aka DSN settings. In general, DSN holds the information of website specific database that ODBC driver connects to. Any wrong details will cause problems with ODBC connection.
At times, customers forget to create DSN, or add wrong path to the database file. Again, in servers with control panels, often DSN creation may not create necessary files on the server. This also create ODBC errors.
3. Corrupt database
Obviously, a corrupt database will always result in an error. And, in such cases, search query will not yield correct results and show up ODBC error 80004005.
4. Already running process
Microsoft access databases have trouble in handling multiple processes at a time. When a process still has a file handle open to the db, it can show ODBC connection error. This typically happens when users do not close the connection properly. For example, a partial upload of database file via FTP client can leave behind an open connection.
5. SQL server restrictions
Last and not the least, SQL server security restriction can also be a reason for ODBC error 80004005. When SQL Enterprise Manager has Integrated security turned on, the windows account should be mapped to the database account. Else, it will result in website errors.
How we fix ODBC error 80004005
Now that we know the typical reasons for the error 80004005, let’s check on how our Database Engineers resolve ODBC errors for our customers.
Recently, we received a request from customer where his website was not loading. He had trouble in making connection to the website’s database. The website showed the below error message:
Microsoft OLE DB Provider for ODBC Drivers error '80004005' [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified /LM/W3SVC/144/ROOT/global.asa, line 18
As the fist step, we verified the permissions and ownership of the database files. The IUSR account had proper permissions on the files. Additionally, ODBC driver did exist on the server too.
Then, we checked the DSN connection string. And, we found that the database connection string in his .asa file was set up incorrectly. Therefore, we corrected the settings and that fixed the website error.
Similarly, in cases where ODBC errors show up due to open connections, our Dedicated Engineers recycle the website’s application pool which will close any connections from the site. We also educate customers to log off or close any FTP clients after accessing the database file.
Generally, to troubleshoot DSN related errors, we always test the website code with a DSN-less connection. That easily helps to eliminate DSN errors.
And, in the worst event of database corruption, all we do is database restore from backup.
For security reasons, we always recommend customers to place the database files inside a directory in the private folder. For example, in IIS Windows servers with Plesk panel it can be (ftproot)/private/database.
[Do you get troublesome ODBC error on your websites? Our Database Experts can fix it in a jiffy.]
In a nutshell, ODBC error 80004005 can happen due to incorrect permission on database files, wrong connection string, corrupt database and many more. Today, we saw the top 5 reasons for the error and how our Support Engineers fix it.