It is quite likely that your client and server have different ideas to where the socket lives.
If you have a /proc file system, finding where the server has put the socket is quite easy. The output from:
ps -elf | grep mysqld
should include the process id of one of the mysqld server threads (any will do). Then look in /procto see where the socket has been written:
sudo ls -l /proc/NNN/fd
where NNN is the process id from the "ps" call.
Once you know where the socket is, pass its location in the connect string:
sudo /usr/local/mysql/bin/mysqladmin -u root -S /path/to/mysqld.sock -ppassword
The socket location is normally specified in the mysql.cnf file (/etc/mysql/mysql.cnf or /etc/mysql.cnf or whatever), in the section headed "[mysqld]". If there is no socket entry in there, then the server will use the compiled in default which is /tmp/mysql.sock. You can always stop (or kill) the server, and add an explicit socket entry into the config file like:
It is worth adding the same to the [client] section so all the client tools have the same idea.