美文网首页我爱编程
记录自己手残,不小心删除mysql的数据文件,然后解决的整个坑爹

记录自己手残,不小心删除mysql的数据文件,然后解决的整个坑爹

作者: 小沈新手 | 来源:发表于2016-12-22 15:44 被阅读164次

一、前言

   

由于自己闲得蛋疼,于是乎想学习下服务器的安全知识,便远程登录了服务器,看到服务器上的目录有很多没有用的文件,就想删除一些没有用的文件,谁知道删除过后,感觉自己删错了,就打开网站来看看是否影响,果然网站提示无法连接数据库,顿时惊呆了。

二、解决过程

我本来是做移动开发的,所以对于后台和Linux 不是很熟悉,遇到这种情况,我第一时间想到的是文件恢复,于是在网上找了各种教程,但是没有效果,于是就想转变方法,没错就是重新安装mysql。

linux环境Mysql 5.7.13安装教程分享给大家,供大家参考,具体内容如下

1系统约定

安装文件下载目录:/data/software

Mysql目录安装位置:/usr/local/mysql

数据库保存位置:/data/mysql

日志保存位置:/data/log/mysql

2下载mysql

在官网:http://dev.mysql.com/downloads/mysql/中,选择以下版本的mysql下载:

执行如下命名:

#mkdir /data/software

#cd /data/software

#wgethttp://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.13-linux-glibc2.5-x86_64.tar.gz

3解压压缩包到目标位置

# mkdir /usr/local/mysql

#cd /dat/software

#pwd

执行后如下:

#ls

#cd /usr/local

#pwd

# tar -xzvf /data/software/mysql-5.7.13-linux-glibc2.5-x86_64.tar.gz

#ls

--修改文件名

# mv mysql-5.7.13-linux-glibc2.5-x86_64 mysql

#ls

4创建数据仓库目录

--/data/mysql 数据仓库目录

# mkdir /data/mysql

#ls /data/

5新建mysql用户、组及目录

#      ---新建一个msyql组

# useradd -r -s /sbin/nologin -g mysql mysql -d /usr/local/mysql     ---新建msyql用户禁止登录shell

6改变目录属有者

#cd /usr/local/mysql

#pwd

#chown –R mysql .

#chgrp –R mysql .

#chown -R mysql /data/mysql

7配置参数

# bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql

此处需要注意记录生成的临时密码,如上文:YLi>7ecpe;YP

#bin/mysql_ssl_rsa_setup  --datadir=/data/mysql

8修改系统配置文件

# cp my-default.cnf /etc/my.cnf

# cp mysql.server /etc/init.d/mysql

# vim /etc/init.d/mysql

修改以下内容:

# vim /etc/my.cnf

修改以下内容:

9启动mysql

#bin/mysqld_safe --user=mysql &

bin/mysql --user=root –p

--输入第6步生成的临时密码

mysql> set password=password('A123456');

mysql>grant all privileges on *.* toroot@'%'identified by 'A123456';

mysql> flush privileges;

mysql> use mysql;

mysql> select host,user from user;

如果没有意外的话就上面的结果

当然有可能会遇到一些坑,比如

Access denied for user 'root'@'localhost' (using password: NO)

解决办法

# service mysql-server stop

mysqld --skip-grant-tables &

# mysql -u root

mysql>

set password=password('newpassword');

UPDATE user SET Password=PASSWORD(newpassword) WHERE user=’root’;

grant all privileges on *.* to root@'%' identified by 'newpassword';

SET PASSWORD FOR root=PASSWORD(newpassword);

上面四个选一个即可

但是有可能出现错误

那么现在运行

mysql> flush privileges;

然后在运行上面设置的密码语句
这时还是会出现Access denied for user 'root'@'localhost' (using password: NO)
然后在 my.cnf里添加一句  skip-grant-tables

居然就可以神奇的可以了

Linux下 安装过程中的一些命令

shutdown -r now 立刻重启(root用户使用)

wget +网址  =下载
tar -xzvf  解压
/usr/local/nginx/sbin/nginx  启动nginx  注意/usr/local/nginx这是安装路径
/usr/local/nginx/sbin/nginx -s reload  重启nginx
/usr/local/php5.6/sbin/php-fpm          启动fpm  不然nginx不能解析php

1.Linux下启动MySQL的命令:

mysqladmin start

/ect/init.d/mysql start (前面为mysql的安装路径)

2.linux下重启mysql的命令:

mysqladmin restart

/ect/init.d/mysql restart (前面为mysql的安装路径)

3.linux下关闭mysql的命令:

mysqladmin shutdown

/ect/init.d/mysql   shutdown (前面为mysql的安装路径)

4.连接本机上的mysql:

进入目录mysql/bin,再键入命令mysql -uroot -p, 回车后提示输入密码。

my.cnf配置文件的内容

[client]

port = 3306

socket = /tmp/mysql.sock

default-character-set = utf8

[mysqld]

server-id = 1

socket = /tmp/mysql.sock

basedir = /usr/local/mysql

datadir = /root/data/mysql

[mysqld_safe]

open-files-limit=8192

log_error = /root/data/mysql/mysql-error.log

相关文章

网友评论

    本文标题:记录自己手残,不小心删除mysql的数据文件,然后解决的整个坑爹

    本文链接:https://www.haomeiwen.com/subject/lvfhvttx.html