MySQL数据库系统

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
云数据库 RDS PostgreSQL,高可用系列 2核4GB
简介:

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,如需转载请自行联系原作者

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
消息中间件 缓存 弹性计算
纯PHP+MySQL手搓高性能论坛系统!代码精简,拒绝臃肿
本内容分享了一套经实战验证的社交系统架构设计,支撑从1到100万用户的发展,并历经6次流量洪峰考验。架构涵盖客户端层(App、小程序、公众号)、接入层(API网关、负载均衡、CDN)、业务服务层(用户、内容、关系、消息等服务)、数据层(MySQL、Redis、MongoDB等)及运维监控层(日志、监控、告警)。核心设计包括数据库分库分表、多级缓存体系、消息队列削峰填谷、CQRS模式与热点数据动态缓存。同时提供应对流量洪峰的弹性伸缩方案及降级熔断机制,并通过Prometheus实现全链路监控。开源建议结构清晰,适合大型社交平台构建与优化。
130 11
|
1月前
|
前端开发 数据库
会议室管理系统源码(含数据库脚本)
会议室管理系统源码(含数据库脚本)
44 0
|
5天前
|
开发框架 Java 关系型数据库
在Linux系统中安装JDK、Tomcat、MySQL以及部署J2EE后端接口
校验时,浏览器输入:http://[your_server_IP]:8080/myapp。如果你看到你的应用的欢迎页面,恭喜你,一切都已就绪。
121 17
|
22天前
|
Java 数据库
jsp CRM客户管理系统(含数据库脚本以及文档)
jsp CRM客户管理系统(含数据库脚本以及文档)
47 10
|
1月前
|
关系型数据库 MySQL Linux
CentOS 7系统下详细安装MySQL 5.7的步骤:包括密码配置、字符集配置、远程连接配置
以上就是在CentOS 7系统下安装MySQL 5.7的详细步骤。希望这个指南能帮助你顺利完成安装。
299 26
|
1月前
|
Ubuntu 关系型数据库 MySQL
在Ubuntu系统的Docker上安装MySQL的方法
以上的步骤就是在Ubuntu系统的Docker上安装MySQL的详细方法,希望对你有所帮助!
194 12
|
2月前
|
前端开发 Java 关系型数据库
基于ssm的社区物业管理系统,附源码+数据库+论文+任务书
社区物业管理系统采用B/S架构,基于Java语言开发,使用MySQL数据库。系统涵盖个人中心、用户管理、楼盘管理、收费管理、停车登记、报修与投诉管理等功能模块,方便管理员及用户操作。前端采用Vue、HTML、JavaScript等技术,后端使用SSM框架。系统支持远程安装调试,确保顺利运行。提供演示视频和详细文档截图,帮助用户快速上手。
109 17
|
2月前
|
前端开发 Java 关系型数据库
基于ssm的超市会员(积分)管理系统,附源码+数据库+论文,包安装调试
本项目为简单内容浏览和信息处理系统,具备管理员和员工权限。管理员可管理会员、员工、商品及积分记录,员工则负责积分、商品信息和兑换管理。技术框架采用Java编程语言,B/S架构,前端使用Vue+JSP+JavaScript+Css+LayUI,后端为SSM框架,数据库为MySQL。运行环境为Windows,JDK8+Tomcat8.5,非前后端分离的Maven项目。提供演示视频和详细文档,购买后支持免费远程安装调试。
111 19
|
2月前
|
前端开发 JavaScript Java
[Java计算机毕设]基于ssm的OA办公管理系统的设计与实现,附源码+数据库+论文+开题,包安装调试
OA办公管理系统是一款基于Java和SSM框架开发的B/S架构应用,适用于Windows系统。项目包含管理员、项目管理人员和普通用户三种角色,分别负责系统管理、请假审批、图书借阅等日常办公事务。系统使用Vue、HTML、JavaScript、CSS和LayUI构建前端,后端采用SSM框架,数据库为MySQL,共24张表。提供完整演示视频和详细文档截图,支持远程安装调试,确保顺利运行。
133 17
|
2月前
|
前端开发 Java 关系型数据库
基于ssm的网络直播带货管理系统,附源码+数据库+论文
该项目为网络直播带货网站,包含管理员和用户两个角色。管理员可进行主页、个人中心、用户管理、商品分类与信息管理、系统及订单管理;用户可浏览主页、管理个人中心、收藏和订单。系统基于Java开发,采用B/S架构,前端使用Vue、JSP等技术,后端为SSM框架,数据库为MySQL。项目运行环境为Windows,支持JDK8、Tomcat8.5。提供演示视频和详细文档截图。
91 10