运维中的MySQL数据库管理方式

1.几种主流数据库类型简介

数据库种类大体分为:关系型数据库和非关系型数据库。
关系型数据库模型是把复杂的数据结构归结为简单的二元关系(即二维表格形式)。在关系型数据库中,对数据的操作几乎全部建立在一个或多个关系表格上,通过对这些关联的表格分类、合并、连接或选取等运算来实现数据库的管理。
典型产品:Mysql、Oracle、DB2、Sqlserver

1).IBM的DB2
  DB2是IBM出口的一系列关系型数据库管理系统,分别在不同的操作系统平台上服务。虽然DB2产品是基于UNIX的系统和个人计算机操作系统,在基于UNIX系统和微软在windows系统下的Access方面,DB2追寻了ORACLE的数据库产品。
  IBM公司研制的一种关系型数据库系统。DB2主要应用于大型应用系统,具有较好的可伸缩性,可支持从大型机到单用户环境,应用于OS/2、Windows等平台下。 DB2提供了高层次的数据利用性、完整性、安全性、可恢复性,以及小规模到大规模应用程序的执行能力,具有与平台无关的基本功能和SQL命令。DB2采用了数据分级技术,能够使大型机数据很方便地下载到LAN数据库服务器,使得客户机/服务器用户和基于LAN的应用程序可以访问大型机数据,并使数据库本地化及远程连接透明化。 它以拥有一个非常完备的查询优化器而著称,其外部连接改善了查询性能,并支持多任务并行查询。 DB2具有很好的网络支持能力,每个子系统可以连接十几万个分布式用户,可同时激活上千个活动线程,对大型分布式应用系统尤为适用。

2). Oracle
  Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。到目前仍在数据库市场上占有主要份额。劳伦斯·埃里森和他的朋友,之前的同事Bob Miner和Ed Oates在1977年建立了软件开发实验室咨询公司(SDL,Software Development Laboratories)
  oracle数据库是一种大型数据库系统,一般应用于商业,政府部门,它的功能很强大,能够处理大批量的数据,在网络方面也用的非常多。不过,一般的中小型企业都比较喜欢用mysql, SQL server等数据库系统,它的操作很简单,功能也非常齐全。只是比较oracle数据库而言,在处理大量数据方面有些不足

3). Sql server
  SQL Server 是一个关系数据库管理系统。它最初是由Microsoft、 Sybase 和Ashton-Tate三家公司共同开发的,于1988 年推出了第一个OS/2 版本。在Windows NT 推出后,Microsoft与Sybase 在SQL Server 的开发上就分道扬镳了,Microsoft 将SQL Server 移植到Windows NT系统上,专注于开发推广SQL Server 的Windows NT 版本。Sybase 则较专注于SQL Server在UNIX 操作系统上的应用
 
4). mySQL
  MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司。在2008年1月16号被Sun公司收购。而2009年,SUN又被Oracle收购.对于Mysql的前途,没有任何人抱乐观的态度,目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。

2.MySQL数据库安装及安全初始化

yum search mariadb   ##搜索安装包(需要yum源,具体配置参考前面的博客)

运维中的MySQL数据库管理方式_第1张图片

yum install mariadb-server -y		##安装
systemctl start mariadb				##启动服务

运维中的MySQL数据库管理方式_第2张图片

netstat -antlupe | grep mysql	                 ##查看接口

在这里插入图片描述

vim /etc/my.cnf			                    	##在配置文件里关闭接口
skip-networking=1								##关闭数据库开启的网络接口
systemctl restart mariadb.service 				##重启服务

运维中的MySQL数据库管理方式_第3张图片
运维中的MySQL数据库管理方式_第4张图片

安全初始化:设置超级管理员密码

mysql_secure_installation                       ##安全初始化插件,修改密码

过程及解释如下
运维中的MySQL数据库管理方式_第5张图片
运维中的MySQL数据库管理方式_第6张图片

systemctl start mariadb  ##重启服务

数据库登陆:

mysql -uroot -p			##输入密码即可登陆成功,大小写通用

运维中的MySQL数据库管理方式_第7张图片
当然也可以使用在如下方式登陆:——此方法在企业中尽量不要用,毕竟明文密码存在从历史命令中查看得到的风险;如果你的上级知道你有这样的操作,估计就凉了

mysql -u root -p123					##在【-p】后紧跟密码也能成功登陆

运维中的MySQL数据库管理方式_第8张图片
登陆后操作命令一般用大写字母,命令后用【;】结尾

3.数据库的基本sql语句操作

1)登陆

mysql -uroot -pwestos		###-u表示指定登陆用户,-p 表示指定此用户密码

2)查询

SHOW DATABASES;		##显示数据库

运维中的MySQL数据库管理方式_第9张图片

USE mysql;			##进入mysql库

运维中的MySQL数据库管理方式_第10张图片

SHOW  tables;			##显示当前库中表的名称

运维中的MySQL数据库管理方式_第11张图片

SELECT * from user;		##查询user表中的所有内容(*可以用此表中的任何字段来代替)

运维中的MySQL数据库管理方式_第12张图片

DESC user;			##查询user表的结构(显示所有字段的名称)

运维中的MySQL数据库管理方式_第13张图片

quit				##退出

3)新建

CREATE DATABASE westos; ##建立库

运维中的MySQL数据库管理方式_第14张图片

USE westos;							##进入库
CREATE  TABLE  linux (             	##建立表linux
->username varchar(10) not  null,
->password varchar(20) not  null);

运维中的MySQL数据库管理方式_第15张图片

SHOW TABLES;						##查看表,存在一个名为linux的表
DESC linux;                         ##查看表结构

运维中的MySQL数据库管理方式_第16张图片
插入数据到表中

INSERT INTO linux VALUES ('hello','world');			##插入数据到linux表中
INSERT INTO linux VALUES ('snow','come'); 

运维中的MySQL数据库管理方式_第17张图片
SELECT * FROM linux; ##查询在linux表中所有字段
SELECT username FROM linux; ##查询在linux表中指定字段
运维中的MySQL数据库管理方式_第18张图片

4)更改数据库信息

<1>更改数据库名称——一般不要改变数据库的名称,否则存在数据丢失的风险;下面介绍的方法理论上存在,但是慎用

cd  /var/kib

运维中的MySQL数据库管理方式_第19张图片
<2>更新表信息

UPDATE linux SET password=password('123') where username=hello;
UPDATE linux SET password='321' where username='snow';				##更新密码时,前面不加【password】密码明文显示

运维中的MySQL数据库管理方式_第20张图片

DELETE FROM linux where username='hello';			##删除

运维中的MySQL数据库管理方式_第21张图片

INSERT INTO linux VALUES ('student','456');			##添加(插入)数据到linux表中

运维中的MySQL数据库管理方式_第22张图片

<3>更改表中字段

ALTER  TABLE  linux ADD  class varchar(20);                    		 ##插入新的字段
UPDATE linux SET class='123' where username='snow';					 ##更新字段内信息

运维中的MySQL数据库管理方式_第23张图片
运维中的MySQL数据库管理方式_第24张图片

ALTER TABLE linux DROP class;                                   ##删除class

运维中的MySQL数据库管理方式_第25张图片

ALTER  TABLE  linux ADD  class varchar(20) AFTER username;        ##指定插入字段的位置,默认加在最后

运维中的MySQL数据库管理方式_第26张图片
注意:插入时只能在第一个字段之后的位置选择,不能在其之前;默认第一个是基准字段,默认不能修改,修改后会导致数据错乱

<4>更改数据库中表的名称

ALTER  TABLE  linux  RENAME redhat;                           ##更改表名称

运维中的MySQL数据库管理方式_第27张图片

5)数据库的备份

mysqldump -uroot -p westos > /mnt/westos.sql 			##备份westos库并把数据保存到westos.sql中

在这里插入图片描述

mysqldump -u root -p --all-database	> /mnt/all.sql		##备份所有库

运维中的MySQL数据库管理方式_第28张图片

mysqldump -u root -p westos --no-data ##只备份westos库中的框架
mysqldump -u	root -pwestos westos linux > /mnt/linux.sql ##备份westos库中的linux表

mysql -u	root -p	 -e "create database text;"	##建立text库

运维中的MySQL数据库管理方式_第29张图片

mysql -u	root -p	text  < /mnt/westos.sql		##把数据导入westos库

导入前数据未空
运维中的MySQL数据库管理方式_第30张图片
导入后
运维中的MySQL数据库管理方式_第31张图片

6)数据库的删除——高危动作,用前三思

DROP TABLE redhat;				##删除redhat表

运维中的MySQL数据库管理方式_第32张图片

DROP DATABASE text;				##删除text库

运维中的MySQL数据库管理方式_第33张图片

4.用户授权

1)登陆授权

SELECT USER FROM  mysql.user;  ##查看本机数据库用户列表

运维中的MySQL数据库管理方式_第34张图片

CREATE  USER student@'localhost' identified  by '111';     ##建立本地用户,student@'%'则用户可在其他主机远程登陆

运维中的MySQL数据库管理方式_第35张图片
注意:

student@localhost  ##只能在本机登录
student@'%'  ##任意主机登录

2)数据库内相关授权

student用户进入数据库后无法获取数据库的全部信息,如下图;此时我们便需要给用户授权

运维中的MySQL数据库管理方式_第36张图片
用root用户登陆

GRANT insert,update,delete,select on  westos.* TO student@localhost;      	##给用户关于库的相关权限
SHOW GRANTS  FOR student@localhost;                           				##显示用户权限列表

运维中的MySQL数据库管理方式_第37张图片
测试:
运维中的MySQL数据库管理方式_第38张图片

REVOKE insert,update,delete,select to  westos.* FROM student@localhost;##取消用户权限

运维中的MySQL数据库管理方式_第39张图片

DROP  USER  student@localhost;		##删除用户
FLUSH PRIVILEGES;  					##刷新

运维中的MySQL数据库管理方式_第40张图片

5.数据库密码相关设置

1)知道原密码的情况下修改密码

mysqladmin -uroot -p123 password 321			##修该超级用户密码

运维中的MySQL数据库管理方式_第41张图片
2)不知道原密码的情况下修改密码

systemctl stop mariadb                        	##停止服务
mysqld_safe  --skip-grant-tables &           	##开启mysql登陆接口并忽略授权表
mysql											##直接不用密码可以登陆

运维中的MySQL数据库管理方式_第42张图片

UPDATE mysql.user SET password=password('123456789') WHERE user='root';	##更新超级用户密码信息

运维中的MySQL数据库管理方式_第43张图片

ps aux | grep mysql					##过滤mysql的所有进程并结束这些进程
kill -9 mysqlpid

运维中的MySQL数据库管理方式_第44张图片

systemctl  start mariadb  ##打开服务
mysql  -u root -p  ##用新密码登陆

运维中的MySQL数据库管理方式_第45张图片

你可能感兴趣的:(Linux基础)