6.1.1 MySQL简介
1.MySQL特点
MySQL数据库是Sun公司开发、发布和支持的一个关系数据库管理系统,是世界上最流行的开放源代码数据库之一。MySQL作为一种服务器后台数据库,由于具有丰富的应用编程接口且功能强大、灵活多变,受到了广大个人用户和许多大型公司机构的青睐,如雅虎、阿尔卡特-朗讯、Google公司、诺基亚公司、百度等公司就采用了MySQL数据库。MySQL数据库主要有以下特点:
(1)可扩展性和灵活性
(2)强大的数据保护功能
(3)支持大型的数据库
(4)超强的稳定性
(5)强大的查询功能
2.MySQL运行环境首先安装MySQL数据库,可以在安装Linux操作系统时,选择安装MySQL数据库,也可以在安装Linux后访问MySQL网站,下载最新稳定发行版进行安装。
(1)MySQL 服务的启动与停止在使用MySQL数据库之前,必须首先启动MySQL服务,有两种方法可以启动MySQL服务,第1种可以在linux图形操作界面下,选择【系统】/【管理】/【服务】启动、关闭、重启MySQL服务。
第2种方法是在提示符状态下进行操作
#service mysqld status
#service mysqld start
#service mysqld restart
#service mysqld stop
(2)连接与断开MySQL服务器
① 连接MySQL服务器的命令是mysql,mysql的使用语法如下,
mysql [-h host] [-u username] [-p[password]]
host是要登录的主机名,username与password 分别是MySQL 的用户名与密码,MySQL的初始管理帐号是root,没有密码,这个root用户不是Linux的系统用户。MySQL默认用户是root,由于初始没有密码,第一次进时只需键入MySQL即可。如果要在命令行上,在-p选项后提供密码,则不能插入空格(例如,如-pmypassword,不是-p mypassword)。但是,不建议在命令行输入密码,因为这样密码以明文方式显示,密码能被在计算机上登录的其他用户窥探到。
② 断开MySQL服务器成功地连接后,可以在提示符下输入quit(或\q)随时退出,也可以按Ctrl+D键断开MySQL服务器,
③ 显示服务器的版本号和当前日期执行mysql > select version(),current_date;
(3)MySQL的几个重要目录
MySQL数据库安装完成后,它的数据库文件、配置文件和命令文件分别在不同的目录,同时 Linux操作系统本身的目录结构比较复杂,所以了解MySQL的安装目录非常重要,下面就介绍一下这几个目录:
数据库目录:/var/lib/mysql/
配置文件:/usr/share/mysql(mysql.server命令及配置文件)
相关命令:/usr/bin(mysqladmin mysqldump等命令)
启动脚本:/etc/rc.d/init.d/(启动脚本文件mysql的目录)
6.1.2 MySQL的简单使用连接上MySQL服务器后,就可以对MySQL数据库进行管理。MySQL作为网络数据库,功能非常强大,下面介绍一些MySQL数据库常用基本操作:创建数据库、创建数据表、查询、向数据表中添加数据、修改数据表中数据、删除数据、修改表的结构、修改数据库、添加用户账号等。
1.数据库结构
(1)显示数据库列表执行mysql > show databases;
(2)显示数据库中的表依次执行mysql > use mysql;和mysql > show tables;命令在对某一个数据库进行各种操作前,必须用use语句打开这个数据库。MySQL数据库对大小写不敏感;每个命令都以分号结束,除了个别命令之外,如use、quit。
(3)查看数据库中func表的结构执行mysql >describe func;命令
2.数据库管理
(1)创建一个新的数据库
mysql >create database school;
此语句将创建一个名为“school”的数据库,此时数据库中还没有任何数据表。
(2)创建一个新的数据表
mysql >use school;
mysql > create table student (
id char(6) primary key,
name varchar(8),
sex char(1),
birth date);
(3)向表中添加记录新建的student表是空表,student表中有四个字段,在进行添加记录的时,括号内应有四个数据,现在向student表中添加两条记录。
mysql > insert into student values('060001','Tom','M','1988-12-22');
mysql > insert into student values('060002','Jerry','F','1988-01-01');
可以通过select查询命令查看student表中的记录。如图6-8所示。
(4)修改记录如果表中的数据出现变化,或者添加数据有误,就要对数据进行修改,例如:将Tom的出生年月改为1988-02-02,如图6-9所示。
mysql > update student set birth='1988-02-02' where name='Tom';
mysql >select * from student;
(5)删除纪录例如:在student表中删除Tom的纪录,如图6-10所示。
mysql > delete from student where name='Tom';
mysql >select * from student;
(6)数据表结构修改例如:将数据表student中name varchar(8)字段更改为varchar(10),可通过以下命令语句实现,如图6-11所示。
(7)添加新字段例如:在student数据表添加一个字段 addr varchar(40),可通过以下命令语句实现,如图6-12所示。
(8)删除某个字段例如:在student数据表删除刚才添加的字段 addr,可通过以下命令语句实现。
mysql > alter table student drop colum addr;
(9)修改表名例如:把student表改名为students表,如图6-13所示。
3.向MySQL添加新用户账户在数据库中,用户权限的设置是非常重要的。在MySQL数据库中,权限是通过登录到数据库的用户账号和主机名来确定使用者的使用权限,主要涉及到该使用者在数据库上的查询、插入、修改、删除等操作的权限,可以用三种方式创建MySQL账户:
使用GRANT语句直接操作MySQL授权表使用MySQL账户管理功能的第三方程序,例如phpMyAdmin
最好的方法是使用GRANT语句,因为这样更精确,错误少。
(1)添加一个用户user_1密码为123456,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入MySQL,然后键入以下命令,
mysql> grant select,insert,update,delete on *.* to user_1@"%" identified by "123456";
上面添加新用户账号的方法是十分危险的,如果获取了user_1的密码123456,那么就可以在互联网上的任何一台电脑上登录MySQL数据库并拥有了所有的权限。可以采用下面这种方法解决上述问题。
(2)添加一个用户user_2密码为123,让此用户只可以在localhost上登录,并可以对数据库userdb进行查询、插入、修改、删除的操作 (localhost指本地主机,即MySQL数据库所在的那台主机)。
mysql>grant select,insert,update,delete on userdb.* to user_2@localhost identified by "123";
这样即使用获取了user_2的密码,也无法从互联网上直接访问数据库,只能通过 MySQL主机来操作userdb库。