myqld二进制安装和破解数据库密码(linux)
安装和基本配置
1.首先把下载下来的mysql安装包放到本地这里下载的是5.7版本为演示
1)解压
tar xf mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz -C /usr/local -把安装包解压到/usr/local
cd /usr/local --跳转到这个目录
mv mysql-5.7.20-linux-glibc2.12-x86_64/ mysql --把解压完的数据库改一个名字
2 修改环境变量及生效
vim /etc/profile
export PATH=/usr/local/mysql/bin:$PATH --将 /usr/local/mysql/bin
目录添加到当前用户的环境变量 PATH
的前面
source /etc/profile --立即生效当前配置
mysql -V --查看数据库的版本
3 清理历史软件包
yum remove -y mariadb-libs
4 建用户
useradd -s /sbin/nologin mysql
5 创建数据目录
mkdir -p /usr/local/mysql/data
6 修改权限
chown -R mysql.mysql /usr/local/mysql/data
7 初始化数据
5.6 版本的初始化程序:
/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
`5.7 版本的初始化程序:
/usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
--initialize参数解释:
初始化完成后,会生成临时密码(显示到屏幕上,并且会往日志中记一份)
密码复杂度:长度:超过12位 复杂度:字符混乱组合
密码过期时间180天
==================================
准备启动脚本和基础配置文件
1 准备sys-v启动脚本
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
2 准备配置文件
vim /etc/my.cnf
[mysqld]
user=mysql
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
server_id=6
port=3306
[mysql]
socket=/tmp/mysql.sock
prompt=mysql>
3 启动数据库
service mysqld start
service mysqld stop
4 systemctl管理数据库
vim /etc/systemd/system/mysqld.service
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 5000
systemctl restart mysqld
5 连接数据库
mysql
6 设置root的初始密码(三种方法)
mysql_secure_installation
mysqladmin -uroot -p password 123
登录数据库;grant all on *.* to root@localhost identified by '123';
===========================================
忘记数据库密码,破解 ***
systemctl stop mysqld
mysqld_safe --skip-grant-tables & #跳过权限表
mysql
grant all on *.* to root@localhost identified by '123456'; #会报错
flush privileges;
grant all on *.* to root@localhost identified by '123456';
exit
killall -9 mysqld_safe
systemctl start mysqld