To give a user all privileges except the 'Create user' privilege
This works:

As root:

mysql&gt; CREATE USER 'myuser'@'%' IDENTIFIED BY 'billy';
Query OK, 0 rows affected (0.04 sec)


Then, on the sport schema, grant ALL to myuser

mysql&gt; GRANT ALL ON sport.* TO 'myuser'@'%';
Query OK, 0 rows affected (0.02 sec)


Exit and then log on as the new user myuser

mysql&gt; exit;
Bye
[pol@localhost inst]$ ./bin/mysql -S ./mysql.sock -u myuser -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.6.22-log Source distribution


Show all the schemas myuser can see

mysql&gt; show schemas;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| sport              |
| test               |
+--------------------+
3 rows in set (0.00 sec)


There are many more schemas on this server - it's just that myuser can't see them.

mysql&gt; use sport;
Database changed


Then, try to create a user as myuser.

mysql&gt; create user 'fred'@'%' IDENTIFIED BY 'mary';
ERROR 1227 (42000): Access denied; you need (at least one of) the CREATE USER privilege(s) for this operation


Fails.

But, I can do this.

mysql&gt; create table test (a int, b varchar(10));
Query OK, 0 rows affected (0.53 sec)

mysql&gt; insert into test values(3, 'testvalue');
Query OK, 1 row affected (0.04 sec)


Take a look at the three answers here, here and here for a better idea of what's going on. Always test your users after creation - it's very easy to give users too much power.

You can also do it this way (a more elegant solution perhaps)

GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, 
    INDEX, ALTER, CREATE TEMPORARY TABLES 
ON sport.* TO 'username'@'localhost' IDENTIFIED BY 'password';


Finally, you could just remove the CREATE USER privilege (and, of course, the WITH GRANT OPTION) from this answer to have a "super user" who can do everything except create new users.

I think @sqlbot may have figured out the root of your problem.