myqsl dummy needs help

Gene Heskett gene.heskett at verizon.net
Mon Feb 16 19:06:10 UTC 2009


On Monday 16 February 2009, Craig White wrote:
>On Mon, 2009-02-16 at 11:06 -0500, Robert L Cochran wrote:
>> All the heavier-weight database engines have their own user accounts, so
>> they can grant or restrict permissions to various databases and tables
>> based on who the user is. MySQL does this. Even though mysql has a root
>> user that user is totally separate from the OS root account. You can
>> also have a mysql user account named mickey even though your host box
>> does not have such a user. So think only in terms of the defined MySQL
>> users.
>>
>> You need to reset the MySQL root user password.
>>
>> There may be no password to start with. I wonder what happens if you
>> just press enter when prompted for the password. If there is no
>> password, then you can set one using mysqladmin. When you first start
>> the mysqld server using 'service start mysqld' the syntax of the command
>> is explained to you right on the terminal window.
>>
>> One more point. If you want to assign a password to a user on a specific
>> host machine, such as 'mickey'@'mickeymouse.m1.org' then I believe that
>> at the time someone attempts to log in with that username the actual
>> machine name must resolve correctly on dns to 'mickeymouse.m1.org' or
>> the user 'mickey' must have a password defined for the localhost machine
>> ('mickey'@'localhost').
>>
>> To do reset the root password correctly, you can find copious details on
>> the MySQL knowledgebase. Go to www.mysql.com and search off their
>> knowledgebase. There is a method described for changing the password for
>> the root user, but it is fairly complicated. I've used it successfully
>> once or twice before when I made a mess of my own mysql root password.
>>
>> Another great resource is to read Paul DuBois book "MySQL". It is really
>> the bible of all things MySQL. If you intend to use MySQL seriously then
>> this book is mandatory purchasing and reading.
>
>----
>I think original setup for mysql is for root user via local socket and
>not via localhost so there actually isn't an account for root at localhost
>thus attempting to connect via tcp/ip as root is doomed to fail out of
>the box.
>
>Craig

With all due respect Craig, what the hell use is it then when ALL the 
documentation is wrong?

Now, I just had the bright idea of looking at the mysqld.log after ripping 
it all out and putting even more of it back in, and see this:

[root at coyote etc]# cat /var/log/mysqld.log
090216 13:30:36  mysqld ended

090216 13:30:45  mysqld started
/usr/libexec/mysqld: Can't create/write to file '/tmp/ibnoIZas' (Errcode: 13)
090216 13:30:45  InnoDB: Error: unable to create temporary file; errno: 13
090216 13:30:45 [Note] /usr/libexec/mysqld: ready for connections.
Version: '5.0.45'  socket: '/var/lib/mysql/mysql.sock'  port: 3306  Source distribution

So obviously /tmp doesn't have the right perms.  Or at least I assume (there 
is that word again) that an error 13 is permissions related.  Selinux is in 
targeted mode, enabled, and it isn't fussing.

/tmp itself is drwxr-xr-x  amanda disk   system_u:object_r:tmp_t:s0       tmp
but nearly everything in it is root:root except the amanda and amanda-debug 
directories.  So I just changed tmp to drwxrwxrwx  But that also didn't change
anything. Or did it, now the log shows this when I restart mysqld:

090216 13:51:44  mysqld started
InnoDB: The first specified data file ./ibdata1 did not exist:
InnoDB: a new database to be created!
090216 13:51:44  InnoDB: Setting file ./ibdata1 size to 10 MB
InnoDB: Database physically writes the file full: wait...
090216 13:51:45  InnoDB: Log file ./ib_logfile0 did not exist: new to be created
InnoDB: Setting log file ./ib_logfile0 size to 5 MB
InnoDB: Database physically writes the file full: wait...
090216 13:51:45  InnoDB: Log file ./ib_logfile1 did not exist: new to be created
InnoDB: Setting log file ./ib_logfile1 size to 5 MB
InnoDB: Database physically writes the file full: wait...
InnoDB: Doublewrite buffer not found: creating new
InnoDB: Doublewrite buffer created
InnoDB: Creating foreign key constraint system tables
InnoDB: Foreign key constraint system tables created
090216 13:51:46  InnoDB: Started; log sequence number 0 0
090216 13:51:46 [Note] /usr/libexec/mysqld: ready for connections.
Version: '5.0.45'  socket: '/var/lib/mysql/mysql.sock'  port: 3306  Source distribution

Which says one problem seems to be sorted, at the expense of a huge security 
hole in /tmp as anyone can do anything there now.

Ok, so now try a login again:
[root at coyote /]# mysql -u root -p
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
[root at coyote /]# mysql -u root -p
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
[root at coyote /]#

Seems like this is where I started, isn't it?

Now that the tmp perms is sorted, I suppose I need to go back and do all that 
other stuff again...

Which I just did, and didn't change a thing.  WTF?
Thanks Craig

-- 
Cheers, Gene
"There are four boxes to be used in defense of liberty:
 soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author)
Chicken Little only has to be right once.




More information about the fedora-list mailing list