Just did a clean install of drupal 4.6.3 on OpenBSD 3.7.
Apache is:
Server version: Apache/1.3.29 (Unix)

Apache is running with the -u option (not chrooted)

Everything appears to be fine through all the installation and configuration steps.

However, when I post my first story, I get:

user error: File './drupal/comments.MYD' not found (Errcode: 9)
query: SELECT COUNT(*) FROM comments WHERE status = 0 AND nid = 1 in /var/www/htdocs/drupal-4.6.3/includes/database.mysql.inc on line 66.

The story does appear to post OK however.

Additionally, when I connect to the site with a non-logged-in browser, I get:

user error: Can't create/write to file '/tmp/#sql_3e_0.MYD' (Errcode: 9)
query: SELECT DISTINCT(p.perm) FROM role r INNER JOIN permission p ON p.rid = r.rid INNER JOIN users_roles ur ON ur.rid = r.rid WHERE ur.uid = 0 in /var/www/htdocs/drupal-4.6.3/includes/database.mysql.inc on line 66.

Permissions on /tmp are:
drwxrwxrwt 4 root wheel 512 Nov 1 13:33 tmp

Any thoughts?

Thanks,
Wade

Comments

wadesworld’s picture

Just to help other users...here's some of my troubleshooting that went on.

I was trying to install the Events module. When following the instructions, I did:

-bash-3.00$ mysql -u drupal -pfakepassword drupal < event.mysql
ERROR 1 at line 1: Can't create/write to file './drupal/event.MYD' (Errcode: 9)

Hmm....that's very odd and very similar to the error above. Looking at the content of event.mysql, it was a simple create table statement.

Next, I decided it might be a database permissions problem, so I logged into the db as root and did:

mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Didn't find any fields in table 'columns_priv'
Didn't find any fields in table 'db'
Didn't find any fields in table 'host'
Didn't find any fields in table 'tables_priv'
Didn't find any fields in table 'user'
Database changed
mysql> select * from user;
ERROR 1105: File './mysql/user.MYD' not found (Errcode: 9)
mysql> show tables;
+-----------------+
| Tables_in_mysql |
+-----------------+
| columns_priv |
| db |
| func |
| host |
| tables_priv |
| user |
+-----------------+
6 rows in set (0.00 sec)

mysql> select * from user;
ERROR 1105: File './mysql/user.MYD' not found (Errcode: 9)

Uh oh - that's even worse. It appeared as if the user table was empty / corrupt /etc.

But, I checked the actual file on disk and it appeared OK.

Finally I decided the database must just be whacked out. So I restarted it - and everything is OK.

Hope this helps someone in the future.

Wade

dannosite’s picture

http:danno.appliedi.net/drupal/ my regular, working site.
I'm having the same problem on a home site running Drupal 5.1 and OpenBSD 4.1 (with httpd -u .)

The problem is that the database server seems to be 'whacking out' more and more lately. I don't think (especially after reading your comments above) that the hard drive is the issue. But just restarting it and being on my way isn't helping.

There was a mysql forum topic that alluded to specifying a temp directory in the my.cnf (in [mysqld] section) ... so I did just that (tmpdir=/tmp/) .

It's currently running... I'll check back if it's stable or if it breaks again.

Okay I tried to specify the temp directory (in a few places, some with no access restrictions to read or write) and it still broke. The problem doesn't seem to be caused by Drupal, however, instead I have a CitrusDB database running on the same server. Every time I try to access the application over the web, it crops up this error, and then suddenly the Drupal site is broken as well. If I don't access the CitrusDB site at all after restarting the DB server, then it won't break...