Grails allows developers to store data in either an embedded or external database. Embedded databases are lightweight and require little configuration as they are linked directly to the application, while external databases like MySQL can be shared across multiple programs concurrently but require more setup. Grails supports development, test, and production environments which can be configured with different database settings in the DataSource.groovy file. Developers can run the application in each environment using specific Grails commands like 'grails run-app' for development and 'grails prod run-app' for production.