以下的实操都是在redhat7.3上;
数据库
什么是数据库?(数据库的概念来自百度百科)
数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。
数据库的定义不唯一,现在通俗易懂的介绍一下的概念,数据库是"按照数据结构来组织、存储和管理数据的仓库"。简单的来说是本身可视为电子化的文件柜————存储电子文件的处所,用户可以对文件中的数据进行增、删、改、查等等操作。数据库也是以一定方式储存在一起、能为多个用户共享、具有尽可能小的冗余度的特点、是与应用程序彼此独立的数据集和。
关系型数据库:oracle、mysql、pgsql;
内存型数据库:redis;
中间型数据库:mongodb;
什么是开源?
开源(开放源码)被非盈利软件组织注册为认证标记,并对其进行了正式的定义,用于描述那些源码可以被公众使用的软件,并且此软件的的使用、修改和发行也不受许可证的限制。人们需要知道的是组成软件的包和它们的许可证是开放的源代码。此外,单独的许可证可能不是“货物”,它由美国专利和商标局注册认证标志。但是软件的作者显然必须能够自我认证、在适当的时刻确认他们的软件是按照OSI Certified的开放源代码方式发布的。
mariadb简介
MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL维权许可MariaDB的目的是完全兼容MySQL,包括API和命令行,是MySQL的代替品。MariaDB由MySQL的创始人Michael Widenius主导开发,他早先曾以10亿美元的价格,将自己创建的公司MySQLAB卖给了SUN,此后,随着SUN被甲骨文收购,MySQL的所有权也落入Oracle的手中MariaDB名称来自Michael Widenius的女儿Maria的名字。
数据库安装
一个主机可以创建多个数据库,端口可以有多个;
-
下载数据库服务mariadb-server
-
开启数据库服务
-
mysql默认的数据文档存储目录为:/var/lib/mysql
配置文件:/etc/my.cnf
-
开机自启mariadb数据库服务;
-
无密码直接进入数据库,这样存在不安全性;
-
netstat -antulpe 列出所有端口(包含监听和未监听的)
-
在配置文件中将数据库端口:3306彻底关闭[mysqld]–skip-networking=1,是为了安全性;重新启动服务;再次查看mysql的端口服务,应该是不存在的;
-
安全初始化mysql_secure_installation,设置密码;
-
root用户输入密码进入数据库,-u用户,-p密码,-n数据库主机,-P端口号,quit/exit退出;NULL是否为空;
数据库基本管理(查、增、改、删)
查
- 直接查看数据库mysql -uroot -predhat;也可以用命令直接查看数据库 mysql -uroot -predhat -e “SHOW DATABASES;” ;也可以用重定向的方法查看数据库
重定向的方法查看数据库的库:
直接查看
2. 数据库查询
(1)查询表结构:DESC user;(语句要以分号结尾)
(2)针对字段搜索:SELECT host ,user,Select_priv FROM user;
(3)添加条件:SELECT host,user,Select_priv FROM user WHERE Host=‘localhost’;
增
- 建立数据以及表单;
(1)创建库名为wangyibo:CREATE DATABASE wangyibo;
(2)查看表:SHOW TABLES;
(3)建立表; CREATE TABLE art(
-> username varchar(10) not null,
-> passwd varchar(20) not null,
-> sex varchar(6) not null
-> );
(4)查看wangyibo库的art表的结构:DESC art;
(5)插入数据:INSERT INTO art VALUES(“Justin”,“Justin”,“male”);
(6)查看art表:SELECT * FROM art;
(7)针对字段搜索表单:SELECT username,sex FROM art;
改
ALTER TABLE语句:是在已存在的表中添加、修改、删除列;
-
添加字段:ALTER TABLE art ADD class varchar(10);
-
查看wangyibo库的art表的结构:DESC art;
-
将表单名称art改为user:
-
在字段sex后面添加age字段:ALTER TABLE user ADD age varchar(10) AFTER sex;
-
查看表:SELECT * FROM user;
-
更改某用户的某字段的内容:UPDATE user SET class=‘python’ WHERE username=‘Justin’ AND passwd=‘Justin’;
-
更新数据:SELECT * FROM user;
INSERT INTO user VALUES(‘jingbao’,‘jingbo’,‘male’,‘linux’);
SELECT * FROM user;
删
删除数据库、表单、用户数据;
- 删除某用户数据:DELETE FROM user WHERE username=‘jingbao’;
SELECT * FROM user;
- 删除表单:SHOW TABLES;
创建的新表单(为了查看删除表单的这个命令而创建的):CREATE TABLE zhao(
-> username varchar(10)
-> );
查看表格:SHOW TABLES;
删除zhao表格:DROP TABLE zhao;
再次查看表格是否还存在zhao表格: SHOW TABLES;
- 删除数据库:SHOW DATABASES;
创建的新数据库(为了查看删除数据库的这个命令而创建的):CREATE DATABASE westos;
查看数据库:SHOW DATABASES;
删除名为westos的数据库:DROP DATABASE westos;
再次查看数据库:SHOW DATABASES;
用户和访问权限
创建用户
方法一:
创建数据库
- 创建用户:CREATE USER zhao@localhost IDENTIFIED BY ‘zhao’;——>创建普通用户为zhao用户可以在本地登陆且验证密码为zhao;
CREATE USER zhao@’%(所有的ip)’ IDENTIFIED BY ‘redhat’;
- 用户授权:GRANTS SELECT ON userdata.* TO zhao@localhost;拥有查看权限
GRANTS INSERT ON userdata.* TO zhao@localhost;拥有插入权限 - 重载(刷新)授权表;FLUSH PRIVILGES;
- 查看用户授权:SHOW GRANTS FOR zhao@localhost;
5.
6. 撤销用户插入权限:REVOKE INSERT ON userdata.* FROM zhao@localhost;
撤销用户权限后,必须重新进入该普通用户的数据库才能看到修改权限的状态,无法识别权限被改。因为刚开始登陆已经是进入了数据库的状态,所以不会察觉被改;
每次进入一定一定要记住自己进入的是超户root还是普通用户!!!
方法二:
1、GRANTS SELECT,INSERT ON userdata.* TO zhao@localhost DENTIFIED BY ‘zhao’;
2、REVOKE INSERT ON userdata.* FROM zhao@localhost;
删除用户:DROP USER zhao@localhost;
修改数据库属性内容;
备份与恢复
备份:
- 备份数据库的全部:
mysqldump -uroot -predhat --all-data
mysqldump -uroot -predhat --all-data --no-data
- 备份部分数据库:
mysqldump -uroot -predhat userdata > /mnt/userdata.sql
删除数据库:mysql -uroot -predhat -e “DROP DATABASE userdata;”
查看数据库:mysql -uroot -predhat -e “SHOW DATABASES;”
恢复
恢复方式1:
- 导入userdata库:mysqldump -uroot -predhat < /mnt/userdata.sql 会有报错;
- vim /mnt/userdata.sql
在配置文件中添加:
21 CREATE DATABASE userdata;
22 USE userdata;
.
- 以超级用户root的身份进入数据库:
mysql -uroot -predhat - 查看数据库:
SHOW DATABASES;
5.查看userdata数据库的usertab的表单:
SELECT * FROM userdata.usertab;
恢复方式2:
- 用命令直接在shell查看数据库:
mysql -uroot -predhat -e “DROP DATABASE userdata;”
mysql -uroot -predhat -e “CREATE DATABASE userdata;”
- 进入userdata数据库文件:
vim /mnt/userdata.sql
删除21 22行
- 指定导入userdata库:
mysql -uroot -predhat userdata< /mnt/userdata.sql
修改密码
知道密码修改密码:
mysqladmin -uroot -predhat password westos
^旧密码 ^新密码
测试:
mysql -uroot -pwestos
不知道超级用户密码该密码:
- 关闭数据库:
systemctl stop mariadb.service - 跳过授权表
mysqld_safe --skip-grant-table & - 进入数据库
mysql
修改明文密码:
UPDATE mysql.user SET Password=‘redhat’ WHERE User=‘root’;明文密码
查看密码是明文还是密文
SELECT * FROM mysql.user;
修改密文密文
UPDATE mysql.user SET Password=password(‘redhat’) WHERE User=‘root’;密文密码;
SELECT * FROM mysql.user;
- 关闭数据库的进程(否则无法进入数据库) :
ps aux|grep mysql
kill -9 mysql进程号( 8922 9068)
systemctl restart mariadb
mysql -uroot -predhat
什么是phpMyAdmin?(概念来自百度百科)
phpMyAdmin是一个用PHP编写的软件工具。是以PHP为基础,以Web-Base方式架构在网站主机上的MySQL的数据库管理工具,让管理者可用Web接口管理MySQL管理库。借由此Web接口可以成为一个简易方式输入繁杂SQL语法的较佳途径,尤其要处理大量资料的汇入及汇出更为方便。其中一个更大的优势在于由于phpMyAdmin跟其他PHP程式一样在网页服务器上执行,但是您可以在任何地方使用这些程式产生的HTML页面,也就是远程管理MySQL数据库,方便的建立、修改、删除数据库以及资料表。也可由phpMyAdmin建立常用的php语法,方便编写网页时所需要的sql语法正确性。
安装phpMyAdmin
- 安装httpd服务:
yum install -y httpd
因为虚拟机早下载了httpd服务,所以就不用再下载了;
- 在防火墙中加入http服务,否则数据只能出不能进;
firewall-cmd --permanent --add-service=http
firewall-cmd --reload
- 测试:
在浏览器中查看http://172.25.255.110会报错:
unable to connection
原因:
1、未开启防火墙
2、未开启HTTP服务;
4. 安装php服务
yum install -y php
systemctl restart httpd
5. 测试:
在浏览器中查看http://172.25.255.110/phpMyAdmin会报错:
下载完应该有两行报错;
6. 安装缺失的两个软件包以及php-mysql服务
yum install -y php-mysql
7. 重启服务:
systemctl restart httpd
8. 测试
浏览器访问: http://172.25.254.110/phpMyAdmin
会显示登陆数据库的页面
登录:账号root
密码:redhat