MySQL数据库系统

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

7-MySQL数据库系统

一、MySQL服务基础

【特点】:

 多线程、多用户的SQL数据库服务

 基于C/S(服务器/客户端)架构

 高性能、安全可靠

 简单易用

1)、MySQL的编译安装

        MySQL5.x系列版本的使用最为广泛,稳定性、兼容性都不错

1、准备工作

rpm  -q  mysql mysql-server                    /先查看下mysql相关软件,并卸载

2、源码编译及安装

【创建运行账户】

   Useradd -M  -s /sbin/nologin  mysql       /必须要有mysql程序用户

【解包】

   tar zxf  mysql-5.1.55.tar.gz  -C /usr/src

   cd /usr/src/mysql-5.1.55

【配置】

   ./config --prefix=/usr/local/mysql --with-charset=utf8  

   --with-collation=utf8_general_ci  --with-extra-charset=gbk,gb2312


--prefix:指定将mysql数据库程序安装到哪个目录,如/usr/local/mysql

--with-charset:指定默认使用的字符集编码,应与校对规则相对应

--with-collation:指定默认使用的字符集校对规则,utf8_general_ci是适用于utf-8字符集的通用规则

--with-extra-charset:指定额外支持的其他字符集编码,如gbk、gb2312等

【修改config.h配置文件】

      vim  /usr/local/mysql-5.1.55/indude/config.h

             ……//省略部分内容

              #define  HAVE_CHARSET_gbk  1                /添加相应字符集的编译定义

              #define  HAVE_CHARSET_gb2312  1                

【编译并安装】

      make

      make  install

3、安装后的其他调整为中型数据库


【建立配置文件】

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

【初始化数据库】

   cd /usr/local/mysql/bin/

   ./mysql_install_db  --user=mysql


   chown -R  root:mysql  /usr/local/mysql

   chown -R  mysql  /usrl/local/mysql/var/     /var是所有数据库的存放点/

【优化执行路径、程序库路径】

   ln -s  /usr/local/mysql/bin/*  /usr/local/bin/

   ln -s /usr/local/mysql/lib/mysql/* /usr/lib/

   ln -s /usr/local/mysql/include/mysql/* /usr/include/

4、添加系统服务

cd  /usr/src/mysql-5.1.55

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


chmod  a+x /etc/rc.d/init.d/mysqld             /改权限为所有人可执行

chkconfig  -add mysqld                        /添加为系统服务


/etc/init.d/mysqld  start                    /启动mysqld服务

netstat  -anpt |  grep  3306                /3306为mysqld端口号

2)、访问MySQL数据库

1、登录到MySQL服务器

   MySQL数据库的默认管理员账号为root,密码为空

   mysql  -u root                               /-u选项用于指定认证用户

   mysql  -h 192.168.4.1  -u  zhangsan -p      /以张三用户登录到其他的服务器

      -h:指定目标主机

      -p:进行密码校验

   mysql  -u root  -p                         /当root已设密码时,需要加-p来登录

   mysqladmin  -u root  password  “密码”    /设置root身份的密码

2、执行MySQL操作语句

Ø验证成功以后将会进入到提示符为“mysql>”的数据库操作环境

Ø每一条mysql语句以分号‘;’表示结果

Ø输入时可以不区分大小写

【查看当前数据库服务的日志文件信息】

   show  master logs;

3、退出msyql>操作环境

   exit或quit

二、使用MySQL数据库

1)、查看数据库结构

Ø在每一台MySQL服务器中,支持运行多个库

Ø每一个库相当于一个容器,其中存放着许许多多的表

1、查看当前服务器中有哪些库

show  databases;


——mysql服务器默认有三个库:test、mysql、information_schema


2、查看当前使用的库有哪些表

Ø首先得使用‘use’语句切换到所使用的库

Ø默认存放点:/usr/local/mysql/var

Ø数据表对应三个文件的后缀名:.frm  .MYD .MYI

use  mysql;         /切换库

show  tables;      /查看有哪些表

3、查看表的结构

use  mysql;            /切换库

describe  user;       /查看user表的结构

2)、创建及删除库和表

1、创建新的库

  create  database auth;         /auth为库名

2、创建新的表

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

【例如:在auth库中创建users表】


      use auth;


create  table users (user_name char(16) not null,user_passwd  char(48) default’’,primary  key (user_name))

3、删除一个数据表

【方法一】:drop  table  auth.users;        /指定’库名.表名’作为参数

【方法二】:use  auth;                     /先进入库

          drop  table users;             /后删除表

4、删除一个数据库

drop  databases auth;             /指定库名即可

3)、管理表中的数据记录

1、插入数据记录

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

【例如:在users表中,插入名为zhangsan的家伙,密码为123456】

use  auth;

insert  into  users (user_name,user_passwd) values    (‘zhangsan’,password(‘123456’));

《注意》:

写上password时,为密文显示,如不写这一项,此密码是明文显示

2、查询数据记录

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

【例如:查看users表中所有的记录】

   select  * from  auth.users;           /通配符*表示所有字段

【例如:查找users表中’zhangsan’的记录,输出其中用户名、密码字段的信息】

select user_name,user_passwd  from  auth.users whereusername=’zhangsan’

3、修改数据记录

  update  表名 set  字段名1=字段值1......where  条件表达式

【例:修改users表中用户名为’lisi’的记录,将密码字串设为空值】

update  auth.users  set user_passwd=password(‘’) where user_name=“lisi”;

【将数据库用户root的密码设为‘123456’】

update  mysql.user  set password=password(‘123456’) where user=‘root’;

flush  privileges;             /刷新用户授权信息

4、删除数据记录

delete  from  表名 where  条件表达式

【例:删除users表中用户名为‘lisi’的数据记录】

delete  from  auth.users where  user_name=‘lisi’;

select  *  from auth.users;                        /查看一下结果

【删除user表中记段为空的用户记录】

delete  from  mysql.user where  user=‘’;

三、维护MySQL数据库

1)、数据库的用户授权

1、授予权限

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

【grant语句】

Ø专门用来设置数据库的访问权限

Ø当指定的用户名不存在时,grant语句将会创建新的用户

权限列表:用于授权使用的各种数据库操作,以逗号进行分隔,如“select  insert update”,用”all”表示所有权限

库名.表名:用于指定授予权操作的库名和表的名称,可以使用通配符“*”,如,使用“auth.*”表示授权操作对象为auth库中的所有表

用户名@来源地址:用于指定用户名称和允许访问的客户机地址,即谁能连接,能从哪里连接。来源地址可以是域名、IP地址,还可以使用“%”表示某个区域、网段内的所有地址。例如:%.benet.com,192.168.1.%等

identified  by:用于设置用户连接数据库时所使用的密码字符串,在新建用户时,若省略‘indetifiedby’,则用户的密码为空

【例:添加名为xiaoqi的数据库用户,并允许从本机访问,对auth库中的所有表有查询的权限】

grant select on auth.* to ‘xiaoqi’@‘localhost’ indentifiedby ‘12345’;

【例:新建bdqn库,并授权从IP地址为192.168.4.19的主机连接,用户名为aaa,密码为pwd123,允许在ddqn库中执行所有操作】

create  databases  bdqn;

grant all on bdqn.* to ‘aaa’@‘192.168.4.19’indentified by ‘pwd123’;

2、查看权限

  show  grants for  用户名@来源地址

【例:查看用户aaa从主机192.168.4.19访问数据库时的授权信息】

   show  grants for  ‘aaa’@‘192.168.4.19’;

3、撤销权限

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

【例:撤销用户xiaoqi从本机访问数据库auth的所有权限】

   revoke  all on  auth.*  from  ‘xiaoqi’@‘localhost’;

   show  grants for  ‘xiaoqi’@‘localhost’;

(2)、数据库的备份与恢复

1、备份数据库

【格式一】:导出指定库中的部分表

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

如:mysqldump  -u  root -p  mysql  user > mysql-user.sql

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

   mysqldump  [选项]  --databases  库名1 [库名2]..> /备份路径/备份文件名

如:mysqldump  -u  root -p  --databases  auth >  auth.sql

【格式三】:备份mysql服务器中所有的库

   mysqldump  [选项]  --all-databases  > /备份路径/备份文件名

如:mysqldump  -u  root -p  --opt  --all-databases  > all-data.sql

【选项含义说明】:

      -u:指定数据库用户名

      -p:指定数据库密码

      --opt:以优化执行速度

【查看备份内容】

#使用grep、less、cat等文本工具可以查看脚本内容

#grep -v  “^- -”  auth.sql |  grep  -v  “^/”  |grep -v “^$”

2、恢复数据库

   mysql  [选项]  [库名]  [表名]  <  /备份路径/备份文件名

【例如:从备份文件mysql-user.sql中将表导入到test库】

   mysql  -u root  -p  test <  mysql-user.sql

【若恢复完整的库,则执行导入时无需指定库名】

   cd  /usr/local/mysql/var/

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



本文转自甘兵 51CTO博客,原文链接:http://blog.51cto.com/ganbing/1202341,如需转载请自行联系原作者

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
7天前
|
存储 安全 搜索推荐
酒店管理系统的数据库的应用以及选择
酒店管理系统数据库关乎运营效率和服务质量。数据库用于数据存储、管理、分析及客户关系管理,确保房态与预订精准。选择时重视性能稳定性、数据安全、易用性、可扩展性和成本效益。合适的数据库能提升酒店运营效率并优化客户体验。
19 2
|
15天前
|
存储 关系型数据库 MySQL
轻松入门MySQL:数据库设计之范式规范,优化企业管理系统效率(21)
轻松入门MySQL:数据库设计之范式规范,优化企业管理系统效率(21)
|
15天前
|
存储 关系型数据库 MySQL
轻松入门MySQL:优化进销存管理,掌握MySQL索引,提升系统效率(11)
轻松入门MySQL:优化进销存管理,掌握MySQL索引,提升系统效率(11)
|
18天前
|
存储 Java 关系型数据库
社区医院管理服务系统【GUI/Swing+MySQL】(Java课设)
社区医院管理服务系统【GUI/Swing+MySQL】(Java课设)
24 1
|
18天前
|
存储 Java 关系型数据库
实验室设备管理系统【GUI/Swing+MySQL】(Java课设)
实验室设备管理系统【GUI/Swing+MySQL】(Java课设)
16 0
|
18天前
|
安全 网络安全 数据库
数据安全之认识数据库漏洞扫描系统
数据库漏洞扫描系统是一种专业的数据库安全产品,它基于对数据库访问控制、数据库审计、资源管理、数据库加密以及数据库系统本身安全机制的深入分析,深入研究和发现数据库系统本身存在的BUG以及数据库管理、使用中存在的问题。
34 4
|
1月前
|
SQL 监控 安全
数据安全之认识数据库审计系统
随着企业业务数据量的不断增长和数据存储的集中化,数据库成为企业的核心资产之一。然而,数据库面临着各种安全威胁,如SQL注入、权限滥用、数据泄露等。为了保障数据库的安全性和完整性,企业需要采取有效的审计措施来监控和记录数据库的操作行为。本文让我们一起来认识数据库审计系统。
32 1
|
1天前
|
Java 关系型数据库 MySQL
一套java+ spring boot与vue+ mysql技术开发的UWB高精度工厂人员定位全套系统源码有应用案例
UWB (ULTRA WIDE BAND, UWB) 技术是一种无线载波通讯技术,它不采用正弦载波,而是利用纳秒级的非正弦波窄脉冲传输数据,因此其所占的频谱范围很宽。一套UWB精确定位系统,最高定位精度可达10cm,具有高精度,高动态,高容量,低功耗的应用。
一套java+ spring boot与vue+ mysql技术开发的UWB高精度工厂人员定位全套系统源码有应用案例
|
9天前
|
监控 安全 关系型数据库
基于vue2 + element +mysql医院不良事件上报系统源码
不良事件管理系统从时间上报、PDCA分析、事件整改、评估效果实行闭环管理和分析,满足医院追根溯源,全流程闭环管理,提高不良事件上报率,减少同类不良事件发生,提高医疗安全。通过报告不良事件,及时发现潜在的不安全因素
17 1
|
24天前
|
SQL 存储 安全
【软件设计师备考 专题 】数据库管理系统的功能和特征
【软件设计师备考 专题 】数据库管理系统的功能和特征
72 0