I need a one-liner to provision users in my databases. I'm running MySQL 5.6. Here is what I'm setting the password as a variable so that I can pass it dynamically (obviously it won't always be 'password').
mysql_password="password"
mysql -u ted -e "SET PASSWORD FOR 'ted'@'localhost' = PASSWORD($mysql_password);"
I'm getting the following error when I run this:
ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'password)' at line 1
What is wrong with the statement? Can it be corrected or is another solution available so I accomplish this via Bash?
SET PASSWORDstatement, and therefore needs to be surrounded with single quotes when you pass it in, just like'ted'is. Be careful though, this is not injection-safe.var=astring; echo "Variable is '$var'"will print"Variable is 'astring'"in bash.