数据库
一、什么是数据库
顾名思义数据库用来存放数据表格
二、数据库安装及安全初始化
(一)数据库安装
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)
(二)安全初始化
如上可以无密码登录数据库,对于数据库而言是极不安全的。为了保证数据库的安全性,需要对数据库进行安全初始化。
(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
2.vim /etc/my.cnf #端口配置
在11行之前编辑:
skip-networking=1 ##开启跳过网络访问的功能,即关闭网络端口
:wq
systemctl restart maridb ##重启服务
(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!
2.登录格式
mysql -uroot -p密码 #用户root使用密码登录数据库,但方式会显示秘密,仍存在安全性问题
[[email protected] mnt]# mysql -uroot -p
Enter password: ##不显行输入密码
Welcome to the MariaDB monitor. ...
(三)管理数据库
(1)查询数据库
进入数据库中:
1. show databases; ##查看数据库
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql | ##包含数据库mysql
| performance_schema |
+--------------------+
3 rows in set (0.00 sec)
2. use mysql; ##进入数据库
3. show tables; ##查看当前数据库中的表格
desc 表名; ##查看表中的字段
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等
##查看表中User包含哪些数据即哪些用户
(2)新建数据库
create database 数据库名称; #新建数据库
use database 数据库名; ##进入数据库
create table 表名(
->字段名1 varchar(字符长度) not null, ##定义字段名不能大于设定的字符串长度(最大为255),且不能为空
->字段名2 varchar(字符长度) not null,
->...
-> ); ##新建表格
insert into 表名 values('字符串1','字符串2',...); #写数据内容
insert into 表名 values('字符串1',password('字符串2'),...);
##字符串2的内容将不可见
(3)更新数据库信息
1. update 表名 set password=password('字符串') where username='user';
##将username='user'的密码均改为字符串1,并且加密不显示字符串内容
update 表名 set password=password('字符串') where ( username='user1' or username=’user2’);
###更新user1和user2的密码
delete from 表名 where username='user1';
##从linux 表格中删除username='user1'的信息
2. alter table 表名 add 字段名 varchar(字符长度) not null;
##在linux表格后加入某字段
alter table 表名 add 字段名 varchar(字符长度) after 已有字段;
##在linux表格的已有字段后添加字段
alter table 表名 drop 段名; ##从某表格中删除某字段
(4)删除数据库
1.delete from 表名 where 字段='字符串'; ##删除某表格中包含某字段信息的内容
drop table 表名; ##删除指定表格
drop database 库名; ##删除指定库
(5)数据库备份
1.mysqldump -uroot -p密码 --all-database ##备份所有表中的所有数据
2.mysqldump -uroot -p密码 --all-database --no-data ##备份所有表,但不备份数据
3.mysqldump -uroot -p密码 库名 ##备份指定的库
以上备份内容并为保存在文件中,可以将备份内容导入文件中进行保存,命令如下:
4.mysqldump -uroot -p密码 库名 > /目录名/文件名.sql
如:mysqldump -uroot -pwestos westos >/mnt/westos.sql
5.mysqldump -uroot -p密码 库名 表名 > /目录名/文件名.sql
##备份指定库中的指定表格至文件中
如:mysqldump -uroot -pwestos westos linux >/mnt/linux.sql
##备份westos库中的linux表至/mnt/linux.sql中
6.mysql -uroot -p密码 -e "create database 库名"
##新建库,其中:-e表示执行命令
7.mysql -uroot -p密码 库名 < /目录名/文件名.sql
##将文件中的数据导入库中
如:mysql -uroot -pwestos westos </mnt/westos.sql
(6)用户授权
先登录数据库:mysql -uroot -pwestos
1.create user 用户名@localhost identified by '密码';
##建立用户并给定密码,此用户只能通过本机登录
select User,Host from mysql.user; ##查看用户信息=用户名+登录方式
登录格式:mysql -u用户名 -p密码 ##本机登录
create user 用户名@'%' identified by '密码';
##建立用户并给定密码,此用户可以通过网络登录
登录格式:mysql -u用户名 -p密码 -h IP ##通过网络登录
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表进插值、更新、删除、查看数据的功能
3.show grants for 用户@'%' ##查看用户授权
show grants for 用户@localhost
4.revoke 权限 on 库名.表名 from 用户@localhost; ##去除用户权限
revoke 权限 on 库名.表名 from 用户@'%';
如:revokeselect,update,delete on westos.linux from [email protected];
##去除用户bai 对于westos.linux表的select、update、delete权限
drop user 用户@'%'; ##删除用户
drop user 用户@localhost;
(7)更改root用户密码
1.直接调用如下命令进行改改密:
mysqladmin -uroot -p原密码 password 新密码 ##更改用户密码为新密码
2.当忘记用户密码时,则依次执行如下操作
systemctl stop mariadb ##先关闭服务
mysqld_safe --skip-grant-tables & #开启myasql登录并跳过授权表
mysql #即可直接登录
update mysql.user set Password=password('新密码'); ##更改密码
update mysql.user set Password=password('新密码') where User=root;
ps aux | grep mysql #过滤mysql的所有进程并且关闭这些进程
kill -9 进程id
systemctl start mariadb ##开启服务
mysql -uroot -p新密码 ##使用新设定的密码
数据库的网页管理工具
基于以上实验基础
一、安装
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/ 名称 ##将该证书重命名
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! */
4.打开浏览器测试:
访问http://172.25.254.109/mysql
(1)新建数据库:westos,如下示:
(2)在新数据库westos中新建表westosuser,字段数为4
可以在服务端查看
填写表格:
执行成功后显示如下:
可在服务端查看