初学者的《Linux程序设计》学习(8):MySQL数据库安装、配置及基本操作

菜鸟的《Linux程序设计》学习(8):MySQL数据库安装、配置及基本操作

1. MySQL数据库:

在涉及到一些大型的Web系统或者嵌入式软件的开发时,都少不了用数据库来管理数据。在Windows操作系统下,使用过各种各样的数据库,如:sqlServer、Oracle、MySQL等等,我们知道,在Windows系统上的软件安装配置都是界面式,操作明显而简捷。
那么在Linux操作系统上,对于数据库的选用,好像首推的是MySQL,它是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL的SQL语言是用于访问数据库的最常用标准化语言。MySQL软件采用了双授权政策(本词条“授权政策”),它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库。由于其社区版的性能卓越,搭配PHP和Apache可组成良好的开发环境。
今天,阅读了《Linux程序设计》的MySQL这一章节,根据自己在虚拟机中安装配置的步骤,记录于此,供于以后的学习回顾。

2. MySQL安装步骤:

2.1 查看自己系统中是否已经存在

因为mysql数据库在Linux上实在是太流行了,所以目前下载的主流Linux系统版本基本上都集成了mysql数据库在里面,我们可以通过如下命令来查看我们的操作系统上是否已经安装了mysql数据库:
[root@localhost ~]# rpm -qa | grep mysql

我们使用root账户登录系统,由于我的系统上已经安装MySQL ,所以得到系统中已安装版本信息:
初学者的《Linux程序设计》学习(8):MySQL数据库安装、配置及基本操作
若是未安装过,则会出现没有安装的提示,此时即可跳过步骤2的卸载。

2.2 卸载原有的MySQL

使用下面命令,卸载现有MySQL:
[root@localhost ~]# rpm -e --nodeps mysql
此时,系统中已经不存在了MySQL的安装记录。

2.3 yum方式安装MySQL

通过yum的方式来进行mysql的数据库安装,首先我们可以输入 yum list | grep mysql 命令来查看yum上提供的mysql数据库可下载的版本:

[root@localhost ~]#yum list | grep mysql

我们可以看到yum服务器上有很多MySQL的可下载版本:

初学者的《Linux程序设计》学习(8):MySQL数据库安装、配置及基本操作

然后,我们通过输入 yum install -y mysql-server mysql mysql-devel 命令将mysql mysql-server mysql-devel都安装
[root@localhost ~]# yum install -y mysql-server mysql mysql-devel

几秒钟时间过后,我们可以看到下面的信息:
初学者的《Linux程序设计》学习(8):MySQL数据库安装、配置及基本操作

当我们看到complete这个赏心悦目的单词时,说明我们已经成功的安装了MySQL数据库。

3. MySQL数据库配置

3.1 MySQL服务设置

在安装完mysql数据库以后,会发现会多出一个mysqld的服务,这个就是咱们的数据库服务,我们通过输入 service mysqld start 命令就可以启动我们的mysql服务。

一般我们将该数据库的服务设置为开机自启动,使用命令chkconfig mysqld on来设置,同时使用命令chkconfig --list | grep mysql来查看结果:
[root@localhost ~]# chkconfig mysqld on
[root@localhost ~]# chkconfig --list | grep mysql
mysqld         	0:off	1:off	2:on	3:on	4:on	5:on	6:of

3.2 账户密码设置

在我们安装完MySQL数据库后,就默认有一个名称为root的管理员账户,此时,需要手动设置密码:
使用命令mysqladmin -u root password 'root' 
设定密码之后,我们可以通过命令mysql -u root -p来登录数据库:
初学者的《Linux程序设计》学习(8):MySQL数据库安装、配置及基本操作
至此,对于MySQL数据库配置,就可以结束了。

4. MySQL基本操作

4.1 基本配置文件

(1)在/etc/my.cnf内存储了MySQL数据库的主要配置信息,查看:
[root@localhost ~]# cat /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
[root@localhost ~]# 

(2)在/var/lib/mysql内存储了数据库文件,查看:
[root@localhost mysql]# cd /var/lib/mysql
[root@localhost mysql]# ls -l
total 20500
-rw-r--r--. 1 root  root     10717 May 13 10:34 create
-rw-rw----. 1 mysql mysql 10485760 May 13 10:27 ibdata1
-rw-rw----. 1 mysql mysql  5242880 May 13 10:27 ib_logfile0
-rw-rw----. 1 mysql mysql  5242880 May 13 10:27 ib_logfile1
drwx------. 2 mysql mysql     4096 May 13 10:27 mysql
srwxrwxrwx. 1 mysql mysql        0 May 13 10:27 mysql.sock
drwx------. 2 mysql mysql     4096 May 13 10:27 test
[root@localhost mysql]# 

4.2 数据库基本操作

(1)创建一个数据库
由上面的默认文件可以看出,我们的MySQL数据库中有两个默认database,一个是mysql,另一个是test。
我们创建一个自己的数据库,命令如下:
[root@localhost mysql]# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 21
Server version: 5.1.73 Source distribution

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> create database yr;
Query OK, 1 row affected (0.00 sec)

mysql> exit
Bye
[root@localhost mysql]# 
首先,我们用root账户登录数据库,可以看到mysql> 命令提示符号,执行创建数据库命令create database name; 得到创建成功消息,退出数据库使用命令exit。
现在,我们可以在/var/lib.mysql下面看到已经创建的数据库yr:
[root@localhost mysql]# ls -l
total 20504
-rw-r--r--. 1 root  root     10717 May 13 10:34 create
-rw-rw----. 1 mysql mysql 10485760 May 13 10:27 ibdata1
-rw-rw----. 1 mysql mysql  5242880 May 13 10:27 ib_logfile0
-rw-rw----. 1 mysql mysql  5242880 May 13 10:27 ib_logfile1
drwx------. 2 mysql mysql     4096 May 13 10:27 mysql
srwxrwxrwx. 1 mysql mysql        0 May 13 10:27 mysql.sock
drwx------. 2 mysql mysql     4096 May 13 10:27 test
drwx------. 2 mysql mysql     4096 May 13 14:41 yr
[root@localhost mysql]# 
(2)建表并添加数据
下面,再次登录MySQL我们在上面创建的数据库中建表,并添加几条数据:
[root@localhost mysql]# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 23
Server version: 5.1.73 Source distribution

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> use yr;
Database changed
mysql> create table user(
    -> Id INTEGER AUTO_INCREMENT NOT NULL PRIMARY KEY,
    -> Name VARCHAR(50),
    -> age INTEGER);
Query OK, 0 rows affected (0.07 sec)

mysql> 

至此,yr数据库中便创建成功一个user表,有Id 、 Name 、age三个属性,其中Id为主键。
添加并查询数据:
mysql> insert into user(Id , Name , age)values(1,"aa",20);
Query OK, 1 row affected (0.10 sec)

mysql> insert into user(Id , Name , age)values(2,"bb",21);
Query OK, 1 row affected (0.00 sec)
mysql> select Id , Name , age from user;
+----+------+------+
| Id | Name | age  |
+----+------+------+
|  1 | aa   |   20 |
|  2 | bb   |   21 |
+----+------+------+
(3)从数据库表中删除数据
下面我们删除一条Id=1的数据:
mysql> delete from user where Id=1;
Query OK, 1 row affected (0.05 sec)

mysql> select Id , Name , age from user;
+----+------+------+
| Id | Name | age  |
+----+------+------+
|  2 | bb   |   21 |
+----+------+------+
1 row in set (0.00 sec)

mysql> 

(4)删除数据库表和数据库
删除数据库表和数据库使用drop命令:
mysql> drop table user;
Query OK, 0 rows affected (0.02 sec)
mysql> drop database yr;
Query OK, 0 rows affected (0.28 sec)

mysql> exit
Bye
[root@localhost mysql]# ll
total 20500
-rw-r--r--. 1 root  root     10717 May 13 10:34 create
-rw-rw----. 1 mysql mysql 10485760 May 13 10:27 ibdata1
-rw-rw----. 1 mysql mysql  5242880 May 13 10:27 ib_logfile0
-rw-rw----. 1 mysql mysql  5242880 May 13 10:27 ib_logfile1
drwx------. 2 mysql mysql     4096 May 13 10:27 mysql
srwxrwxrwx. 1 mysql mysql        0 May 13 10:27 mysql.sock
drwx------. 2 mysql mysql     4096 May 13 10:27 test
[root@localhost mysql]# 

以上是linux系统有关mysql安装、配置以及使用的全部内容。