I have been struggling with these and related issues myself for the last few days.
I found password issue confusing too.
When you first start there is no root password, you must set it.
Until you set it, no password is required, and setting one causes trouble.
What I believe is that you need to put the -p switch on a command line if you want to be promted for the password.
There are other ways for the program to get a password, though.
If a password is set, and you do not add the -p switch, the command will fail unless the command finds the password by the alternate route.
You should avoid passing the password in the clear on the command line.
There are config files that client programs search in a fixed order from general to specific. The final, user level, file is named ~/.my.cnf.
You can put a password there, but you need to be careful about who can read the file. This is really only satisfactory for the root.
Some of the file might look like:
[mysqladmin]
password=secret
user=root
If you set up the root .my.cnf this way, then when root runs mysqladmin, it will not require the -p switch. This assumes that the password is up to date of course.
There are some helpul articles, one of which is:
Getting Started with MySQL
In the end, I fear I will have to read most of the MySQL manual, which is on their website, and which is generally good.
I think a lot of my problems are about things which have become "obvious" to experienced MySQL users.
My goal was to learn whether I should make a long term commitment to using MySQL. There are obvious advantages, but there are risks too. Right now I am struggling with ODBC, but I think I will start a new thread for help with this.