数据库

一、什么是数据库

顾名思义数据库用来存放数据表格

二、数据库安装及安全初始化

(一)数据库安装

1.yum install  mariadb-server  -y   ##下载服务端

2.systemctl start  mariadb     #开启数据库服务

3.登录

mysql [enter]   #无密码登录数据库

MariaDB [(none)]> show databases;   ##查询数据库,注意命令结尾一定加分号

+--------------------+

| Database           |

+--------------------+

| information_schema |

| mysql              |

| performance_schema |

+--------------------+

3 rows in set (0.00 sec)

linux 数据库管理

(二)安全初始化

如上可以无密码登录数据库,对于数据库而言是极不安全的。为了保证数据库的安全性,需要对数据库进行安全初始化。

(1)配置端口

1.使用如下命令可以查看数据库对网络开放的端口号

netstat -antlpe | grep  mysql 

[[email protected] ~]# netstat -antlpe | grepmysql

tcp       0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      27        215411     32204/mysqld       

  ##可以看出数据库对网络开放端口3306

linux 数据库管理

2.vim /etc/my.cnf   #端口配置

在11行之前编辑:

skip-networking=1    ##开启跳过网络访问的功能,即关闭网络端口

  :wq

 systemctl restart maridb  ##重启服务

linux 数据库管理

(2)安全初始化

1.初始化

[[email protected] ~]#mysql_secure_installation    ##开始进行安全初始化

  ...

Enter current password for root (enter fornone): [enter]  #输入当前密码,为初始化时数据库无秘密

   ...

Change the root password? [Y/n] y   #是否修改密码,需要加密

New password:              ##输入密码且不显行

Re-enter new password:     ##确认密码

Password updated successfully!

Reloading privilege tables..

 ...Success!

Remove anonymous users? [Y/n] y   #禁止匿名登录

 ...Success!

Disallow root login remotely? [Y/n] y    ##禁止root用户远程登录

 ...Success!

Remove test database and access to it?[Y/n] y   ##不测试

 -Dropping test database...

Reload privilege tables now? [Y/n] y     ##更新数据库,即完成初始化

 ...Success!

 linux 数据库管理

2.登录格式

mysql -uroot -p密码   #用户root使用密码登录数据库,但方式会显示秘密,仍存在安全性问题

[[email protected] mnt]# mysql -uroot -p

Enter password: ##不显行输入密码

Welcome to the MariaDB monitor.  ...

linux 数据库管理

(三)管理数据库

(1)查询数据库

进入数据库中:

1. show  databases;     ##查看数据库

MariaDB [(none)]> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| mysql              |         ##包含数据库mysql

| performance_schema |

+--------------------+

3 rows in set (0.00 sec)     

 linux 数据库管理

2. use mysql;      ##进入数据库

3. show tables;     ##查看当前数据库中的表格

  desc  表名;       ##查看表中的字段

linux 数据库管理

MariaDB [mysql]> desc func;    ##查看func表格中包含哪些字段

+-------+------------------------------+------+-----+---------+-------+

| Field | Type                         | Null | Key | Default| Extra |

+-------+------------------------------+------+-----+---------+-------+

| name | char(64)                     |NO   | PRI |         |      |

| ret  | tinyint(1)                   |NO   |    | 0       |       |

| dl   | char(128)                    |NO   |    |         |       |

| type | enum('function','aggregate') | NO  |     | NULL    |      |

+-------+------------------------------+------+-----+---------+-------+

###则包含字段:name 、 ret、 dl 、 type

4. select * from 表名;    ##查询表中所有字段内容

  select  字段  from  表名;    ##查看表中指定字段的内容 

##可以看出表中包含的字段比较多,包含字段如:Host、User、Passqord等

linux 数据库管理

##查看表中User包含哪些数据即哪些用户

(2)新建数据库

create database  数据库名称;    #新建数据库

linux 数据库管理linux 数据库管理

use database  数据库名;   ##进入数据库

create table  表名(

->字段名1 varchar(字符长度)  not null,   ##定义字段名不能大于设定的字符串长度(最大为255),且不能为空

->字段名2 varchar(字符长度)  not null,

->...

-> );   ##新建表格

linux 数据库管理

insert  into  表名 values('字符串1','字符串2',...);    #写数据内容   

insert into   表名 values('字符串1',password('字符串2'),...);  

##字符串2的内容将不可见

linux 数据库管理

(3)更新数据库信息

1. update 表名  set password=password('字符串')   where   username='user';   

  ##将username='user'的密码均改为字符串1,并且加密不显示字符串内容

update 表名  set password=password('字符串')   where   ( username='user1'  or username=’user2’);

###更新user1和user2的密码

linux 数据库管理

linux 数据库管理

 delete  from  表名  where  username='user1'; 

 ##从linux 表格中删除username='user1'的信息

linux 数据库管理

linux 数据库管理

2. alter  table  表名 add  字段名 varchar(字符长度)  not null;   

   ##在linux表格后加入某字段

linux 数据库管理

linux 数据库管理

 alter  table  表名 add  字段名 varchar(字符长度)  after  已有字段;  

   ##在linux表格的已有字段后添加字段

linux 数据库管理

alter table  表名 drop  段名;  ##从某表格中删除某字段

linux 数据库管理

(4)删除数据库

1.delete from  表名 where  字段='字符串';   ##删除某表格中包含某字段信息的内容

linux 数据库管理

linux 数据库管理

drop table  表名;  ##删除指定表格

drop database  库名;  ##删除指定库

linux 数据库管理

linux 数据库管理

(5)数据库备份

1.mysqldump -uroot  -p密码 --all-database      ##备份所有表中的所有数据

2.mysqldump -uroot  -p密码 --all-database  --no-data  ##备份所有表,但不备份数据

3.mysqldump -uroot  -p密码 库名   ##备份指定的库

linux 数据库管理

以上备份内容并为保存在文件中,可以将备份内容导入文件中进行保存,命令如下:

4.mysqldump -uroot  -p密码 库名 > /目录名/文件名.sql

如:mysqldump  -uroot -pwestos  westos >/mnt/westos.sql

linux 数据库管理

5.mysqldump -uroot  -p密码 库名  表名 > /目录名/文件名.sql

##备份指定库中的指定表格至文件中

如:mysqldump  -uroot -pwestos  westos  linux >/mnt/linux.sql

##备份westos库中的linux表至/mnt/linux.sql中

linux 数据库管理

6.mysql  -uroot -p密码  -e "create  database  库名"

##新建库,其中:-e表示执行命令

linux 数据库管理

7.mysql -uroot  -p密码 库名 < /目录名/文件名.sql

##将文件中的数据导入库中

如:mysql  -uroot -pwestos  westos </mnt/westos.sql

linux 数据库管理

(6)用户授权

先登录数据库:mysql  -uroot -pwestos

1.create  user  用户名@localhost  identified by  '密码';

  ##建立用户并给定密码,此用户只能通过本机登录

linux 数据库管理

  select  User,Host from  mysql.user;   ##查看用户信息=用户名+登录方式

  登录格式:mysql  -u用户名  -p密码   ##本机登录

linux 数据库管理

 create  user  用户名@'%'  identified  by  '密码';

##建立用户并给定密码,此用户可以通过网络登录

登录格式:mysql  -u用户名  -p密码 -h  IP    ##通过网络登录

linux 数据库管理

linux 数据库管理

2.超级用户登录数据库再进行授权:mysql  -uroot  -p密码

授权命令如下:

grant insert,update,delete,select on  库名.*  to  用户@localhost;

##用户授权:使指定用户对指定库中所有数据都有某些执行权限

grant 权限1,... on  库名.表名  to  用户@'%'

##用户对库中的指定的表格有某些权限

如:grant  insert,update,delete,select  on westos.linux  to  [email protected]

##用户bai可以对westos.linux表进插值、更新、删除、查看数据的功能

linux 数据库管理

3.show grants  for  用户@'%'    ##查看用户授权

 show  grants for  用户@localhost  

linux 数据库管理

linux 数据库管理

4.revoke 权限  on  库名.表名  from  用户@localhost;   ##去除用户权限

 revoke  权限  on  库名.表名  from  用户@'%';

如:revokeselect,update,delete on westos.linux  from  [email protected]

##去除用户bai 对于westos.linux表的select、update、delete权限

linux 数据库管理

 drop  user  用户@'%';  ##删除用户

 drop  user  用户@localhost;

linux 数据库管理

linux 数据库管理

(7)更改root用户密码

1.直接调用如下命令进行改改密:

mysqladmin  -uroot  -p原密码  password  新密码    ##更改用户密码为新密码

linux 数据库管理

2.当忘记用户密码时,则依次执行如下操作

systemctl stop  mariadb   ##先关闭服务

mysqld_safe --skip-grant-tables &    #开启myasql登录并跳过授权表

mysql     #即可直接登录

linux 数据库管理

update mysql.user  set  Password=password('新密码');  ##更改密码

update mysql.user  set  Password=password('新密码')  where User=root;

linux 数据库管理

ps aux  |  grep mysql    #过滤mysql的所有进程并且关闭这些进程

kill -9 进程id

linux 数据库管理

linux 数据库管理

systemctl start  mariadb   ##开启服务

mysql -uroot  -p新密码      ##使用新设定的密码

linux 数据库管理

数据库的网页管理工具

基于以上实验基础

一、安装

1.yum install  httpd  php  php-mysql  -y

2.systemctl start  httpd

 systemctl  enable  httpd

 systemctl  stop  firewalld

 systemctl  disable  firewalld

2.需要下载

 phphMyAdmin-3.4.0-all-languages.tar.bz2

 tar  jxf  phphMyAdmin-3.4.0-all-languages.tar.bz2  -C /var/www/html    ##解压

 cd  /var/www/html

 mv  phphMyAdmin-3.4.0-all-languages/  名称   ##将该证书重命名

linux 数据库管理

linux 数据库管理

3. cd  /var/www/html/mysql

 cp -p  config.sample.inc.pfp  config.inc.php   ##得到配置文件

 vim config.inc.php

  编辑第17行,如下示,如图示:' '中所加内容可任意填写

$cfg['blowfish_secret'] = 'NEWADD'; /* YOUMUST FILL IN THIS FOR COOKIE AUTH! */ 

linux 数据库管理

 linux 数据库管理

4.打开浏览器测试:

访问http://172.25.254.109/mysql

(1)新建数据库:westos,如下示:

linux 数据库管理

(2)在新数据库westos中新建表westosuser,字段数为4

linux 数据库管理

可以在服务端查看

linux 数据库管理

填写表格:

linux 数据库管理

linux 数据库管理

执行成功后显示如下:

linux 数据库管理

可在服务端查看

linux 数据库管理


相关文章:

  • 2021-12-16
  • 2022-12-23
  • 2021-06-24
  • 2021-08-28
  • 2021-08-04
  • 2021-08-02
  • 2021-06-28
  • 2021-07-16
猜你喜欢
  • 2021-12-31
  • 2021-06-01
  • 2021-05-27
  • 2021-04-22
  • 2021-08-30
  • 2021-04-02
  • 2021-07-17
相关资源
相似解决方案