A bit of terminological inexactitude here:
To create anything, you normally need to be 'root'
To create a database called books, you enter:
CREATE DATABASE books;
I would not then normally create a user called 'books' - 'guest' or 'reader' would be better if you want lots of people to access the database.
Though I cannot see anything wrong with the syntax of your CREATE USER statement, it may be worth checking that you were logged in as root and, if so, the contents of mysql.user (that is, the user table in the mysql database).
However, for adding users I prefer
INSERT INTO user (Host,User,Password) VALUES ('host','user',PASSWORD('password'));
which hashes the password immediately.
Note that both leave your password exposed in the mysql_history file; so open an editor and delete these lines in your mysql-history file.
mysql is supplied as default with no passwords and two anonymous users anyway. It is possible the version you have installed comes with a different configuration of mysql.user.
Finally, the mysql documentation - open a console and enter 'info mysql' - is excellent and well worth reading with care if you are new to it - though, because it is so big, you may find difficulty wading through it all for the nuggets you need. There are plenty of easy introductions too.