Create read only user without being root I want to create read only user in MySQL without any intervention of root user.

CREATE USER ‘$user‘@’127.0.0.1′ IDENTIFIED BY ‘$password‘;


Works for me only If I am a root user. But I want it to happen from a non root user. Can this be done?
From the manual


  To use this statement, you must have the global CREATE USER privilege
  or the INSERT privilege for the mysql database.


So first you must have the root account grant you access to CREATE USER. Then your account will be able to create other users.