您的位置:首页 > 数据库 > MariaDB

Linux系统下数据库Mariadb(下)数据的备份和恢复,密码更改和破解,数据库的网页操作

2019-08-08 22:20 721 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/monster_warm/article/details/98850008

备份与恢复

数据的备份
备份所有数据库

mysqldump -uroot -predhat --all-data    ##备份所有数据库的所有数据和结构
mysqldump -uroot -predhat --all-data   --no-data    ##备份所有数据库的结构但是不备份数据

备份指定的数据库

mysql -root -predhat  userdata  >   /mnt/userdata.sql  ##将userdata数据库中的数据输出重定向到/mnt/userdata.sql 中
mysql -uroot -predhat -e "DATABASES userdata;"
mysql -uroot -predhat -e "SHOW DATABASES;"


删除userdata数据库

mysql -uroot -predhat -e "DROP DATABASE userdata;"  ##删除userdata数据库
mysql -uroot -predhat -e "SHOW DATABASES;"     ##查看当前的数据库,确认userdata数据库已经删除;方便后续的实验效果的查看


恢复方式1

mysql -uroot -predhat < /mnt/userdata.sql    ##将/mnt/userdata.sql中备份的数据输出重定向到数据库;
ERROR:NO database selected    ##原因是没有指定要输出重定向到哪个数据库中

解决方法:
方法一:新建一个数据库,直接在命令中指定输出重定向到该数据库中

mysql -uroot -predhat -e "CREATE DATABASE userdata;"  ##新建userdata这个数据库
mysql -uroot -predhat userdata < /mnt/userdata.sql ##指定输出重定向到userdata这个数据库中


方法二:在数据库的数据文件中直接写入相关的命令

vim /mnt/userdata.sql
在21、22行处增加
CREATE DATABASE userdata;
USE userdata;



测试

mysql -uroot -predhat -e "SECLECT * FROM userdata.usertab"  ##查看数据是否恢复

完整数据的备份

mysqldump --all-databases --single-transaction --triggers --routines --events --host=127.0.0.1  --port=3306 --user=root --password=redhat > backup.sql

在执行这种完整数据备份的时候需要将对外服务端口开再执行,一般情况下,这种备份方式不常用。

超级用户密码的修改

记得当前的超级用户密码,修改密码

mysqladmin -uroot -predhat password westos    ##直接将超级用户root的密码由redhat改为westos


忘记超级用户密码,修改密码
在数据库启动的时候需要密码是因为启动时会读取授权表,去核对用户与对应密码之间的关系,但是由于现在忘记了超级用户密码,而密码的修改又必须由超级用户登录进行修改,所以要跳过授权表,直接进行免密登录再修改

systemctl stop mariadb     ##在执行跳过授权表操作之前,要先关闭mariadb服务,否则会报错
mysqld_safe --skip-grant-tables &   ##让进程在后台运行,不占用终端


修改密码

mysql     ##直接登录
UPDATE mysql.user SET Password='redhat' WHERE User='root';    ##修改root用户的密码为redhat,此时密码为明文
UPDATE mysql.user SET Password=password('redhat') WHERE User='root';    ##修改root用户的密码为redhat,此时密码显示为加密字符




为了安全,将免密登录关闭,不跳过授权表的读取

ps aux | grep mysql
kill -9  mysql进程ip

测试

systemctl start mariadb
mysql -uroot -predhat   ##能登录成功说明更改成功

mariadb to web (phpMyAdmin)

yum install -y httpd
systemctl start httpd   ##开启httpd服务;



2.将http服务添加到火墙中,要不然可能会出现server not connect的报错

firewall-cmd --list-all
firewall-cmd --permanent --add-service=http   ##将http服务添加到火墙中
firewall-cmd --reload


3.添加服务后浏览器测试会出现下图界面

原因是因为本来http服务默认读取的是

/var/www/html
下的文件,但是因为此时该目录为空,所以自动读取到红帽官方的网站;
可以测试一下:

cd /var/www/html/
vim index.html    ##在文件中写入内容


浏览器中测试出现以下界面:

测试后

rm -fr index.html
删除即可
4.

tar zxf phpMy          -C /var/www/html/   ##解压缩到/var/www/html目录下
mv                     phpMyAdmin     ##重命名,便于浏览器中的输入


在浏览器中输入

172.25.254.104/phpMyAdmin
会查看到以下界面

此时显示的形式为静态显示,原因是php不支持msql和缺少扩展文件;

5.下载PHP和相关扩展文件

yum list php   ##查看php的版本
yum install -y php     ##下载php


systemctl restart httpd

在浏览器中输入

172.25.254.104/phpMyAdmin
会查看到以下界面,缺少扩展文件mbstring(版本要相对应)

下载mbstring安装包

rpm -ivh php-mbsrting-5.4.16
systemctl restart httpd


在浏览器中输入

172.25.254.104/phpMyAdmin
会查看到以下界面,缺少扩展文件mysqli(版本要相对应)

yum search http ##找到mysql文件
yum install mysql(相关文件)
systemctl restart httpdphp -m | grep mysql   ##查看对应是否出现mysql

在浏览器中输入

172.25.254.104/phpMyAdmin
会查看到以下界面,则成功,登录新建数据库表



测试
使用命令方式直接进行查看,验证在网页上的mariadb的数据是否通过命令也能查看,如果能,则说明数据库既可以通过命令操作也可以通过网页,网页操作比较方便。


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: