1.什么是数据库?
数据库,简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、截取、更新、删除等操作 所谓“数据库”是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合 数据对一个企业是非常重要的,其实就相当于我们每个人的信息就是自己的属性,并且把它记录在一个文件里面 多张表格组成一个数据库,tab (表)---->db (库)----->数据库软件 我们现在学对数据库的一些基本操作,其实就是一个高级的excel表格
2.安装mariadb数据库的服务软件
(1)安装并且开启mariadb服务
yum install mariadb-server.x86_64
systemctl start mariadb
(2)vim /etc/my.cnf #编辑其配置文件
添加:
sysbolic-networking=1 #关闭网络接口3306(跳过网络接口)
systemctl restart mariadb
netstat -antlupe | grep mysql #(查看数据库的网络接口是否已经关闭)
(3)安全初始化
数据库起始状态设定信息是不安全的,需要做以下设定
mysql_secure_installation #数据库安全初始化脚本,给定root用户以及密码
登陆数据库的技巧
mysql -uroot -p123这样很不安全,直接裸露密码很不安全
mysql -uroot -p直接可以利用刚才设置的密码进行登陆数据库了
3.数据库的管理
mysql -uroot -p #先进入数据库
SHOW DATABASES; #查看都有哪些数据库(可以看到存在的数据库的名字)
USE DATABASENAME(刚刚查看出来的; #进入指定的一个数据库 SHOW TABLES;查看该数据库中有哪些表格
SELECT * FROM TABLENAME; #(查看该表格中的所有内容,如果太多的话可以选择自己想要查看的)
SELECT Host User (列:字段条件) FROM user(表格名字) WHERE User='root'(行条件); #(相当于条件查询)
DESC TABLENAME #查看表格属性
(2)数据库的建立
mysql -uroot -p 先进入数据库
SHOW DATABASES; ##列出存在的库
CREATE DATABASE westos(名字); ##建立新的库
USE westos; ##进入新建立的这个库
CREATE TABLE linux ( ##在这个库里面建立表
-> username varchar(10) not null, #用户登陆的时候名字和密码不能为空,varchar(10)表示字符长度
-> password varchar(10) not null
-> ); #以这个结尾
DESC linux; ##查看新表的结构
INSERT INTO linux VALUES ('lee','123'); #插入数据到linux表中;其中linux为表格名字
SELECT * FROM linux; ##查询所有在linux表中字段
SELECT username,password from linux; ##查询在linux表中指定字段
(3)数据库的更改
数据库的名字不能随便更改(涉及到数据库之间的关连查找)
其实数据库也是以目录下文件的形式存在的
在目录下,也可以直接改数据库的名字,也能成功,但是不安全
UPDATE linux SET password=password('lee') where username='lee'; # 更改表格里面的信息
ALTER TABLE linux ADD class varchar(20); #在表格里面添加列
ALTER TABLE linux DROP CLASS; #在表格里面删除这个列
ALTER TABLE linux ADD age varchar(20) AFTER password; #添加列的时候指定位置(不能在最前面,没有参照物的话会造成数据丢失)
ALTER TABLE linux RENAME redhat; #给数据库更改名字
(4)数据库的备份和删除(数据库、表格、表格里面的内容)
备份
mysqldump -uroot -p --all-database #备份所有数据库
mysqldump -uroot -p --all-database --no-data #只备份表结构
mysqldump -uroot -p westos #备份westos数据库
mysqldump -uroot -p westos > /mnt/westos.sql #将westos数据库导入/mnt下
先备份再删除
DELETE FROM userlist WHERE username='lee';删除userlist这个表格里面名字是lee的这一行
DELETE FROM userlist WHERE username=‘lee’ or username='lee1‘;删除两行
DELETE FROM userlist WHERE username='lee' AND age='12';当遇到名字一样的时候用
DROP TABLE userlist;删除表格
DROP DATABASE westos;删除数据库
数据库的恢复:
/mnt/westos.sql 为备份的数据库
方法一:
mysql -uroot -p -e "CREATE DATABASE westos;"
mysql -uroot -p westos < /mnt/westos.sql
删除westos数据库:mysql -uroot -p123 -e "drop database westos;"
查看数据库内容:mysql -uroot -p123 -e "select * from westos.linux;"
方法二:
vim /mnt/westos.sql
添加:
CREATE DATABASE WESTOS;
USE westos;
mysql -uroot -p < /mnt/westos.sql
4.数据库登陆密码破解
(1)知道数据库密码,更改数据库的密码:
mysqladmin -uroot -p password westos #将密码改为westos;
(2)忘记密码时,如何破解
systemctl stop mariadb
mysql_safe --skip-grant-tables
ctrl+Z #打入后台
输入: mysql
在mysql中输入如下命令:
show databases;
use mysql;
show tables;
select host,user,password from user;
update mysql.user set Password=password("westos") where User="root";
quit
killall -9 mysql_safe
ps -aux | grep mysql
kill -9 mysql的所有进程的id
systemctl start mariadb
到此密码修改成功
5.数据库的授权
建立用户
create user lee@localhost identified by "123"
mysql -ulee -p123
SHOW DATABASES;可以登陆,但是没有权力
查看用户权力
SHOW GRANTS FOR lee@localhost; #没有授权信息
进入root用户对lee用户授权
GRANT SELECT ON westos.* TO lee@localhost; #授权
SHOW GRANTS FOR lee@localhost; #再次查看
再次登陆lee用户查看授权的数据库
use westos;
insert into linux values ("westos","123"); #被拒绝
登陆超级用户进行授权
grant insert,delete on westos.* to lee@localhost;
SHOW GRANTS FOR lee@localhost; #查看授权
登陆lee用户验证
insert into linux values ("jpf","123","22"); #添加行
select * from linux; #查看
撤销权力:
REVOKE DELETE ON westos.* FROM lee@localhost;
show grants for lee@localhost; #查看授权
drop user lee@localhost; #删除用户
select User from mysql.user #查看用户
6.数据库的图形管理工具
下载phpMyAdmin-3.4.0-all-languages.tar.bz2
,在/var/www/html/中解压:
tar -jxf phpMyAdmin-3.4.0-all-languages.tar.bz2
安装所需软件:
yum install httpd -y
yum install php php-mysql -y
systemctl restart httpd.service
mv phpMyAdmin-3.4.0-all-languages phpMyAdmin #重命名安装包
2 修改配置文件
cd phpMyAdmin/
cp config.sample.inc.php config.inc.php
vim config.inc.php
$cfg['blowfish_secret'] = 'ba16c1ec07d65003'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
3 测试
地址栏输入:http://172.25.254.216/phpMyAdmin