Once installed, you have to go through the configuration process. A lot of the configuration process is similar to Oracle; data goes here, logfiles (transaction logs) go on a seperate filesystem, the message logs go another place, etc. Similar to Oracle, you setup memory parameters and other features you want installed in the instance.
One interesting feature of MySQL is that you can store your tables using different "Storage Engines". A storage engine is basically the method used to access your data. You can use any number of storage engines in your database. The main storage engines are MyISAM, InnoDB, Memory, Merge, Berkley, and NDBCluster.
Why would you want to choose your storage engine? You can assign the storage engine based on what type of activity the table will have and the features you need.
|MyISAM||Extremely fast for Queries||Can't use transactions with, Concurrent INSERTs don't scale because the entire table is locked,Dirty Reads|
|InnoDB||Can use transactions, multi-versioning read consistency, DML scales well||Queries slower than MyISAM|
|Memory||Tables stored directly in memory. Access is really fast. Best for TEMP type tables||Tables stored directly in memory. DB Goes down, your data is toast.|
|Merge||Can present two identical tables as one table. Kind of like a materialized view, kind of like a partitioned table||Must be MyISAM tables|
|Berkley||Offers transactions.||Older technology|
|NDBCluster||Supports transactions and clusters, highly scalable||Not widely used.|
|Federated||Can store data on a seperate server||your I/O is limited by bandwidth|
Last, but not least, we talked about security. We went through the same things you would do to secure an Oracle database; protect the root OS user, protect the mysql "root" (or SYS) user, use strong passwords, protect remote root logins, etc. One interesting concept is that MySQL users are identified not only by a username, but by the host they can login from. For example, jeffh@localhost is a totally different identity than jeffh@webserver. You grant permissions to both user depending on how you want to want them to access your data. If you want the root user to only login on the server itself, you only create root@localhost. This lets you setup access rules such as "When user jeffh is logged into the database on an internal domain, he can INSERT, UPDATE, DELETE, SELECT from my tables. When user jeffh is logged in from the VPN, he can only SELECT from my tables". That's kind of cool.
Two side notes: I leared about google sets and gvim (vi for windows).