1.什么是数据库
简单来讲,数据库就是一个高级的Excel表格
将属性记录到文件里,把信息添加到表格里,这些表格的集合就相当于数据库
官方解释为
:
数据库,简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、截取、更新、删除等操作。
所谓“数据库”是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。
2.mariadb数据库
MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。在存储引擎方面,使用XtraDB(英语:XtraDB)来代替MySQL的InnoDB。 MariaDB由MySQL的创始人Michael Widenius(英语:Michael Widenius)主导开发,他早前曾以10亿美元的价格,将自己创建的公司MySQL AB卖给了SUN,此后,随着SUN被甲骨文收购,MySQL的所有权也落入Oracle的手中。MariaDB名称来自Michael Widenius的女儿Maria的名字。
MariaDB基于事务的Maria存储引擎,替换了MySQL的MyISAM存储引擎,它使用了Percona的 XtraDB,InnoDB的变体,分支的开发者希望提供访问即将到来的MySQL 5.4 InnoDB性能。这个版本还包括了 PrimeBase XT (PBXT) 和 FederatedX存
3.实验环境的搭建
先安装并开启mariadb(配置yum的工作我就不再这写啦,大家应该都会咯)
为了保证登陆数据库的安全性,就得对它进行安全设置
mysql_secure_installation 数据安全初始化
set root passwd? 设置密码
remove anonymous users? 是否移走匿名用户
disallow root login remotely? 是否不允许超级用户远程登陆
remove test database and acess to it?
reload privilege tables now?
netstat -antlupe | grep mysql 查看端口,要关闭所有端口
vim /etc/my.cnf
skip-networking=1
systemctl restart mariadb
4.数据库管理
一列就是一个字段
mysql -uroot -p 进入数据库
输入密码
SHOW DATABASES;列出数据库
USE mysql 进入mysql这个库
会出现Database changed
SHOW TABLES;列出所有表格
SELECT * FROM user; 查询user表格里的所有信息
*可以换成想要查询的字段(列)名称
SELECT Host,User,Password FROM user WHERE Host='条件'; 查询user表格里
Host,User,Password字段中'条件'的信息
1.建立:
SHOW DATABASES; ##列出库
CREATE DATABASE westos; ##建立库
USE westos; ##进入库
CREATE TABLE yyh ( ##建立表
-> username varchar(50) not null,
-> password varchar(50) not null
-> );
(注意:varchar和char的区别在于前者设置的密码长度是不超过某个值u,比如说5,它可以是一位,两位,三位,四位,五位,但是后者会自动补齐0.就是比如你输入1它会补齐为10000)
DESC yyh; ##查看表结构
INSERT INTO yyh VALUES ('lee','123'); ##插入数据到yyh表中
SELECT * FROM yyh; ##查询所有字段在yyh表中
SELECT username,password FROM yyh; ##查询指定字段在yyh表中
2.更改
UPDATE yyh SET password=123 where username='lee'; 给lee这个用户更改添加密码(如果不加where和后边的东西,就会给全部用户)
ALTER TABLE linux ADD class varchar(20);(没有加参照物就放在最后边)
ALTER TABLE linux DROP CLASS; 删除linux表的班级这个字段
ALTER TABLE linux ADD age varchar(20) AFTER password;在password这个字段后边加入age这个字段(要有参照物)
ALTER TABLE linux RENAME redhat;改表的名字
3.删除
DELETE FROM redhat where username='lee'; 删除lee这一行的数据
DELETE FROM redhat where username='lee' or username= 'lee1';删除lee和lee1这两行的数据
DELETE FROM redhat where username='lee'AND age='12';删除名字为lee且年龄为12岁的用户数据
DROP TABLE redhat;删除表
DROP DATABASE westos;删除库
4.数据库的备份
如果不小心将数据库的东西删掉,至少还有备份(就不用跑路啦)
再备份先删除
mysqldump -uroot -pwestos westos > /mnt/yyh.sql
模拟一下:删除掉数据库westos的数据
恢复方式1
mysql -uroot -pwestos -e "CREATE DATABASE westos;"
mysql -uroot -pwestos westos < /mnt/yyh.sql
检验一下:
恢复方式2
vim /mnt/yyh.sql
table 下方
CREATE DATABASE westos;
USE westos;
mysql -uroot -pwestos < /mnt/yyh.sql
检验一下:
5.用户授权
CREATE USER lee@'localhost' identified by 'westos';建立用户lee只允许在本机登陆,密码为westos
登陆yan用户,可以进去,但是没有查看的权限
GRANT SELECT,INSERT on westos.* TO yang@localhost;添加权限
SHOW GRANTS FOR lee@localhost;查看权限
检验一下:
REVOKE INSERT ON westos.* FROM lee@localhost;收回westos.*里的用户权限
检验一下:
DROP USER westos@localhost 删除用户westos
FLUSH PRIVILEGES; ##刷新
6.密码管理
模拟: mysqladmin -uroot -pwestos passord yangyuhang(新密码,忘了)
解决方案:
systemctl stop mariadb 关掉进程
mysqld_safe --skip-grant-tables & 后台运行(将安全检测放置后台)
mysql 进入数据库(不用密码)
update mysql.user set Password=password('westos') WHERE User='root';
quit 退出
ps -aux | grep mysql 查看mysql的进程
kill -9 mysql 结束掉进程
systemctl restart mariadb 重启
现在不能直接登陆
7.安装phpmyadmin 数据库图形管理(文件管理比较麻烦)
下载phpMyAdmin-3.4.0-all-languages
我的直接在,就不用下载了
yum install httpd -y 下载http服务
systemctl restart httpd
tar jxf phpMyAdmin-3.4.0-all-languages ------- > /var/www/html
mv phpMyAdmin-3.4.0-all-languages mysqladmin
cd mysqladmin
cp config.sample.inc.php config.inc.php
ls
less Documentation.txt
php下边的一串字符'ba17c1ec07d65003';
vim config.inc.php
'ba17c1ec07d65003';
yum install php php-mysql -y
systemctl restart mariadb
systemctl restart httpd
测试:
http://172.25.254.100/mysqladmin
检验一下: