Access will die of heart failure or cerebral embalism if you put 2 million records in a table.
Its not a record limit but a total database file size, which is 1gb-2gb depending on which version of access.
If you think 1gb is 1,900,000 records at 512 characters (got to allow overheads+structures and sql etc), this is TOTAL DB not per table.
MySQL will handle 2,000,000 records but your going to need some pretty bloody neat sql code, normalisation, appropriate indexes and I'd use temp tables and some form of cacheing as well, to allow it not to bring your server to its knee's. Dealing with 2,000,000 records and poor code will anhiliate your server. Maybe worth hiring a database expert to write your SQL, because you can turn a requirement for a £500 a month server into shared hosting requirement is fantastic code.
I know someone who has a wiki running with 15,000,000 records and has no problems, phpbb.com's forum must be 100s of millions or records.
Oracle should also be considered as well.