安装部署mysql 5.7.17数据库,破解数据库管理员root密码
准备环境
关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
禁用selinux
setenforce 0
编辑配置文件
vim /etc/sysconfig/selinux
SELINUX=disabled
:wq
检查是否有冲突软件mariadb(如果没有安装跳过)
# 停止服务
systemctl stop mariadb
# 忽略依赖关系卸载软件
rpm -e --nodeps mariadb mariadb-server
# 删除服务的主配置文件
rm -rf /etc/my.cnf
# 删除数据
rm -rf /var/lib/mysql/*
搭建mysql服务器
拷贝软件 mysql-5.7.17.tar 到 /root 目录下
#解压
tar -xf mysql-5.7.17.tar
#查看解压后的文件
ls mysql-community-*.rpm
#安装软件
yum -y install mysql-community-*.rpm
启动服务并设置开机运行 查看进程和端口
#启动服务
systemctl start mysqld
#设置开机运行
systemctl enable mysqld
#查看端口号
netstat -utnlp | grep 3306
#或
ss -utnlp | grep 3306
#查看进程
ps aux | grep mysqld
#或
ps -C mysqld
查看服务初始密码
说明:初始密码是随机生成的,每台机器的都不一样
grep password /var/log/mysqld.log
root@localhost:后面的就是初始密码,注意不要把空格复制上
使用初始密码连接服务
初始密码里会有一些特殊符号,有些符号在命令行下是有特殊功能的,为了使其成为普通字母,要使用单引号把密码引起来
mysql -uroot -p'初始密码'
修改登录密码
必须要修改初始密码,否则数据库不能正常使用。
修改密码且密码要符合复杂度要求(密码要求包涵数字,大小写字母,符号 ,同时不能小于8个字符)
mysql> alter user root@"localhost" identified by "新密码";
#退出数据库
mysql> exit;
使用修改的密码登录
mysql -uroot -p新密码
#查看已有的库
mysql> show databases;
#默认的4个库 不允许删除 库存放的是不同作用的数据
#退出数据库
mysql> exit;
mysqld服务相关参数
文件 说明
/etc/my.cnf 主配置文件
/var/lib/mysql 数据库目录
MySQL服务默认端口号 3306
数据库服务进程名 mysqld
传输协议 TCP
进程所有者 mysql
进程所属组 mysql
错误日志文件 /var/log/mysqld.log
基本操作
mysql> show databases; 查看已有库
mysql> select user(); 显示登录用户名和客户端地址
mysql> select version(); 查看MySQL软件版本号
mysql> select database(); 显示当前所在的库(类似系统命令pwd的功能)
mysql> use sys; 进入到sys库里( 类似系统命令cd)
mysql> select database(); 在查看所在的库
mysql> show tables; 显示库下已有的表 (表,用来存数据的文件 )
mysql> exit; 断开连接(退回到系统命令行)
破解数据库管理员root密码
第一种破解方法,需要重启数据库服务
#修改主配置文件并重启数据库服务
vim /etc/my.cnf
[mysqld]
skip-grant-tables #连接服务不需要输入用户名和密码
:wq
systemctl restart mysqld
#无密码登录
mysql
#修改管理员root 本机登陆密码
mysql> update mysql.user set authentication_string=password("密码")
where user="root" and host="localhost";
#确保修改生效
mysql> flush privileges;
#查看数据库管理员root本机登录密码(密码是加密后保存的)
mysql> select host,user,authentication_string from mysql.user
where user="root" and host="localhost";
mysql> exit;
#注释主配置文件里添加的行并重启服务
vim /etc/my.cnf
[mysqld]
#skip-grant-tables
:wq
#重启服务
systemctl restart mysqld
#使用破解的新密码登陆
mysql -uroot -p新密码
mysql>
第二种破解方法,不需要重启数据库服务
工作中线上服务器是不能随便重启的,适合破解线上数据库服务器管理员root 密码,用已知密码的服务器密码覆盖忘记密码的服务器密码。
首先拷贝已有mysql库中的账号密码 覆盖遗忘root密码的mysql库
#将xx机器上的/var/lib/mysql/mysql目录全部拷贝到本机相同目录并覆盖
#注意本目录会覆盖所有账户和密码,不影响库数据
scp -r 192.168.xx.xx:/var/lib/mysql/mysql /var/lib/mysql/
检查本机上有pstree命令
which pstree || yum –y install psmisc
用pstree查看mysqld服务的父进程pid
# pstree -p | grep mysqld | head -1
重新加载数据库目录下的文件
kill -SIGHUP 父进程pid
用覆盖过来的mysql的root密码登录
mysql -uroot -p密码
登陆后可以重新修改root密码
注意:修改密码 必须要知道旧密码 才能设置新密码并且要符合密码策略的要求
#方法一 登录后修改,数据库管理员连接服务后 修改登陆密码
mysql -uroot -p密码
Mysql> alter user root@”localhost” identified by "新密码";
MySQL> exit;
#方法二 登录前修改
mysqladmin -uroot -p旧密码 password “新密码”