MySQL数据库系统

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群版 2核4GB 100GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:

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
相关文章
|
20天前
|
存储 SQL 关系型数据库
现代数据库管理系统的发展与挑战
数据库管理系统(DBMS)作为现代软件开发的核心组成部分,其在数据存储、管理和访问方面的演进至关重要。本文探讨了现代DBMS的发展历程、关键技术特点以及面临的挑战,包括大数据处理、云计算环境下的优化和安全性等方面。 【7月更文挑战第7天】
|
1月前
|
存储 安全 Java
基于Java+MySQL停车场车位管理系统详细设计和实现(源码+LW+调试文档+讲解等)
基于Java+MySQL停车场车位管理系统详细设计和实现(源码+LW+调试文档+讲解等)
|
18天前
|
存储 自然语言处理 DataWorks
通过云上数据库三步构建RAG系统
本文介绍了如何使用OpenSearch LLM智能问答版通过云上数据库一站式构建RAG系统。
19535 10
|
17天前
|
Java 关系型数据库 MySQL
班级通讯录管理系统(Java+MySQL)
构建了一个Java Swing应用,搭配MySQL,实现班级通讯录管理。系统具备管理员登录、班级与学生信息的增删改查功能,每个班级窗口独立且自适应布局。利用GBK编码处理中文,JDBC连接数据库,优化窗口复用和代码结构,数据变更实时同步。示例截图展示详细界面。
班级通讯录管理系统(Java+MySQL)
|
22天前
|
SQL 自然语言处理 网络协议
【Linux开发实战指南】基于TCP、进程数据结构与SQL数据库:构建在线云词典系统(含注册、登录、查询、历史记录管理功能及源码分享)
TCP(Transmission Control Protocol)连接是互联网上最常用的一种面向连接、可靠的、基于字节流的传输层通信协议。建立TCP连接需要经过著名的“三次握手”过程: 1. SYN(同步序列编号):客户端发送一个SYN包给服务器,并进入SYN_SEND状态,等待服务器确认。 2. SYN-ACK:服务器收到SYN包后,回应一个SYN-ACK(SYN+ACKnowledgment)包,告诉客户端其接收到了请求,并同意建立连接,此时服务器进入SYN_RECV状态。 3. ACK(确认字符):客户端收到服务器的SYN-ACK包后,发送一个ACK包给服务器,确认收到了服务器的确
147 1
|
5天前
|
消息中间件 缓存 架构师
一个合格的架构师应该怎样处理数据库、调度系统、消息队列、分布式缓存等软件
一个合格的架构师应该怎样处理数据库、调度系统、消息队列、分布式缓存等软件
|
12天前
|
数据库管理 Python
在停车场管理系统工程中,我们可能会涉及到硬件设计、软件编程、数据库管理、用户界面设计等多个方面
在停车场管理系统工程中,我们可能会涉及到硬件设计、软件编程、数据库管理、用户界面设计等多个方面
|
1月前
|
存储 搜索推荐 数据库
软件系统【标签tag功能】的两种数据库设计
软件系统中的标签功能可采用两种数据库设计。方案一,文章和Tag各一表,Tag信息存储在文章表内(`tags`和`tagids`字段),优点是模型简单,但查询效率低且易引发数据冗余和一致性问题。方案二,增加Tagmap表,用于存储标签-文章映射,利于索引查询和数据更新,适用于高效率需求,但结构更复杂。
56 0
软件系统【标签tag功能】的两种数据库设计
|
1月前
|
存储 关系型数据库 MySQL
系统数据库
【6月更文挑战第20天】系统数据库。
13 1
|
1月前
|
存储 关系型数据库 MySQL
MySQL数据库进阶第一篇(存储引擎与Linux系统上安装MySQL数据库)
MySQL数据库进阶第一篇(存储引擎与Linux系统上安装MySQL数据库)