跳到内容

文章类别:服务器

一起mysql数据库密码忘记事件

今天有个以前的小伙伴找我,跟我说有台服务器他把mysql的root密码忘了,

主机上是有网站的,而且很不好,连接数据库用的就是root,

这个当时为了方便,真是后患无穷,

我就让他去找网站的配置文件,链接数据库的文件里面应该是有密码的,

他找了以后跟我说,密码是空的,我当时觉得有点不可能,

要么是网站设置有问题,要么配置文件没找对.

linux系统的root是记得的,可以在主机上直接修改用户表,修改mysql密码,

但是直接改密码网站就会出问题,不能这么做.

于是我按他说的地方去看了一下配置文件,确实是空密码,

<?php
#DBConnect.php
include "mysql.class.php";
$DB = new MYSQL();
$DB->dbServer="localhost";
$DB->dbUser="root";
$DB->dbPwd="";
$DB->dbDatabase="###database###";
$DB->connect(); // <C1><AC><BD><D3><CA><FD><BE><U+077F><E2>
?>

假设现在网站又能正常获取数据,至少目前看起来是这样,

我点了几个网页,都是静态html的,

但是网站是基于CMS二次开发的,静态网页说明不了问题,就先假设网站访问数据库没有问题.

链接配置文件倒数第二行那里在VIM里面是乱码的,不知道有没有影响,先不管吧,毕竟有//注释.

进到数据库看了一下,4个不同主机的root都是有密码的,

而任意用户的权限只有USAGE,授权也是否,

对于USAGE权限之前基本就忽略了,没有了解过,在phpmyadmin里面显示是无权限,

刚查了一下,貌似可以无密码链接数据库,但是只能在本地,

具体想了解清楚就要翻mysql的文档,了解权限体系,

暂时没时间,先不管了,因为这个地方之前也没出过问题.

新建了一个数据库用户,分配了一个密码,把网站链接配置文件改了,

让小伙伴再试,网站后台可以正常进入,里面文章也是看得到的,

然后我把网站配置文件里面数据库密码删了,小伙伴表示一切正常,

然后我把网站配置文件里面数据库用户名也删了,小伙伴同样表示一切正常,

这个时候我已经震惊了,

当然有可能是我孤陋寡闻,毕竟第一次处理这种问题,

这个时候有几种情况,

1,配置文件根本就不是这一个,
2,这个更离谱,我一直进的网站目录就是错的,
3,域名没有绑到这个主机,
4,使用了其他用户名连接到数据库
5,任意用户USAGE权限问题
6,缓存问题

1,这个很有可能
2,反复看了一下,也进到网站后台去看了,确实没错
3,从IP和域名进来完全一样的
4,这个也有可能
5,这个也有可能
6,清了浏览器和网站缓存还是一样

这时我注意到,数据库里面是有一个debian-sys-maint用户的,而且权限很高,

这个用户好像是系统原来就有的,不是道是不是从这个用户访问的,

我把这个用户的权限去掉,一切还是正常,

说来说去,最后要么是配置文件问题,要么是mysql权限我没理解透,

暂时先记在这里,早上还要上班.

基于UBUNTU搭建VPN服务器(已验证)

在Debian或者Ubuntu的 apt-get 安装包管理下,使用如下命令

apt-get install pptpd

编辑配置文件 “/etc/pptpd.conf” ,修改成如下:

option /etc/ppp/pptpd-options
localip 192.168.0.1
remoteip 192.168.0.11-150

再编辑配置文件 “/etc/ppp/pptpd-options” ,
修改里面的 ms-dns 这个项为 8.8.8.8 和 8.8.4.4
这是Google的DNS服务器,使用ISP提供的DNS也可以.

再编辑配置文件 “/etc/ppp/chap-secrets” ,此文件定义登录的用户名和密码
按下面的格式添加一行

用户名 pptpd 密码 *

修改配置文件后,重启pptpd配置信息才能生效

/etc/init.d/pptpd start #运行pptp进程
/etc/init.d/pptpd restart #重启pptp进程

检验PPTP服务器是否运行,在终端输入命令

netstat -anp | grep pptpd

将得到类似如下结果,说明PPTP服务器运行成功.

tcp  0  0  0.0.0.0:1723 0.0.0.0:*  LISTEN  27243/pptpd
unix  2  [ ]  数据报  200719  27243/pptpd

为了客户端能够顺利连接到VPN服务器,还需主机防火墙开放VPN端口(默认为1723)

iptables -I INPUT -p tcp --dport 1723 -j ACCEPT

到目前为止,VPN服务器确实搭建完成,客户端也可以正常连接了,但是客户端却不能通过该VPN服务器上网,
我们还需要为客户端IP地址设置网络地址转换(NAT)

查看 “/proc/sys/net/ipv4/ip_forward” 文件中的值是否为”1″
如果不是,则需在修改配置文件/etc/sysctl.conf中的相应内容如下,打开ipv4转发功能

net.ipv4.ip_forward = 1

执行

sysctl -p
/etc/init.d/procps restart

使其马上生效.

配置iptables:

apt-get intall iptables
iptables --table nat --append POSTROUTING --out-interface eth0 --jump MASQUERADE

注意上面的eth0要选择你对应的网卡

但是,只是这样 iptables 的规则会在下次重启时被清除,所以我们还需要把它保存下来,
编辑 “/etc/rc.local” 文件,在末尾另起一行加上下面的命令即可

iptables --table nat --append POSTROUTING --out-interface eth0 --jump MASQUERADE

下面还有一种方法,本人没有试验,但有网友反映,使用后无法进入系统

方法是使用 iptables-save 命令:

iptables-save > /etc/iptables-rules

然后修改 “/etc/network/interfaces” 文件,找到 eth0 那一节,在对 eth0 的设置最末尾加上下面这句:

pre-up iptables-restore < /etc/iptables-rules

这样当网卡 eth0 被加载的时候就会自动载入我们预先用 iptables-save 保存下的配置.

到这里就搭建好了,
若实践时无法执行命令,尝试以sudo运行,
本人执行上述所有命令时均为root用户;D

图解DAS,NAS,SAN

DAS 直接接入存储 (Direct-Attached Storage)

NAS 网络接入存储 (Network-Attached Storage)

SAN 存储区域网络 (Storage Attached Network)

    

图片来自网络

让命令后台运行并在前后台切换

在命令结尾加”&”符号可以让命令在后台运行,

这时可以看到一个命令号和命令,后面是Running,表示正在运行,

输入fg即可将后台命令调回前台,

但如果有多个命令在后台运行,就需要jobs命令,

jobs命令可以列出所有在后台运行的命令及运行状态,

这时使用fg空格后接命令号即可将对应的命令调回前台,

如果一个命令已经在前台运行,又不想结束他,

按Ctrl+Z即可将命令移至后台,

但这是可以看到该命令的状态是Stopped,

这时可以使用bg空格后接命令号将命令置于Runing状态.

上面的方法虽然可以让命令在后台运行,

但是退出登录或者关闭终端,后台的命令也会结束,

如果不想让命令结束就需要nohup了,

在退出后仍想继续运行的命令前面加上nohop空格借命令即可.

挂载NTFS文件系统与设置开机自动挂载

虽然大部分Linux已经可以自动挂载NTFS分区,还是有一些不能自动挂载,

一种简单的解决方法是使用开源软件ntfs-3g

使用下列命令安装ntfs-3g

yum install ntfs-3g

然后用下面的命令可以查看分区信息

fdisk -l

然后使用下面的命令即可挂载:

mount -t ntfs-3g /dev/你的分区 /你想挂载到的目录

建议将分区挂载到/mnt下面

至于自动挂载,可以修改/etc/fstab文件,

在下面按如下格式添加想要自动挂载的分区,每行一个分区,

/dev/你的分区 /mnt/你的目录 ntfs-3g defaults 0 0

更详细参数可以参考man手册

如不进行设置,详细挂载参数使用下面的命令查看:

less /proc/mounts