The model should be the entity that actively uses the database connection, for simple models using a table gateway/active record implementation may work. For more complex models a data mapper further isolates the database from the rest of your application (which makes it less invasive to change a storage back-end).
You controller should process the request and pass whatever relevant data is needed to the model.
That said, simply setting up a database connection is usually done by some kind of bootstrap script. The model (or the data mapper) then uses the connection. I'm not sure if that technically falls under 'controller'. In practice most frameworks have bootstraps, routers, and front controllers - whatever you call them your database should be used by the model but setup by your bootstrap.