Check if MySQL User Exists on Command Line (and in Puppet)

Check if MySQL User Exists on Command Line (and in Puppet)

If you are using Linux, there is simple way to check if a user exists in MySQL:

echo `mysql -u root -p**[your root password]** -e 'use mysql; SELECT user FROM user;'` | grep '[user name]'

Executing this command will exit with return code 0 if the user exists and otherwise exit with 1.

This is very useful for building puppet scripts. The following execution will create a user if it doesn't exist.

exec { "add user if not exist":

unless => "echo `mysql -u root -p**[psw]** -e 'use mysql; SELECT user FROM user;'` | grep '[username]'", path => ["/bin", "/usr/bin"], command => "mysql -u root -p$mysql_password -e \"**[Create User/Grant Rights Here]**\"", require => Service["mysqld"], }