MySQL数据库系统

一、理论知识点:

MySQL是一个真正的多线程、多用户的SQL数据库服务,凭借其高性能、高可靠性和易于使用的特性,成为服务器领域中最受欢迎的开源数据库系统

特点:

多线程、多用户

基于C/S架构

简单易用、查询速度快、安全可靠

1、MySQL的编译安装

准备工作

确认没有使用rpm方式安装的,mysql-servermysql软件包,否则将其现在

需要安装ncurses-devel

tar  xzf cmake-2.8.6.tar.gz  (cmakemysql高版本做配置)

Cd cmake-2.8.6

./configure

Gmake  && gmake  install   (编译及安装)

MySQL数据库系统搭建与使用_第1张图片

源码编译及安装

创建运行用户:

groupadd  mysql (创建组)

Useradd  -M -s  /sbin/nologin  mysql -g  mysql (创建用户并加入组)

wKiom1knvGjTp1HSAAAu5PaAJaY217.png-wh_50

解压mysql包,并切换到源码目录:

tar  xzf mysql-5.5.22.tar.gz  -C  /usr/src

Cd /usr/src/mysql-5.5.22

wKioL1knvHbAIXAlAAAwjGYddjI566.png

配置:

cmake-DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DSYSCONFDIR=/etc  -DDEFAULT_CHARSET=utf8-DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all

wKiom1knvIWCUjTKAAAvnnGLAVY063.png

-DCMAKE_INSTALL_PREFIX:指定将mysql数据库程序安装到某个目录下

-DSYSCONFDIR:指定初始化参数文件目录

-DDEFAULT_CHARSET:指定默认使用的字符集编码

-DDEFAULT_COLLATION:指定默认使用的字符集校对规则,utf8-general-ci是适用于                                                   utf8字符集的通用规则。

-DWITH_EXTRA_CHARSETS:指定额外支持的其他字符集编码

Make  && make  install   开始编译及安装

wKioL1knvJPCdvY_AAAXHqGzw8Y502.png

安装后的其他调整

对数据目录进行权限设置:chown -R mysql:mysql  /usr/local/mysql

wKiom1knvJyj8pCAAAAqVBmZDM4265.png

建立配置文件:

rm -rf  /etc/my.cnf   如果原来etc文件下有my.cnf文件可以删除

Cp support-files/my-medium.cnf /etc/my.cnf  (建立配置文件)

wKioL1knvKbBXwrBAAAhlyvLIZk254.png

初始化数据库:

/usr/local/mysql/scripts/mysql_install_db   --user=mysql

 --basedir=/usr/local/mysql    --datadir=/usr/localmysql/data

MySQL数据库系统搭建与使用_第2张图片

设置环境变量:

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

. /etc/profile   立即生效

MySQL数据库系统搭建与使用_第3张图片

添加系统服务:

                            Cp  su[[ort-files/mysql.server /etc/init.d/mysqld

Chmod  +x /etc/init.d/mysqld  (授予执行权限)

Chkconfig  --add mysql  (添加为系统服务)

MySQL数据库系统搭建与使用_第4张图片

启动mysql,并查看运行状态

Service   mysqld start

/etc/init.d/mysqld   status

Netstat  -anpt |  grep  mysql (查看监听端口)

MySQL数据库系统搭建与使用_第5张图片

Mysql服务器默认端口: TCP  3306

2、访问MySQL数据库

Mysql设置密码:

首次设置:mysqladmin  -u root  password 123456

修改密码:mysqladmin  -u root  -p   password 123456

登陆到MySQL服务器:mysql  -u root   -p

退出MySQL服务器: exit

MySQL数据库系统搭建与使用_第6张图片

二、使用MySQL数据库

1、查看数据库: show  databases

MySQL数据库系统搭建与使用_第7张图片

   查看当前mysql使用库中有哪些表:

Use  mysql;(在操作之前,需要先使用use语句切换到所使用的库)

Show  tables

MySQL数据库系统搭建与使用_第8张图片

   查看表的结构: describe  user

MySQL数据库系统搭建与使用_第9张图片

2、创建及删除库和表

创建新的库: create  database auth  auth为创建的库名)

wKiom1knv1jAYk7sAAAVqkh-kjo463.png-wh_50

创建新的表:

  create table 表名 (字段1名称,字段2名称 类型, ···,primary key (主键名));

例:(先进到库中,在创建表 use  auth)

createtable user name_user char 16 not nulluser_passwd char 48 default ‘’, primary key user_name));

wKioL1knv97yQYlfAAAtVsvQCgI643.png

删除一个表:drop  table auth.user

删除一个数据库:drop  database auth

3、管理表中的数据记录(增改删查)

插入数据库:

insert  into  表名 (字段1,字段2,···) values(字段1的值, 字段2的值,···);

例:(先进到库中,在向表中差入数据 use  auth;)

Insert  into user user_name,user_passwd values (‘zhangsan’  password(‘123456’));

Password代表密码是密文

MySQL数据库系统搭建与使用_第10张图片

查询数据记录:

select  字段名1,字段名2,··· from 表名 where 条件表达式

例:select  * from  auth.user

MySQL数据库系统搭建与使用_第11张图片

指定查询,若要查询张三的记录:

  Select  user_name,user_passwd  from auth.user  where  user_name= ‘zhangsan’;

MySQL数据库系统搭建与使用_第12张图片

修改数据记录:

Update auth.user setuser_passwd=password(‘’) where user_name= lisi’;

lisi的密码字串设为空值

Select  *  from  auth.user;   验证

MySQL数据库系统搭建与使用_第13张图片

删除数据记录:

delete  from auth.user  where  user_name=lisi

Select  *  from  auth.user  验证

MySQL数据库系统搭建与使用_第14张图片

三、维护MySQL数据库

1、数据库用户授权

授予权限:

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

例:grant  select on  auth.*  to user1@localhost  identified  by 123456’;

wKioL1knwRnhVmYLAAAfj_sJBn8731.png

查看权限:show  grants for  用户名@来源地址

Show  grants for  user1@localhost

MySQL数据库系统搭建与使用_第15张图片

撤销权限:(用数据库管理员)

revoke  权限列表 on  数据库名 . 表名 from  用户名@来源地址

例:revoke  select on  authUser  from user1@localhost

 

2、数据库的备份与恢复

备份数据库:

格式1:导出指定库中的部分表

Mysqldump  [选项库名 [表名1]  [表名2] ··· >  /备份路径/备份文件名

Mysqldump  -u root  -p  mysql user  >  mysql-user.sql

格式2:导出一个或多个完整的库(包括其中所有的表)

Mysqldump  [选项] --database  库名1 [库名2]··· >  /备份路径/备份文件名

Mysqldump  -u root  -p  --database auth  >   auth.sql

wKioL1knwYSQV8OhAAAoS9385rM861.png

格式3:备份MySQL服务器中所有的库

Mysqldump  [选项] --all-database  >  /备份路径/备份文件名

Mysqldump  -u root  -p  --all-databases  > all-data.sql

恢复数据库:

恢复表:mysql  -u root   -p  auth <  mysql-user.sql

恢复库:mysql  -u  root  -p   < auth.sql

wKiom1knwZTTrKVkAAAbZkRaP_Y137.png

总结:

n MySQL是一个开源的SQL数据库软件,默然使用TCP3306端口提供服务,配置文               件是/etc/my.cnf

n MySQL的基本管理操作包括查看数据库结构,创建及删除库和表,管理表中的数              据记录

n Mysqldump工具可以将数据库导出为SQL脚本,需要恢复时再通过mysql命令执行           导入

n 使用CRANTREVOKE指令可以对数据库用户进行授予或撤销权限的操作