Start MySQL
1. Log in to your Linux computer using your user account.
2. Click the icon, then Terminals, then Konsole.
3. When the Konsole window opens, it should look like this:
14 GETTING STARTED WITH MYSQL
3. At the prompt, type:
su
then press the ENTER key on your keyboard.
The window should look like this:
GETTING STARTED WITH MYSQL 15
4. At the Password prompt, type:
Your Root user password
Not this particular string, of course, but the actual Root
password for the Linux computer.
Then press the ENTER key.
The window should look like this:
16 GETTING STARTED WITH MYSQL
Tip: Notice the prompt has changed from
[yourusername@localhost yourusername]$
to
[yourusername@localhost yourusername]#
There’s now a # at the end of the prompt.
$ means you’re giving Linux commands as a regular user. #
means you’re giving commands as the Root user.
On any Linux computer, there are regular users and the Root
user. Giving the su command allows you to give commands as
the “Super User,” or Root user, of the computer.
As the Root user, you can add/delete/modify any file on the
computer. A regular user can’t do this.
The Root user has the power to really mess up the computer, so
you should only work as the Root user when necessary.
GETTING STARTED WITH MYSQL 17
5. Next, type:
/etc/rc.d/init.d/mysql start
then press ENTER.
The window should look like this:
This starts the MySQL server—the program mysql in the
/etc/rc.d/init.d/ directory.
18 GETTING STARTED WITH MYSQL
Tip: If you are not sure whether or not the MySQL Server is
running, type:
/etc/rc.d/init.d/mysql status
If it’s running, the window will look like this:
6. Type:
exit
then press ENTER.
GETTING STARTED WITH MYSQL 19
The prompt has now changed to:
[yourusername@localhost yourusername]$
Linux Root privileges were only needed to start MySQL, so
you’ve logged out as the Linux computer’s Super (Root) User.
7. At the [yourusername@localhost yourusername]$
prompt, type:
mysql –u root mysql
then press ENTER.
The window should look like this, with a mysql> prompt:
20 GETTING STARTED WITH MYSQL
Here’s what this string of commands means:
• mysql
mysql –u root mysql
This first mysql starts the MySQL client.
MySQL is made up of two parts: the MySQL server program
and a MySQL client program.
The MySQL server program handles the storage of the data.
The MySQL client program allows you to give commands to
the MySQL server.
You need both parts to make MySQL work.
• -u root
mysql –u root mysql
The -u command tells the MySQL client that you want to log
into the MySQL server as a particular user. root denotes
the root user of the MySQL server.
You’re not logging into the Linux computer as the Root user;
you’re logging into the MySQL server as its root user. This
gives you total control over the MySQL server.
GETTING STARTED WITH MYSQL 21
• mysql
mysql –u root mysql
This last mysql refers to a database called mysql that you’ll
use initially. This database is included by default in the
MySQL server.
The database mysql has several tables, including one that
describes who can use the MySQL server.
8. Type:
SET PASSWORD FOR
root@localhost=PASSWORD(‘textbook’);
The window should look like this:
This string of commands sets the password for the root user on
the MySQL server to textbook.
22 GETTING STARTED WITH MYSQL
Tip: Both the MySQL server and the Linux computer itself can
have root users who can add/delete/modify anything. The
passwords for each are independent, however.
textbook is not the Root account password of your Linux
computer. It’s the root password for the MySQL server.
In the previous string of commands, you logged into the MySQL
server as its root user, so the password textbook applies to the
MySQL server.
You can now give commands to add/delete/modify anything in
the MySQL server, but not the Linux computer it runs on.
GETTING STARTED WITH MYSQL 23
Create a new database
1. At the mysql> prompt, type:
CREATE DATABASE us_presidents;
then press ENTER.
The window should look like this:
24 GETTING STARTED WITH MYSQL
Tip: Now that you’re logged into the MySQL server, you’re
giving MySQL commands.
Unlike Linux commands, MySQL commands need a semicolon
(;) on the end to execute.
The CREATE DATABASE command created a database called
us_presidents in the MySQL server.
If ever you mistakenly end a command string with a character
other than a semicolon…
CREATE DATABASE us_presidents
…then press ENTER, there is no way to “fix” that command.
Just add a semicolon to the new line you are on:
CREATE DATBASE us_presidents
;
If the command is valid, it will execute.
If there was an error in the command string and it’s invalid,
adding a semicolon here will execute it and MySQL will give an
error.
GETTING STARTED WITH MYSQL 25
2. Type:
SHOW DATABASES;
then press ENTER.
The window should look like this:
This shows the databases on your MySQL server: mysql, test,
tmp, and us_presidents.
The other databases, mysql and tmp, are used by the MySQL
server to store information about users, permissions, etc. The
test database is often used as a workplace for MySQL users to
test and try things – this is useful in a work environment where
many people are working with critical information.
26 GETTING STARTED WITH MYSQL
Tip: MySQL commands don’t have to be UPPER-CASE.
In this book, commands are put in UPPER-CASE to make them
easier to distinguish.
If you’d typed the command in lower-case:
show databases;
that would have been fine.
GETTING STARTED WITH MYSQL 27
Create a table
1. Type:
USE us_presidents;
then press ENTER.
The window should look like this:
The USE command allows you to start using the database
us_presidents.
28 GETTING STARTED WITH MYSQL
Displaying text
Sometimes a string of commands is too wide to fit on the pages of
this book. In those cases, an arrow is added that tells you to
continue typing in the same line.
For instance, this command:
rpm –i MySQL-3.23.51-1.i386.rpm MySQL-client-
3.23.51-1.i386.rpm
could be displayed this way:
rpm –i MySQL-3.23.51-1.i386.rpm ►►
MySQL-client-3.23.51-1.i386.rpm
GETTING STARTED WITH MYSQL 29
2. Type:
CREATE TABLE name ►►
(id INT NOT NULL PRIMARY KEY ►►
AUTO_INCREMENT, ►►
first CHAR(25), last CHAR(25) );
then press ENTER.
The window should look like this:
This string of commands is used to CREATE a TABLE called
name with three fields: id, first, and last.
Here are the datatypes and properties for these fields:
• INT
CREATE TABLE name
(id INT NOT NULL PRIMARY KEY
AUTO_INCREMENT,
first CHAR(25), last CHAR(25) );
The INT datatype for the id field ensures it will contain only
integers—numbers, not text.
30 GETTING STARTED WITH MYSQL
• NOT NULL
CREATE TABLE name
(id INT NOT NULL PRIMARY KEY
AUTO_INCREMENT,
first CHAR(25), last CHAR(25) );
The NOT NULL property ensures the id field cannot be left
blank.
• PRIMARY KEY
CREATE TABLE name
(id INT NOT NULL PRIMARY KEY
AUTO_INCREMENT,
first CHAR(25), last CHAR(25) );
The PRIMARY KEY property makes id the key field in the
table.
In any database table, one field should be the key field—a
field that can contain no duplicates. In this table, name, the
id field is the key field because it contains the PRIMARY
KEY property.
This means the name table can’t have two records with an
id of 35.
• AUTO_INCREMENT
CREATE TABLE name
(id INT NOT NULL PRIMARY KEY
AUTO_INCREMENT,
first CHAR(25), last CHAR(25) );
The AUTO_INCREMENT property automatically assigns a
value to the id field, increasing the previous id number by
one for each new field.
GETTING STARTED WITH MYSQL 31
This ensures that the NOT NULL (can’t be blank) and the
PRIMARY KEY (can’t have duplicates) properties of the id
field are both satisfied.
• CHAR
CREATE TABLE name
(id INT NOT NULL PRIMARY KEY
AUTO_INCREMENT,
first CHAR(25), last CHAR(25) );
The CHAR datatype for the first and last fields limits the
length of entries to 25 characters each.
In the us_presidents database, you’ve created a table called
name that’s organized like this:
Field Datatype Properties
primary key, not null,
Id INT
auto increment
first CHAR(25)
last CHAR(25)
32 GETTING STARTED WITH MYSQL