数据库的管理
1、初步了解数据库
(1)数据库的类型
数据库的类型常用的有两种:
mysql、oracle
其他还有:
mangodb、db2、sqlserver、sqlite等
(2)数据库的概念
数据库(database)是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合,可视为电子化的文件柜(存储电子文件的处所),用户可以对文件中的数据进行新增、查询、更新、删除等操作。
2、mysql的管理
(1)mysql的安装
命令 |
功能 |
vim /etc/yum.repos.d/xxx.repo |
检查yum是否设置好,成功设置后可使用 |
yum install mariadb-server |
安装mysql(mariadb-server就是要安装的mysql) |
systemctl start mariadb |
开启mariadb服务(mysql服务) |
mysql |
直接输入并回车即可进入mysql操作界面,此时刚刚安装,无需密码,进入后操作时需使用sql语句 |
(2)mysql的安全初始化
mysql刚刚安装时无需密码即可访问,安全等级低,需对mysql做安全初始化,提高mysql的安全等级。
命令 |
功能 |
mysql_secure_installation |
设置mysql的安全初始化 |
Entet current password for root (enter for none): |
|
Set root passwored? [Y/n] |
|
Remove anoymous users? [Y/n] |
|
Disallow root login remotely? [Y/n] |
|
Remove test database and access to it? [Y/n] |
|
Reload privilege tables now? [Y/n] |
|
mysql -uroot -pxxx |
xxx为root用户登陆mysql的密码,可直接加在p后登陆,但这样密码是明文的,安全级别地,建议不用此方法 |
mysql -uroot -p |
此时不添加密码,直接登陆,登陆过程中输入密码,过程中输入密码是没有回显的,比较安全 |
netstat -antlupe |
grep mysql |
vim /etc/my.cnf |
修改配置文件 |
skip-networking=1 |
将此行设置为1,关闭mysql开启的接口,使mysql更安全 |
systemctl restart mariadb |
完成后重启mysql服务,使修改立即生效 |
netstat -antlupe |
grep mysql |
/var/lib/mysql |
mysql的数据目录,重装时需删掉该目录 |

3、用户登陆mysql密码管理
(1)如何正常修改密码
命令 |
功能 |
mysql -uroot -p123 |
用原密码123,使root用户登陆mysql,成功 |
mysqladmin -uroot -p123 password 456 |
将root用户登陆mysql的密码由123改为456 |
mysql -uroot -p123 |
用原密码123,使root用户登陆mysql,此时密码已修改,登录失败 |
mysql -uroot -p456 |
用新密码456,使root用户登陆mysql,成功 |

(2)密码丢失时如何重置
命令 |
功能 |
systemctl stop mariadb |
关闭mysql服务 |
mysql_safe --skip-grant-tables & |
进入mysql安全模式修改,进入后,进程将一直运行,所以&打入后台运行 |
ps aux |
grep mysql |
mysql |
此时可直接免密进入mysql中 |
SELECT User,Password FROM mysql.user |
查看mysql库,user表中的User和Password字段,查看加密后的密码 |
UPDATE mysql.user SET Password=password(‘123’) WHERE User=‘root’; |
修改mysql库,user表中,Password字段的内容为password加密后的“123”,指定寻找的该Password字段的User字段为“root”(这样可以使修改目标更精确) |
SELECT User,Password FROM mysql.user |
查看mysql库,user表中的User和Password字段,查看加密后的密码,此时虽看不懂加密文字,但可发现与修改前的加密密码不同 |
quit |
修改完成后退出mysql |
ps aux |
grep mysql |
killall -9 mysql_safe(进程名称) |
使用进程名称关闭该名称的进程 |
kill -9 3778(进程号) |
使用进程号关闭该进程号的进程 |
ps aux |
grep mysql |
systemctl start mariadb |
开启mysql服务 |
mysql -uroot -p123 |
尝试用修改后的123密码是否可以使root用户登陆mysql,此时应可以登陆 |

4、mysql中的常用语句
注 :在mysql语句中,需以“;”结尾,并且命令规范需要使用大写字母(但不区分大小写,只是大写是规范方式),库名、表名、字段名等区分大小写,在未结束前回车为换行,写完后用“;”结尾表示结束。
(1)查询常用语句
命令 |
功能 |
SHOW DATABASES; |
查看现有的所有库 |
SHOW TABLES; |
查看当前的所有表(需进入到库中) |
SHOW TABLES FROM DATABASENAME; |
查看databasename库中的所有表(无需进入库中) |
USE DATABASENAME; |
进入到databasename库中(更改当前所在地) |
SELECT * FORM TABLE; |
查看表中的所有内容 |
SELECT Password FROM user WHERE User=‘root’; |
查看表中的Password字段 |

(2)建立常用语句
命令 |
功能 |
SHOW DATABASES; |
查看当前的所有库 |
CREATE DATABASE zero; |
创建数据库zero |
USE zero; |
进入到zero库中 |
CREATE TABLE fate (username varchar(20) not null,password varchar(50) not null); |
在当前(zero中)创建一个表fate,建立该表的字段username,并设置最大长度为20,字段password,最大长度为50,且均不可为空 |
DESC zero; |
查看该表的结构 |
SELECT * FROM zero; |
查看表中的所有字段的内容 |
SELECT username FROM fate ; |
查看表中的的username字段的内容 |

(3)更改和删除常用语句
命令 |
功能 |
UPDATE fate SET password=password(‘123’) WHERE username=‘abc’; |
修改表fate的username为abc的password字段为password加密方式的123 |
ALTER TABLE fate ADD class vachar(20); |
给表fate添加class字段,长度限定为20 |
ALTER TEBLE fate DROP class; |
给表fate删除class字段 |
ALTER TABLE fate ADD age varchar(20) AFTER password; |
给表fate添加长度限定为20的age字段,添加至password字段后 |
ALTER TABLE fate RENAME newname; |
给表fate重命名为newname |
DELETE FROM fate WHERE 字段名=’内容’ |
删除表中的内容,指定某一字段对应内容,来指定删除的行 |
DROP TABLE fate; |
删除表fate |
DROP DATABASE zero; |
删除库zero |

(4)用户的授权

5、数据库的备份
命令 |
功能 |
mysqldump -uroot -p123 zero > /mnt/zero.sql |
备份一份库zero的文件到/mnt/zero.sql |
cd /mnt |
到/mnt目录中方便操作 |
ls |
显示内容,检是否有zero.sql |
mysql -uroot -p123 -e “SHOW DATABASES;” |
显示现有数据库 |
mysql -uroot -p123 -e “DROP DATABASE zero;” |
删除数据库zero,模拟第一种恢复方法 |
mysql -uroot -p123 -e “SHOW DATABASES;” |
显示现有数据库,检查zero是否删除 |
mysql -uroot -p123 < /mnt/zero.sql |
将库zero的备份/mnt/zero.sql传入数据库中,此时失败 |
mysql -uroot -p123 -e “CREATE DATABASE zero;” |
先在数据库中建立库zero |
mysql -uroot -p123 -e “SELECT * FROM zero.fate;” |
查看zero的框架是否恢复(此时没有恢复,找不到原有的fate表) |
mysql -uroot -p123 zero < /mnt/zero.sql |
再将库zero的备份/mnt/zero.sql传入数据库中,此时成功,此时需指定库名 |
mysql -uroot -p123 -e “SELECT * FROM zero.fate;” |
查看zero的框架是否恢复(此时恢复,显示fate表内容) |
mysql -uroot -p123 -e “DROP DATABASE zero;” |
删除库zero,模拟第二种恢复方法 |
mysql -uroot -p123 -e “SHOW DATABASES;” |
显示现有数据库,检查zero是否删除 |
vim /mnt/zero.sql |
修改库zero的备份文件 |
CREATE DATABASE zero; |
在文件中添加命令至其他命令之前,恢复时自动建立库zero |
USE zero; |
恢复时自动进入zero库中,指定库名,修改完成后退出保存 |
mysql -uroot -p123 < /mnt/zero.sql |
再将库zero的备份/mnt/zero.sql传入数据库中,此时成功,因在备份文件中指定过库,此时无需指定库名 |
mysql -uroot -p123 -e “SELECT * FROM zero.fate;” |
查看zero的框架是否恢复(此时恢复,显示fate表内容) |

6、数据库的图形化管理
命令 |
功能 |
yum install httpd -y |
下载apache软件 |
systemctl start httpd |
开启httpd服务 |
yum install php -y |
下载php |
wget xxx |
在网络上得到phpMyAdmin-3.4.0-all-languages.tar.bz2的安装包 |
tar jxf phpMyAdmin-3.4.0-all-languages.tar.bz2 |
解压phpMyAdmin-3.4.0-all-languages.tar.bz2安装包 |
ls |
查看解压后文件是否存在 |
rm -rf phpMyAdmin-3.4.0-all-languages.tar.bz2 |
删除多余安装包 |
mv phpMyAdmin-3.4.0-all-languages /var/www/html/phpmysql |
将解压后的文件移动至/var/www/html中,移动的过程是重命名过程,给它重命名为phpmysql,方便使用 |
php -m |
查看php此时含有的组件,此时没有mysql组件 |
yum search php |
查找php相关安装包,找到与mysql相关的组件 |
yum install php-mysql.x86_64 -y |
安装与mysql相关的php组件安装包 |
php -m |
安装后查看,此时有mysql组件 |
systemctl restart httpd |
重启httpd服务 |
systemctl stop firewalld |
关闭防火墙 |
172.25.254.xxx(本机IP)/phpmysql |
在网页中输入该地址,快捷进入数据库的图形化界面 |
