Everything in the digital world is a number. It's not that that you can't do this. It's that doing it makes things pointlessly difficult.
Aside from the + and leading 0 issues, which should not be casually dismissed, the two primary operations performed on phone numbers are validating and presenting them to the user in a standard format. Both of these are easier to do with strings. Even if you make this work with a number all you gain is a micro compression of data at the expense of readable code.
varchar
is how you do this in mySQL. It won't require that you know the length of the phone number ahead of time.
Also note that the same phone number exists in different forms from different perspectives. In some places the country code or the area code can be left off. Ask for these in separate fields and the input will be more universally useful.
Formatting information ()
, -
, .
,
etc, should ether be standardized or stripped out when stored and reapplied when displayed to ensure that storage is independent of presentation.
While you claim that you are not using + and leading 0 now please consider how difficult a numeric based design would make adding them in the future.
See MySQL - how to store phone numbers?