would like to change a password for a user called tom using UNIX / Linux command line option. How do I change a user password under MySQL server?

You need to use mysql (or mysql.exe on MS-Windows based system) under Linux or Unix like operating system. Open a terminal / ssh session. Type the following command at the shell prompt to login as a root user. The syntax is as follows for Unix like operating system:

$mysql -u root -h localhost -p

OR use mysql.exe under MS-Windows host as follows (first change directory where mysql.exe is located [example: « C:\Program Files\mysql\mysql-5.0.77-win32\bin »] ):

mysql.exe -h localhost --user=root -p

You will see mysq> prompt as follows:

mysq>

Syntax: Sql command to change a user password

Switch to mysql database (type command at mysql> prompt, do not include string « mysql> »):
mysql> use mysql;

The syntax is:

 
SET PASSWORD FOR 'user-name-here'@'hostname-name-here' = PASSWORD('new-password-here');

You can also use the following sql syntax:

 
UPDATE mysql.user SET Password=PASSWORD('new-password-here') WHERE User='user-name-here' AND Host='host-name-here';

In this example, change a password for a user called tom:

SET PASSWORD FOR 'tom'@'localhost' = PASSWORD('foobar');

OR

UPDATE mysql.user SET Password=PASSWORD('foobar') WHERE User='tom' AND Host='localhost';

Sample outputs:

Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

Feel free to replace the values for « tom » (user), « localhost » (hostname), and « foobar » (password) as per your requirements. Finally, type the following command to reload privileges:

FLUSH PRIVILEGES;

Sample outputs:

Query OK, 0 rows affected (0.00 sec)

To exit from mysql> prompt, enter:

quit;