红联Linux门户
Linux帮助

Linux(RHEL5构建LAMP网站服务平台)安装并管理MYSQL

发布时间:2015-04-12 22:28:44来源:忘真楠作者:忘真楠

安装并管理MySQL数据库

安装与启动控制

1.安装MySQL

创建运行MySQL数据库的系统用户、组(如果已存在,则无需重新创建)

#  useradd  -M  -s  /sbin/nologin  mysql

解压并释放源码包,并切换至展开的源码包目录

#  tar  zxvf  mysql-5.0.56.tar.gz  -C  /usr/src

#  cd  /usr/src/ mysql-5.0.56

使用 ./configure命令预配置编译选项

#  ./configure  - - prefix=/usr/local/mysql

编译安装

#  make

#  make  install

安装后的调整

建立配置文件(support-files文件下,提供了多个MySQL服务器配置样例,用于不同负载的数据库服务器)

#  cp  support-files/my-medium.cnf  /etc/my.cnf

初始化数据库(以mysql用户身份执行mysql_install_db脚本,对MySQL数据库进行初始化,修改相关目录的所有权限,以便mysql用户可以读写数据库)

#  /usr/local/mysql/bin/mysql_install_db  - - user=mysql

#  chown  -R  root.mysql  /usr/local/mysql

#  chown  -R  mysql  /usr/local/mysql/var

调整lib库路径(由于MySQL安装到了非标准的路径中,所以还需要将MySQL的库文件路径/usr/local/mysql/bin/mysql加入到系统的库文件搜索路径中,以便在用到时能够自动搜索到,增加文件搜索路径可以通过修改/etc/ld.so.conf文件实现

#  echo “/usr/local/mysql/bin/mysql” >> /etc/ld.so.conf

#  ldconfig

2.MySQL启动控制

使用mysql_safe脚本安全启动服务器

#  /usr/local/mysql/bin/musql_safe  - -user=mysql  &

#  netstat  -ntpl  |  grep  3306

将mysql添加为系统服务

在展开的MySQL源码目录中的support-files文件夹下,mysql.server文件可用来作为mysqld服务的启动脚本,将其复制到/etc/init.d目录下,并添加执行权限,使用 - -add选项的checkconfig命令将其设置为自动启动服务器即可

#  cd  /usr/src/mysql-5.0.56

#  cp  support-files/mysql.server  /etc/init.d/mysqld

#  chmod  x  /etc/init.d/mysql

#  chkconfig  - -add  mysql

#  chkconfig  mysql  on

设置MySQL程序的执行路径

#  export  PATH=$PATH:/usr/local/mysql/bin

#  echo “PATH=$PATH:/usr/local/mysql/bin” >> /etc/profile


数据库基本管理

1.登录及退出MySQL环境

在MySQL环境中每条数据库管理命令以分号 “;”结束

#  mysql  -u  root //对于刚初始化完毕的MySQL数据库来说,其管理员账户默认是root,没有密码

#  exit  退出

#  mysqladmind  -u  root  password  “p@ssw0rd”

#  mysql  -u  root  -p //注意该root用户是访问mysqld服务的,不是Linux系统的root

2.显示数据库结构

mysql> show datebases   //默认建立的三个数据库test、mysql、information_schema
Linux(RHEL5构建LAMP网站服务平台)安装并管理MYSQL

mysql> use  mysql ;  //应用数据库

mysql> show  tables;  //查看数据表信息
Linux(RHEL5构建LAMP网站服务平台)安装并管理MYSQL

MySQL数据库的数据文件存储目录 /usr/local/mysql/var/ 中,每个数据库对应一个目录,用于存储数据表文件,每一个数据表对应三个文件,后缀名分别为 .frm  .MYD  .MYI

#  ls  /usr/local/mysql/var/mysql | grep  user
Linux(RHEL5构建LAMP网站服务平台)安装并管理MYSQL

mysql> use  mysql ;

mysql>describe  mysql.user ;  //查看数据表结构
Linux(RHEL5构建LAMP网站服务平台)安装并管理MYSQL

3.数据库的创建与删除

mysql> create  database  auth ;    //创建新的数据库 create  database  数据库名;
Linux(RHEL5构建LAMP网站服务平台)安装并管理MYSQL

mysql> create  table  users  (user_name  char(30)  not null, user_passwd  char(20)  not  null  default  ‘123456’  ,primary  key  (user_name) );

//在数据库auth总创建表users; create  table  表名  (定义字段…….)
Linux(RHEL5构建LAMP网站服务平台)安装并管理MYSQL

mysql> drop  table  auth.users ;  //删除一个数据表 drop  table  [数据库名.]表名
Linux(RHEL5构建LAMP网站服务平台)安装并管理MYSQL

mysql> drop  database  auth ;  //删除一个数据库  drop  database  数据库名
Linux(RHEL5构建LAMP网站服务平台)安装并管理MYSQL

4.数据录入与维护

insert  插入新的记录

insert  into  表名  (字段1,字段2…….) values  (字段值1,字段值2………)
Linux(RHEL5构建LAMP网站服务平台)安装并管理MYSQL

 select 查询语句

select  字段名1,字段名2……… from  表名  where  条件表达式
Linux(RHEL5构建LAMP网站服务平台)安装并管理MYSQL

update修改记录

update  表名  set  字段名1=字段值1,字段名2=字段值2  where  条件表达式
Linux(RHEL5构建LAMP网站服务平台)安装并管理MYSQL

Flush  privileges ; //刷新用户授权信息
Linux(RHEL5构建LAMP网站服务平台)安装并管理MYSQL

delete删除数据记录

delete  from  表名  where 条件表达式
Linux(RHEL5构建LAMP网站服务平台)安装并管理MYSQL

为安全起见,建议删除MySQL的空用户
Linux(RHEL5构建LAMP网站服务平台)安装并管理MYSQL

注:以上图片上传到红联Linux系统教程频道中。


维护数据库及用户权限

1.数据库的备份与恢复

备份数据库(直接备份/var/local/mysql/var是一种比较快捷的方式,而更广泛使用的做法是使用mysqldump命令完成备份)

mysqldump  -u  用户名  -p  [密码]  [options]  [数据库名]  [表名] > /备份路径/备份文件名

#  mysqldump  -u  root  -p  auth > mysql-auth.sql  //备份整个auth数据库

#  mysqldump  -u  root  -p  mysql  host  user > mysql.host-user.sql 

//备份数据库mysql中的host 表.user表

#  mysqldump  -u  -root  -p  - -all-databases  > mysql-all.sql

//备份服务器中所有数据库内容

恢复数据库

mysql  -u  -root  -p  [数据库名]  <  /备份路径/备份文件名

#  mysql  -u  root  -p  <  mysql-all.sql

//因为mysql-all,sql包含所有数据库信息,所以可以不指定数据名

#  mysql  -u  -root  -p  <  mysql-auth.sql

#  mysql  -u  -root  -p  auth  <  mysql-auth.sql

#  mysql  -u  -root  -p  mysql  <  mysql.host-user.sql

//备份文件只包含单个数据库或表时,执行mysql导入时需要指定目标数据库名称

2.用户权限设置

授予权限

grant  权限列表  on  数据库名.表名  to  用户名@来源地址 identified by  密码

权限列表   使用all 关键字代表全部权限,同时授予多个权限时,以逗号分开

表名   可以使用通配符 * 表示指定数据库中的所有数据表

用户名@来源地址  用来设置谁能连接,从哪连接,用户名不能使用通配符,但是可以使用两个连续的单引号 ‘’ 表示空字符串,可以用于匹配任何用户,来源地址表示连接数据的客户机地址,可使用%作为通配符,匹配某个域内的所有地址%.benet.com,或使用带掩码标记的网络地址 192.168.1.0、24.

Identified by   用于设置用户连接数据库时使用的连接字符串,密码经过加密后存储于mysql库中user表中,省略时,密码部分为空

例:

mysql>grant  select  on  mysql.user  to  wang@’localhost’  identified  by  ‘123’;

mysql> grant  all  on  auth.*  to  admin@’localhost’  identified  by  ‘123’;

mysql>grant  select  on  auth.*  to  admin2’192.168.10.0/24’  identified  by  ‘123’

查看权限

show  grants  for  用户名@域名或IP

mysql>show  grants  for  root@’localhost’;

mysql>show  grants  for  admin3@’%.benet.com’;

撤销权限

revoke  权限列表  on  数据库名.表名  from  用户名@域名或IP

mysql> revoke  all  on  auth.*  from  admin3@’%.benet.com’;

mysql> show  grants  for  admin3@’%.benet.com’;