No, sudo runs a command as the user 'root' on the operating system (assuming Unix-like)
The user named 'root' for MySQL is all-powerful, but only within the database, not the entire system.
I suspect that you're logged in as a user named 'ODBC' or perhaps there is an environment variable that mysql picks up as the user (try: env | grep -e ODBC ). Doing the initial creation of the database (i.e., depot_development) is often done as the "mysql -u root" user, but then you typically also create a user to be used for that database (doesn't have to be exclusive) and the tables within that database are created by the non-root user.
I created the databases and tables from root like this:
mysql -u root -p
Enter password: *******
Welcome to the MySQL monitor. Commands end with ; or \g.
create database depot_development;
create database depot_test;
create database depot_production;
grant all on depot_development.* to 'dave'@'localhost';
grant all on depot_test.* to 'dave'@'localhost';
grant all on depot_production.* to 'prod'@'localhost' identified
by 'wibble';
exit
and then editing database.yml to remove the username and password from
the tables for development and test.
its working but i kinda don remember wat exactly i was doing!!
i was getting frustrated with the total lack of explanation in the book
about the syntax. the authors assume you have expert-level knowledge in
everything other than ROR.. and they take it for granted..