1.什么是数据库
数据库是电子化的文件库,储存电子文件的住所,用户可以对文件中的数据进行新增,截取更新,删除等操作。 所谓数据库,是以一定的方式储存在一起能与多个用户共享,具有尽可能小的冗余度,与应用程序彼此独立的数据集合 数据库是一个企业非常重要的,其实就相当于我们每个人的信息就是我们每个人的属性,并把他记录在一个文件里 我们现在学习对数据库的一些基本操作,其实就是一个高级的excel表格
2.什么是mariadb数据库
mariadb数据库管理系统是mysql的一个分支,主要由开源社区在维护,采用GPL授权许可,mariadb的目的是完全兼容mysql 包括API和命令行,使之能轻松成为mysql的替代品,在存储引擎方面,使用Xtradb来代替mysql的Innodb mariadb由mysql的创始人Micheal Widenius主导开发,他早前曾以10E美元的价格,将自己创建的公司Mysql AB卖给了SUN 此后随着SUN被甲骨文收购,Mysql的所有权落入Oracle的手中,mariadb名称来自创始人女儿的名字 MariaDB基于事务的Maria储存引擎,替换了Mysql的MyISAM储存引擎,它使用了Percona的Xtradb,innodb的变体 分支的开发者希望提供访问即将到来的mysql5.4 Innodb性能,这个版本包括了PrimeBase XT(PBXT)和FederatedX储存引擎 Micheal Widenius离开了SUN之后觉得依靠SUN/Oracle来发展mysql,实在很不靠谱,于是决定重新开发代码全部开源免费关系型数据库,这就是mariadb 在navicat中操作mariadb的界面和提示符还是mysql端口也是3306,外人看起来除了数据库名字改了其他和mysql完全一致 mariadb在各方面都是mysql创新和提高版本而不是简单的替代品 mysql和mariadb开发团队一致,区别在于mysql已经被oracle闭源了,而mariadb是开源的
3.搭建实验环境
步骤一: 配置网络
步骤二: 配置网络yum源
步骤三: 修改主机名为mariadb.westos.com
步骤四: 安装mariadb
步骤五: 启动mariadb服务 ,输入mysql进入mysql管理
用户
4.安全初始化
数据库的起始状态是不安全的 mysql_secure_installation数据库安全初始化脚本,给定root用户及密码
配置结束 此时再次输入mysql就无法进入数据库了
5.登陆数据库
mysql -uroot -predhat 这样有回显,不是很安全
所以一般使用 mysql -uroot -p 再输入密码,这样没回显
6.安全设置
默认情况下,数据库的网络接口是打开的,为了安全需要关闭此接口 netstat -antlupe | grep mysql 查看mysql使用的网络接口
/
默认开启3306端口
vim /etc my.cnf 关闭网络接口,开着很不安全,别人可以通过网络接口看到我的数据库 skip-network=1 关闭网络接口3306
重启网络发现端口已经关闭
mysql -uroot -p 本地root用户登录,这样就很安全
数据库的管理
数据库的查询
mysql -uroot -p 先进入数据库
SHOW DATABASES;查看都有哪些数据库,可以看到存在的数据库的名字
USE DATABASENAME; 进入指定数据库
SHOW TABLES;查看数据库中有哪些表格
DSEC 表格;查看表格的结构
SELECT * FROM TABLENAME;查看表格中的内容
SELECT Host User (列:字段条件) FROM user(表格名字) WHERE User=‘root’(行条件);相当于查询条件
注意:所有查询都是以分号结束的
数据库的建立
mysql -uroot -p 进入数据库
SHOW DATABASES;查看已经有了的库
CREATE DATABASE westos(名字)建立新库
USE westos; 进入新建的库 SHOW TABLES; 查看表格,发现为空
CREATE TABLE linux ( 在这个库里建立表格linux; -> username varchar(50) 50字符长度 not null 不能为空 -> password varchar(50) not null ); 以这个结尾
DESC linux查看表格的结构
INSERT INTO linux(新建表格名字) VALUES('yty','123');插入信息符号必须是英文字符 SELECT * FROM linux; 查询字段在linux表中
SELECT username from linux; 查看username在linux表中
数据库更改
数据库的名字不能随便更改(涉及到数据库之间的关注查找) 其实数据库也四以目录下文件的形式存在的 在目录下,也可以直接改数据库的名字,也能成功,但不安全
UPDATE linux SET password=('lee') WHERE username='yty';更改linux表中username是yty的,password为lee ==(明文)==
UPDATE linux SET password=password('123') WHERE username='yty';更改linux表中username是yty的,password为lee ==(非明文)==
ALTER TABLE linux ADD classvarchar(5);在linux表里添加列class
ALTER TABLE linux DROP class;在linux表中删除class这个列
ALTER TABLE linux ADD age varchar(5) AFTER username; 在linux表中添加age列在username之后,password之前
ALTER TABLE linux RENAME westos;给linux表改名为westos
数据库的删除(数据库,表格,表格里面的内容)
删除前先备份 mysqldump -u+用户 -p+密码 +数据库 > /mnt/数据库.sql
DELETE FROM westos WHERE username='yty';删除westos表中里面名字是yty这一行
DROP TABLE westos; 删除TABLE表 westos,
SHOW DATABASES; DROP DATABASE westos; 删除数据库westos;
恢复数据库westos的时候,先建立这个库再将原来的数据倒入
可见数据已经完全恢复。
插入数据
INSERT INTO westos VALUES ('yty1','5','345');
删除yty2用户这一行 DELETE FROM westos WHERE username='yty2'
INSERT INTO westos VALUES ('yty','66','456');
当名字一样时候,都为yty1,删除的时候必须要加一个不同的附加条件
删除两行 DELETE FROM westos WHERE username='yty1'or username='yty3';
删除westos表
用户授权
开启网络接口3306 重启mariadb服务 netstat -antlupe | grep mysql 查看网络接口是否开启
用root登陆mysql之后,创建一个新的用户:westos,密码也为westos,只能从本地登陆。
可见westos用户已经创建。
退出root,用westos登陆,mysql
可以看到,westos用户看不到DATABASE库。
再次用root用户登陆,然后分配权限。
GRANT SELECT,INSERT on mysql.* TO westos@localhost; 对westos授权mysql这个库里面所有的表格内容
SHOW GRANTS FOR westos@localhost; 看westos这个本地用户的权力
再次用westos用户登录mysql
使用SHOW DATABASES时候已经可以看到myql这个库,使用USE mysql时候,已经可以进去mysql这个库,并且使用SHOW TABLES也可以看到mysql这个库里的表。
再次切换root用户登陆mysql
REVOKE SELECT,INSERT ON mysql.* FROM westos@localhost; 回收SELECT和INSERT权力对于本地westos用户。
SHOW GRANTS FOR westos@localhost;
再次用westos登陆mysql,SHOW DATABASES什么都看不到了
再次用root登陆
删除westos用户 DROP USER westos@localhost;
westos@localhost 用户已经被删除
FLUSH PRIVILEGES 刷新数据库的所有东西 给用户授权必须是root用户阿兹可以查看和给本地用户权力
数据库的备份
mysqldump -uroot -predhat mysql > /mnt/mysql.sql 备份mysql这个库 mysqldump -uroot -predhat --all-database 备份所有库
数据库的恢复
删除westos库
恢复方式1
先用root用户登陆mysql然后将原来的库建立出来。
然后再用命令,将备份的数据导入westos库中
可看到完全恢复
恢复方式2
先删除westos库
直接在备份的数据库文件里写入要恢复的库信息 vim /mnt/westos.sql 写入: CREATE DATABASE westos; USE westos; mysql -uroot -predhat < /mnt/westos.sql直接恢复数据库
再次以root登陆mysql,发现已经全部恢复。
数据库管理密码问题
知道数据库密码的时候,可以直接更改 mysqladmin -uroot -predhat password westos 将root登陆用户密码改为westos
密码修改成了westos,且成功登陆
当密码忘记的时候 systemctl stop mariadb 先关闭服务 mysqld_safe --skip grant-tables &将安全检测进程打入后台 mysql 登陆mysql数据库 UPDATE mysql.user set Password=password ('redhat') WHERE User='root'; 改root用户数据库的密码
再开启一个shell的table shift+ctrl+t
此时可以不用密码直接进入mysql
结束关于mysql的进程 kill -9
如果不结束的话,直接重启mariadb服务,设置的密码就没用
登陆密码为设置的密码。
且mysql不能登陆数据库
7.安装phpadmin数据库图形管理
yum install -y httpd firewall-cmd --list-all firewall-cmd --permanent --add-service=http firewall-cmd --reload tar zxf phpMyadmin-4.0-10.20-all-languages.tar.gz -C /var/www/html/ mv phpMyadmin-4.0-10.20-all-languages phpMyadmin yum install -y php systemctl restart httpd yum install -y php-mysql yum install -y php-mbstring-5.4.16-21.el.x86_64.rpm systemct restart httpd 通过浏览器访问: http://172.25.254.115/phpMyadmin
从真机发送安装包给虚拟机
安装httpd
启动httpd服务,并且设置开机生效
给firewall中加入http服务
安装php服务
安装php-mysql以及php-mbstring-5.4.16-21.el.x86_64.rpm
==重启httpd服务
在浏览器中浏览 http://172.25.254.115/phpMyadmin ,发现可以使用图形化管理数据库
选择语言用root用户密码登陆即可
建立yty111数据库
在yty111数据库中建立westos表
插入值。
然后利用命令查看数据库,看用图形的方式建立的数据在不在
要确定唯一的值才可以更改表中的数据,我设置了username为唯一
成功