Getting simialr problems, I've found a script mysql.server that is supposed to start the server; it is in /usr/share/mysql/ in Slackware 10.
I am compiling a complete list of where the default paths are because these seem to be the cause of all MySQL errors, as if MySQL has assumed everyone is using something like Redhat or Mandrake or Gentoo or Windows For the MySQL developers: everyone is NOT!
So if the script is run, it reports for me that it can't find host.frm
host.frm is in /var/lib/mysql/mysql/ on Slackware 10, not /var/lib/mysql so your error: Can't find file: './mysql/host.frm' (errno: 13) is similar to the one I get of
No mysqld pid file found. Looked for /var/lib/mysql/Bach.pid.
So now, I have to find a .pid file for which I have no idea where either MySQL or Slackware 10 put it, if it exists, or if MySQL is supposed to create it, as it tried to create the mysql.sock file which didn't work, at first, either.
All of this, I repeat, All of this, is because there is no definitive document on MySQL tree structure for shipped binaries with Linux nor Windows.
An oversight which the users appear to be correcting.
Another Catch-22 is that even if you get the command line working, it still won't work from localhost using a browser; you will get access denied even with the correct username and password. Using phpMyAdmin doesn't help as it needs login privileges which MySQL does not grant initially. The GRANT command is too cryptic currently and if you use it from the command prompt, it just goes to a cursor prompt and there is no explanation of how to make it execute.
MySQL needs two things: an override to access it using the root username and password, regardless of all else and in particular from the browser to get phpMyAdmin working so you can add privileges, and a more basic HOWTO that actually gets MySQL running, instead of reporting every little thing as an error.
In Windows I'm up to the point of being able to log in via command prompt, but no http login. In Slackware I'm building a new HOWTO because of all of the errors being generated without any concise help.
If you find out how to "fake out" MySQL on these stupid errors, like no host.frm or no host.pid, please post here.
I actually created the mysql.sock as a zero-byte kedit file and put it where it belonged; after much changing of configuration and permissions. Slackware 10 uses both Unix sockets and TCP/IP sockets, and pipes should not be restricted to port 3306. This idea of piping to specific ports only serves to make everything "lame." TCP/IP opens up as many sockets as it needs to stream Internet data and programming should not be designed to circumvent that. Ports are not written in stone, not even the well known ports, and never should be; it's bad programming practice pure and simple. Why? Because if a hacker knows the port an application is running on he can get to that port and disrupt it. The Internet idea was and is to create variable ports which cannot be so easily "tagged." It's the same problem as novice hardware engineers trying desparately to assign a specific IRQ to their device. These things were designed to be variable, not constant. But through time many designers and programmers have become somewhat lazy and opted for authoring modules which use specific ports and IRQ's because it takes far more brain power to write modules that look for available ports and IRQ's. And that is the simple cause of so much confusion.
I might add that I do not agree with the use of the my.cnf file with a really stupid plain text username and password! That is incredibly stupid to have on any computer, anywhere.
All stored passwords should be encrypted, hashed, hidden, and locked!
There should be no evidence whatsoever of a password anywhere on any computer, and that includes a server.
If anyone has more definitive information on MySQL, such as where the source code module is for this stuff, like pickiing the mysql.sock, please let them tell us, maybe we can fix the problems in our own compiles.