免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1824 | 回复: 0

MYSQL服务器的安装和管理 [复制链接]

论坛徽章:
0
发表于 2009-09-01 16:47 |显示全部楼层

MYSQL服务器的安装和管理

一.           MYSQL的安装(如果有了,可以不用装)
1. 将mysql-5.0.18.tar.gz复制到/usr/local后,解压
   Tar –zvxf mysql-5.0.18.tar.gz
2. 进入MYSQL的安装目录进行安装
   ./configure –prefix=/usr/local/mysql
3 . make && make install
4. 安装完毕后,以管理员root身份进入安装目录/usr/local/mysql下,使用下面命令安装mysql默认的数据表。
   bin/mysql_install_db  --user=mysql
  5.创建权限并启动
     chown  –R root  .
     chown  -R mysql var
     chgrp   -R mysql  .
     bin/mysqld_safe  --user=mysql &
6. 如果需要开机启动的话,就添加到/etc/rc.local文件中
/usr/local/mysql/bin/mysqld_safe  --user=mysql

二.           MYSQL数据库的管理
前提:建立数据库,数据库名字为person,并在其中建立一张名字为basicinfo的表记录个人的基本信息,包括学号、名字、性别、住址、电话等信息。另外,还需要为MYSQL数据库的管理员设置密码,并在basicinfo表的名字字段上建立索引。
1.MYSQL管理员密码修改和登录
   如果是第一次安装MYSQL,访问数据库服务器的用户只能是管理员(即root用户)。
默认情况下root的初始密码为空,本地连接MYSQL是输入mysql即可。如果要修改
MYSQL管理员密码,需要先退出MYSQL命令状态,然后在使用下面命令。
#cd mysql/bin   
# ./mysqladmin –u root password 123456

如果要以管理员root的身份连接到本机MYSQL,可以用以下命令
mysql –u root –p

2. 数据库的创建和删除
A.    创建一个名为person的数据库
            Mysql>create database person;
       B. 查看刚才创建的数据库 show databases;
C. 删除数据库 drop database 数据库名;

3. 表的创建、复制、删除和修改
A.    选择要创建表的数据库 use person;
B. 建表basicinfo表
Create table basicinfo (
no varchar(7) not null,
name varchar(20) not null,
sex char(1) default ‘m’,
birthday date,
phonenum varchar(15),
address varchar(30)
;
创建basicinfo表后,可以describe命令查看所建表的结构。具体命令格式如下:
   mysql> describe basicinfo;
C.为了方便用户创建新表,Mysql提供了复制表结构的功能。可以使用下面SQL命令来复制表结构:
         create table 新表名称 like 源表名称;
D.    删除数据库中一个或多个表的命令,命令格式如下:
         drop table 表名称1[,表名称2,…];
E. 修改表的结构,比如:增加、删除或修改表中字段,更改表的名称、类型,创建、撤消索引,等等,则可以使用alter命令,命令格式如下:
          alter table 表名称 更改动作1[,更改动作2,…];
  例如若要将表basicinfo中address字段的类型从varchar(30)变为varchar(35),则可
  以使用下列命令:
      Mysql> alter table basicinfo modify address varchar(35);
         若要在表basicinfo中增加一个字段email,则可以使用下列命令:
            Mysql> alter table basicinfo add email varchar(20);
         若要将表basicinfo中 phonenum字段的名称变为cellphone,且将该字段类型改为  
        varchar(15),则可以使用下列命令:
            Mysql> alter table basicinfo change phonenum cellphone varchar(15);
         若要在表basicinfo中删除一个字段email,则可以使用下列命令:
           Mysql> alter table basicinfo drop email;
        若要将表basicinfo的名称改为infomation,则可以使用下列命令:
            Mysql> alter table basicinfo rename to information;

4. 表中数据的插入、删除和修改
建立数据库和表后,紧接着就是在表中存储数据。在MYSQL中,通常使用数据操作语言(DML)来插入、删除和修改表中记录。
A.    数据的插入命令,命令的格式如下:
     insert into 表名称(字段名1,字段名2,…)
     values (字段1的值,字段2的值,…);
例如要在表infomation中插入一组数据,可以使用下列命令:
Mysql> insert into information (no,name,sex,birthday,cellphone,address)
       values (‘0081’,’YY’,’f’,’2009-01-01’,’010-51816928’,’beijing’);
做完后可以用select查看一下情况:select  * from information;
insert命令还可以连续插入多条记录,比如要在表infomation中插入两条记录,可以使用下面insert的缩写命令格式:
Mysql> insert into information values
       (‘0071’,’YY’,’f’,’2009-02-02’,’010-51816928’,’beijing’),
      (‘0099’,’TT’,’f’,’2009-09-09’,’010-51816929’,’beijing’);
B.表中数据的修改命令,它用于表中数据的更新,命令格式如下:
update 表名称 set 字段名1=字段值1[,字段名2=字段值2,…]
where 条件表达式;
若要修改表infomation中no字段值为0071的记录,将其对应的birthday值改为2009-03-03,cellphone的值改为010-88888888,可以使用下列命令:
Mysql>update infomation set birthday=20090303,cellphone=’010-88888888’ where no=’0071’;
查看修改的用 select * from information where no=’0071’;
C.删除表中的数据,命令格式如下:
       delete from 表名称 where 条件表达式;
   若要删除表infomation中no字段值为0099的记录,可以使用以下命令:
       Mysql>delete from infomation where no=’0099’;
   查看修改的用 select * from information .

5. 索引的创建和删除
MYSQL提供了创建和删除索引的命令,使用create index命令语句可以向已经存在的表中添加索引,其基本命令格式如下:
    Create [unique] index 索引名 on 表名称 (字段名1[(长度)],…);
若要为表infomation的nama字段创建名为iname的索引,可以使用下列命令格式:
    Mysql>create index iname on infomation (name);

Drop index命令语句用于删除索引,其基本命令格式如下:
    Drop index 索引名 on 表名称;
若要删除表infomation中名为iname的索引,可以使用下列命令格式:
    Mysql>drop index iname on information;

三.           MYSQL服务器的用户管理
前提:对了对person数据库进行管理,需要建立一个名字为guest的用户,允许该用户从任意主机都能登录,并对它赋于一定权限,使其可以对person数据库进行一切操作,具备与管理员对person数据库一样的权限。
1. MYSQL服务器的访问控制
   首次安装mysql时,安装程序会在数据库mysql中设置5个授权表,即user、db、host、tables_priv、columnts_priv。这五个表共同决定可以连接到数据库服务器的用户、从那连接以及其可以执行的操作。在初始化后,有3个表(host、tables_priv、columnts_priv)为空,则user、db这两个表就决定了MYSQL的默认访问规则。

2. 用户的创建和删除
   User表从用户角度规定了用户帐户的权限,若要查看MYSQL数据库中表user前四个字段的内容,可以使用下列命令格式:
     Mysql>select host,user,password,select_priv from mysql.user;
db表规定了数据库的被访问权限,若要查看MYSQL数据库中表db前四个字段的内容,可以使用下列命令格式:
     mysql>select host,db,user,select_priv from mysql.db;
那么如何为数据库开放一个用户,使其可以从任意主机连接到数据库服务器啦?若要创建一个新用户guest满足上述要求,可以使用下列命令:
    Mysql>insert into mysql.user (host,user,password)
          Values (‘%’,’guest’,password(‘guest’));
这里需要用到password()函数为密码加密,这样表user的password字段中保存的就是加密过的密码。命令执行结果后,可以用
      Mysql>select host,user,password,select_priv from mysql.user; 查看到user表中已经成功添加了guest用户。
接下来需要重载MYSQL授权表,可以使用下列命令实现:
     Mysql>flush privileges;
Guest用户创建成功后,就可以从远程客户端使用下列命令连接数据库服务器,进而用来测试新的用户是否可用。
     Mysql –h 服务器的IP –u guest –p
在用户正确输入密码后,就可以成功连接到数据库服务器了。使用命令show databases可以查看用户当前可以使用的数据库。
   如果要关闭远程主机连接数据库服务器的功能,只需删除用户guest即可,可以使用下列命令实现:
     Mysql>delect from mysql.user where user=’guest’;
删除后需要用命令flush privileges重载MYSQL授权表,命令执行后,再用
     Mysql>select host,user,password,select_priv from mysql.user; 查看。

3. 用户权限的授予和撤消
   为方便地管理用户的权限,MYSQL数据库提供了授予和撤消用户权限的命令,如下例子:
   若要授予用户guest可从任意主机连接到数据库服务器,并可完全访问person数据库的权限,可以使用下列命令:
       Mysql>grant all on person.* to guest@’%’  identified by ‘guest’;
然后用Mysql>select host,db,user,select_priv from mysql.db;查看

若要新建一个用户lab,使其可以从子网172.18.12.0中任何主机连接到数据库服务器,进而可读取person数据库内容,可使用下列命令格式:
   Mysql>grant select on person.* to
[email=lab@'172.18.12.*]lab@’172.18.12.*[/email]
’ identified by ‘grid’;
这条命令表示,lab用户以grid为密码可以从子网172.18.12.0中的任何主机连接到数据库服务器,并可以访问person数据库。然后用Mysql>select host,db,user,select_priv from mysql.db;查看。
可以使用下列命令查看表mysql.user中与用户lab有关的记录,以检验上一条命令:
Mysql>select host,user,password,select_priv from mysql.user where user=’lab’;
命令执行后,mysql创建了用户lab并设置了密码,lab可以从子网172.18.12.0/24中任一主机连接到数据库服务器,但授权表user中与lab对应的用以设置全局权限的各个字段值都为N(select_priv字段),所以,MYSQL并没有授予lab任何全局权限。
查看表mysql.db中与用户lab相关的记录可以使用如下命令:
    Mysql>select host,db,user,select_priv from mysql.db;
命令执行后可以用Mysql>select host,db,user,select_priv from mysql.db;查看。但查看到,授权表db中与用户lab对应的用以设置权限的select_priv字段值为Y,所以用户lab有权限浏览数据库person中的内容。
除了创建新用户以外,还可以对已有用户的权限进行变更。若要授予用户guest从本地连接到数据库服务器并对person数据库可完全访问的权限,且可以将其所有权限授予别的用户,则可使用下列命令:
Mysql>grant all on person.* to guest@localhost identified by ‘guset’ with grant option;
命令执行为用户guest授权后,可以使用下列命令检查授予该用户的权限:
  Mysql>show grants for guest@localhost;
与上一命令相反,若要撤消用户guest@localhost对person数据库所有的创建、删除数据库的权限,可以使用下列命令:
Mysql>revoke create,drop on person.* from guest@localhost;

注意:
    MYSQL提供了两种修改授权表中访问权限的方法:一是用INSERT、UPDATE、DELETE等DML语句来修改信息;二是用GRANT和REVOKE语句。第一种方法虽然直观,但各授权表中字段数很多,容易出错,所以通常使用第二种。


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/64520/showart_2043234.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP