MySQL数据库系统

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 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,如需转载请自行联系原作者

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2月前
|
安全 关系型数据库 MySQL
如何将数据从MySQL同步到其他系统
【10月更文挑战第17天】如何将数据从MySQL同步到其他系统
186 0
|
28天前
|
关系型数据库 MySQL Linux
Linux系统如何设置自启动服务在MySQL数据库启动后执行?
【10月更文挑战第25天】Linux系统如何设置自启动服务在MySQL数据库启动后执行?
72 3
|
27天前
|
Java 数据库连接 数据库
深入探讨Java连接池技术如何通过复用数据库连接、减少连接建立和断开的开销,从而显著提升系统性能
在Java应用开发中,数据库操作常成为性能瓶颈。本文通过问题解答形式,深入探讨Java连接池技术如何通过复用数据库连接、减少连接建立和断开的开销,从而显著提升系统性能。文章介绍了连接池的优势、选择和使用方法,以及优化配置的技巧。
27 1
|
2月前
|
SQL 存储 关系型数据库
数据储存数据库管理系统(DBMS)
【10月更文挑战第11天】
103 3
|
2月前
|
存储 关系型数据库 MySQL
PACS系统 中 dicom 文件在mysql 8.0 数据库中的 存储和读取(pydicom 库使用)
PACS系统 中 dicom 文件在mysql 8.0 数据库中的 存储和读取(pydicom 库使用)
34 2
|
2月前
|
Ubuntu 关系型数据库 MySQL
Linux系统MySQL安装
【10月更文挑战第19天】本文介绍了在 Linux 系统上安装 MySQL 的步骤,包括安装前准备、安装 MySQL、启动 MySQL 服务、配置 MySQL 以及验证安装。适用于 Ubuntu/Debian 和 CentOS/Fedora 系统,提供了详细的命令示例。
194 1
|
2月前
|
安全 NoSQL 关系型数据库
阿里云数据库:构建高性能与安全的数据管理系统
在企业数字化转型过程中,数据库是支撑企业业务运转的核心。随着数据量的急剧增长和数据处理需求的不断增加,企业需要一个既能提供高性能又能保障数据安全的数据库解决方案。阿里云数据库产品为企业提供了一站式的数据管理服务,涵盖关系型、非关系型、内存数据库等多种类型,帮助企业构建高效的数据基础设施。
69 2
|
3月前
|
JavaScript Java 关系型数据库
毕设项目&课程设计&毕设项目:基于springboot+vue实现的在线考试系统(含教程&源码&数据库数据)
本文介绍了一个基于Spring Boot和Vue.js实现的在线考试系统。随着在线教育的发展,在线考试系统的重要性日益凸显。该系统不仅能提高教学效率,减轻教师负担,还为学生提供了灵活便捷的考试方式。技术栈包括Spring Boot、Vue.js、Element-UI等,支持多种角色登录,具备考试管理、题库管理、成绩查询等功能。系统采用前后端分离架构,具备高性能和扩展性,未来可进一步优化并引入AI技术提升智能化水平。
毕设项目&课程设计&毕设项目:基于springboot+vue实现的在线考试系统(含教程&源码&数据库数据)
|
2月前
|
存储 NoSQL 关系型数据库
数据库管理系统
【10月更文挑战第8天】
66 1
|
2月前
|
数据可视化 API PHP
低代码开发工具-学生管理系统-老师管理增删改查实现
低代码开发工具-学生管理系统-老师管理增删改查实现
33 5