According to the Mysql documentation, there is no table or database limit.
The underlying filesystem may have a limit on number of directories.
Engines may have an individual value, such as Innodb that allows more than 4 billion tables.
What may occur is slowness due to the amount of existing tables, but limit does not exist depending on the storage engine.
Note also that this is bad practice, of course, depends on the application, but I see no need to do this, seeing that the programming language itself with a good modeling in BD can solve this more cleanly and efficiently.
See more in Limits on Number of Databases and Tables
I recommend analyzing the real need to have "a table for each user". I don’t know about the number of tables, because I think it depends a lot on the amount of reading and writing in your database. If it is too large the data transfer will need more processing on the server.
– Wagner Soares
I’ve worked on systems with hundreds of thousands of users, all in the same table, but in several different rows in the same table. The system had a certain number of tables (about 40 or 50), but each of them was for a distinct purpose. Are you sure you are not confusing the concept of table with the concept of table rows?
– Victor Stafusa
Related: http://answall.com/q/139408/101
– Maniero
@Victorstafusa I believe that’s exactly what he wants. Distinct tables for each user. He seems very convinced.
– Mauro Alexandre
For example, each user has his items, for this he needs to have a table, because each row of this table will be an item, Etenderam the idea?
– Gonçalo