数据库的管理
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的数据目录,重装时需删掉该目录 |
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/4c2d85d84c36fbbe921d37e8cac146fa.png)
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,成功 |
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/ab290c813de4dcaee7d442ce6c7f76f7.png)
(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,此时应可以登陆 |
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/eaa2e04c9efc6654047bbbd4b5c662af.png)
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字段 |
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/86e47c61a1910ce8629b7778e419a7d4.png)
(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字段的内容 |
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/4fb13dd50b70dff48cf2d7635d774def.png)
(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 |
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/841bd8c8bd6f9921a53cb928d77112ab.png)
(4)用户的授权
命令 | 功能 |
---|
CREATE USER student@localhost identified by ‘student’; | 建立student@localhost用户身份,认证时为student |
GRANT SELECT ON test.* TO student@localhost; | 将test库及库中内容的权限给student@localhost |
SHOW GRANTS FOR student@localhost; | 查看student@localhost的所有权限 |
REVOKE INSERT ON test.* FROM student@localhost | 删除student@localhost对test库的INSERT权限 |
DROP USER student@localhost; | 删除student@localhost用户身份 |
FLUSH PRIVILEGES; | 刷新 |
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/d61efd37de26d923d48dc2e5b536c3f9.png)
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表内容) |
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/7c1ac3ec61d4a79c6a024b5c36dcc99a.png)
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 | 在网页中输入该地址,快捷进入数据库的图形化界面 |
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/6ee57b99b08caffaf325e0566dd25386.png)