5.4 MySQL常用操作

本节从连接MySQL数据库服务器、修改密码、增加用户等方面来讲述一些MySQL的常用命令。

5.4.1 连接MySQL服务器

连接MySQL服务器可以使用如下命令:

    mysql -h主机地址 -u用户名 -p用户密码

其中,各参数的意义如下:

● -h:用户欲连接的数据库服务器IP地址;

● -u:连接数据库服务器使用的用户名;

● -p:连接数据库服务器使用的密码。

例如用户若想连接到本机上的MySQL,则可按照如下步骤操作:

(1)打开终端(命令行方式),进入目录mysql/bin;

(2)键入命令mysql -uroot -p,回车后根据系统提示输入密码;

(3)如果刚安装好MySQL,超级用户root是没有密码的,故直接回车即可进入到MySQL了,系统将显示MySQL的提示符“mysql>”

若用户欲连接到远程主机上的MySQL,假设远程主机的IP为:159.226.49.5,用户名为mysql,密码为mysql。则键入以下命令:

    #mysql -h 159.226.49.5 -u mysql -p mysql

5.4.2 退出MySQL服务器

退出MySQL非常简单,使用exit命令即可,命令格式如下:

    #exit

5.4.3 密码管理

数据库系统还可以对用户密码进行管理,用户可以添加密码,也可以修改密码。若用户原来没有设置密码,需要增加密码,可以使用带password参数的mysqladmin命令,命令格式如下:

    mysqladmin -u 用户名 password 新密码

例如给Linux的root账户访问数据库加个密码ab12的操作步骤如下:

首先在终端下进入目录mysql/bin;

然后键入以下命令:mysqladmin -uroot -password ab12。

如果用户已经设置了密码而想要更改密码,可以使用带-p参数和password参数的mysqladmin命令,该命令格式如下:

    mysqladmin -u用户名 -p旧密码 password 新密码

例如:将上述root用户的密码更改为cd34,命令格式如下:

    mysqladmin -uroot -pab12 password cd34

5.4.4 增加新用户

为数据库系统添加新用户,并赋予该用户对数据库一定的访问权限,使用grant命令。grant命令格式如下:

    grant 权限 on 数据库.* to 用户名@登录主机 identified by \"密码\";

该命令实现的功能就是让某个用户可以通过密码在特定主机上对特定数据库有特定访问权限。

例如:若欲增加一个用户gong,密码为cai,该用户可以在任何主机上登录数据库,并对所有数据库有查询、插入、修改、删除的权限,那么要按照如下步骤操作:

首先用以root用户连入MySQL。

然后键入如下命令:

    grant select,insert,update,delete on *.* to gong@\"%\" Identified by \"cai\";

为了安全起见,可以设置用户只能在本地主机上对数据库进行相关操作。例如可以为数据库系统增加一个用户gong2,密码为chun,只允许在安装MySQL数据库系统的主机上登录,并可以对数据库系统中所有数据进行查询、插入、修改、删除的操作。这样,非法用户即使通过某些非法手段盗取了gong2的密码,他也无法从Internet上直接访问数据库,而只能通过MySQL所在主机上的Web页来访问了。若要实现这样的功能,可以使用如下命令:

    grant select,insert,update,delete on *.* to gong2@localhost identified by \"chun\";

若不想让gong2拥有密码,可以使用如下命令实现:

    grant select,insert,update,delete on *.* to gong2@localhost identified by \"\";

5.4.5 命令分行

MySQL的命令是使用分号作为命令结束标志的,所以若用户输入命令时,回车后发现忘记加分号,则命令并不会被提交给系统执行,需要用户输入一个分号。当输入分号并回车后命令才提交给数据库系统执行。正因为如此,用户可以把一个完整的命令分成几行来输入,输入完成后用分号作结束标志就可以提交。

5.4.6 命令历史记录

为了方便用户命令的输入,MySQL保存了用户输入命令的历史记录。用户可以使用光标上下键调出以前输入过的命令。

5.4.7 显示数据库列表

可以使用show database命令显示数据库系统中的数据库列表。该命令的格式为:

    show databases;

系统初始有两个数据库:MySQL和test。MySQL数据库很重要,因为其保存了MySQL的系统信息,如数据字典,用户及其密码等信息都保存在MySQL数据库中。用户修改密码和新增用户等操作,实际上就是对这个数据库的数据进行操作。

5.4.8 显示数据库中的数据表

若欲显示库中的数据表,首先必须先打开数据库,打开数据库使用use命令,use命令的用法如下:

    use 数据库名;

打开数据库以后就可以显示数据库中所有的表了。显示数据库含有的表使用show tables命令。该命令用法如下:

    show tables;

5.4.9 显示数据表的表结构

显示数据表的结构使用describe命令,该命令显示数据表包含哪些属性,每个属性是什么数据类型,占用多少空间等信息。该命令的用法如下:

    describe 表名;

5.4.10 新建数据库

新建数据库使用create database命令。该命令非常简单,用法如下:

    create database 库名;

例如,若要查看系统中是否有school数据库,如果存在,则删除该数据库,然后再新建school数据库,如果系统中没有school数据库,则直接新建该数据库。欲实面该功能,可以在MySQL中使用如下命令:

    //先判断是否存在school数据库,如果存在则删除该数据库
    drop database if exists school;
    create database school;       //建立库school

5.4.11 新建数据库表

新建数据库表也要先打开数据库,打开数据库也是use命令,打开数据库后就可以使用create table命令新建表了。create table命令用法如下:

    create table 表名 (字段设定列表) ;

例如,若要往上述新建的school数据库中添加一个student的表,可以使用如下命令:

    //打开数据库school
    use school;
    //新建student表
    create table student
    (  id         int(3)     auto_increment not null primary key,//学生证号码
        name       char(10)     not null,                            //学生姓名
        age        int(2)       not null,                            //学生年龄
        address    varchar(50)  default ‘北京’,                    //学生地址
        entertime  date                                               //入学时间
    );

5.4.12 删除库和删除表

删除数据库或表使用drop命令。删除数据库使用drop database命令,删除表使用drop table命令。这两个命令的用法如下:

    drop database 库名;
    drop table 表名;

例如,如果用户想要删除上述建立的表student,可以使用下述命令:

    drop table student;

如果用户欲删除上述建立的数据库school,可以使用下述命令:

    drop database  school;

5.4.13 将表中记录清空

将表中记录清空使用delete命令,该命令的用法如下:

    delete from 表名;

将上述student表中所有年龄大于25的学生记录删除,可以使用下述命令:

    delete from student
    where age >25;

5.4.14 显示表的记录

显示表中的记录使用select命令。select命令用法如下:

    select * from 表名
    where 条件;

例如,若要显示上述表student中年龄大于25的所有学生记录,可以使用如下命令:

    select *
    from student
    where age >25 ;

5.4.15 向表中插入记录

向表中插入记录,使用insert命令。insert命令的用法如下:

    insert into 表名
    属性1,属性2…属性n
    values( 属性1的值,属性2的值…属性n的值);

例如向上述student表添加一条学生记录,姓名为“张三”,年龄为25,地址为“北京市海淀区”,入学年龄为2005年7月18日,使用的命令如下:

    insert into student
    age , address , entertime
    values(25 , ‘北京市海淀区’, 2005-07-18) ;

5.4.16 MySQL数据导入和备份

本节主要介绍如何使用MySQL进行数据的导入以及备份数据库。

1.将文本数据导入到数据库中

把文本数据导入到数据库中,必须保证文本数据符合特定的格式。表字段数据之间用制表符(Tab)隔开,空值用\\n来代替。如果文本数据不符合这个格式,将导致数据导入失败。

导入文本数据使用如下命令:

    load data local infile \"文件名\" into table 表名;

例如,对于上述的student数据库表,假如有一个student.txt文件,文件内容如下:

3.龚静娴23北京中关村1999-10-10

4.郭志清26广州海大 2004-12-20

要将该文件内容导入到数据库表student中,使用命令如下:

    load data local infile \"student.txt\" into table  student;

如果导入正常,使用select命令将可以显示新导入的两行记录。

2.备份数据库

使用终端的mysqldump命令备份数据库,该命令的用法如下:

    mysqldump --opt 数据库名>文本文件名

例如,要将上述建立的school数据库保存到school.db文本文件中,可以使用如下命令:

    mysqldump --opt school>school.db