linux相关错误指令(修改MySQL密码、查找文件等)

最近在忘记mysql密码时需要修改原root密码:
遇到下面几个问题:
1、 mysqld: command not found
首先得知道mysql命令或mysqladmin命令的完整路径,
特殊安装的话需要在mysql运行时输入查找安装目录ps -ef|grep mysql
比如mysql的路径是:/usr/local/mysql/bin/mysql,
我们则可以这样执行命令:
ln -s /usr/local/mysql/bin/mysql /usr/bin
遇到其他command not found 的报错,处理流程如此;
2、 确定mysql服务正常运行后,产生此错误的原因只剩下“socket”文件路径不正确了,我们可以使用“find”命令或者“lsof”命令来确定socket文件的正确路径:
查看socket文件路径:lsof -c mysqld|grep sock$
使用“ln -s /storage/db/mysql/mysql.sock /var/lib/mysql/mysql.sock”命令,将正确的socket文件位置,软链接到提示错误的socket文件路径位置,即可解决此问题:

MySQL密码的恢复方法之一
1.首先确认服务器出于安全的状态,也就是没有人能够任意地连接MySQL数据库。 因为在重新设置MySQL的root密码的期间,MySQL数据库完全出于没有密码保护的 状态下,其他的用户也可以任意地登录和修改MySQL的信息。可以采用将MySQL对外的端口封闭,并且停止Apache以及所有的用户进程的方法实现服务器的准安全状态。最安全的状态是到服务器的Console上面操作,并且拔掉网线。
2.修改MySQL的登录设置:

vi /etc/my.cnf

在[mysqld]的段中加上一句:skip-grant-tables 保存并且退出vi。
3.重新启动mysqld

/etc/init.d/mysqld restart ( service mysqld restart )

4.登录并修改MySQL的root密码
mysql> USE mysql ; mysql> UPDATE user SET Password = password ( 'new-password' ) WHERE User = 'root' ; mysql> flush privileges ; mysql> quit

5.将MySQL的登录设置修改回来

vi /etc/my.cnf

将刚才在[mysqld]的段中加上的skip-grant-tables删除
保存并且退出vi。
6.重新启动mysqld

/etc/init.d/mysqld restart ( service mysqld restart )

7.恢复服务器的正常工作状态
将步骤一中的操作逆向操作。恢复服务器的工作状态。
MySQL密码的恢复方法之二
如果忘记了MySQL的root密码,可以用以下方法重新设置:

  1. KILL掉系统里的MySQL进程;
    killall -TERM mysqld

  2. 用以下命令启动MySQL,以不检查权限的方式启动;
    safe_mysqld --skip-grant-tables &

  3. 然后用空密码方式使用root用户登录 MySQL;
    mysql -u root

  4. 修改root用户的密码;
    mysql> update mysql.user set password=PASSWORD('新密码') where User='root'; mysql> flush privileges; mysql> quit

重新启动MySQL,就可以使用新密码登录了
MySQL密码的恢复方法三
有可能你的系统没有 safe_mysqld 程序(比如我现在用的 ubuntu操作系统, apt-get安装的mysql) , 下面方法可以恢复

  1. 停止mysqld;
    /etc/init.d/mysql stop

(您可能有其它的方法,总之停止mysqld的运行就可以了)

  1. 用以下命令启动MySQL,以不检查权限的方式启动;
    mysqld --skip-grant-tables &

  2. 然后用空密码方式使用root用户登录 MySQL;
    mysql -u root

  3. 修改root用户的密码;
    mysql> update mysql.user set password=PASSWORD('newpassword') where User='root'; mysql> flush privileges; mysql> quit

重新启动MySQL
/etc/init.d/mysql restart

就可以使用新密码 newpassword 登录了。

2查看centos版本
前言
记下CentOS 7查看系统版本及查看机器位数x86-64的方法,由于不经常使用Linux,每当使用的时候就是安装软件,安装软件的时候就要选择安装包平台,是32位的还是64位的。这时候突然发现不知道怎么查,于是百度。虽然轻而易举百度出来,但仍旧没有自己的笔记看起来舒服。所以,还是记录下来。
辨识标准
首先要清楚什么样标识是32位的,什么样的是64位的。
PC server X86 系列
I386--I686 都是32位
x86_6464位

查看位数命令
命令实在是不要太多,为了防止选择性障碍,一致选择第一种方式,后面的仅作为补充。方法1:
[root@linuxidc ~]# uname -aLinux linuxidc 3.10.0-327.18.2.el7.x86_64 #1 SMP Thu May 12 11:03:55 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

方法2:显示系统程序信息
[root@linuxidc ~]# file /bin/ls/bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=aa7ff68f13de25936a098016243ce57c3c982e06, stripped

方法3:
[root@linuxidc ~]# cat /proc/versionLinux version 3.10.0-327.18.2.el7.x86_64 ([email protected]) (gcc version 4.8.3 20140911 (Red Hat 4.8.3-9) (GCC) ) #1 SMP Thu May 12 11:03:55 UTC 2016

方法4:
(32位的系统中int类型和long类型一般都是4字节,64位的系统中int类型还是4字节的,但是long已变成了8字节inux系统中可用"getconf WORD_BIT"和"getconf LONG_BIT"获得word和long的位数。64位系统中应该分别得到32和64。)

[root@linuxidc ~]# getconf LONG_BIT64

查看系统版本
方法1:
[root@linuxidc ~]# lsb_release -aLSB Version: :core-4.1-amd64:core-4.1-noarch:cxx-4.1-amd64:cxx-4.1-noarch:desktop-4.1-amd64:desktop-4.1-noarch:languages-4.1-amd64:languages-4.1-noarch:printing-4.1-amd64:printing-4.1-noarchDistributor ID: CentOSDescription: CentOS Linux release 7.2.1511 (Core) Release: 7.2.1511Codename: Core

方法2:
[root@linuxidc ~]# cat /etc/os-releaseNAME="CentOS Linux"VERSION="7 (Core)"ID="centos"ID_LIKE="rhel Fedora"VERSION_ID="7"PRETTY_NAME="CentOS Linux 7 (Core)"ANSI_COLOR="0;31"CPE_NAME="cpe:/o:centos:centos:7"HOME_URL="https://www.centos.org/"BUG_REPORT_URL="https://bugs.centos.org/"CENTOS_MANTISBT_PROJECT="CentOS-7"CENTOS_MANTISBT_PROJECT_VERSION="7"RedHat_SUPPORT_PRODUCT="centos"REDHAT_SUPPORT_PRODUCT_VERSION="7"

方法3:
[root@linuxidc ~]# cat /etc/redhat-releaseCentOS Linux release 7.2.1511 (Core)

方法4:
[root@linuxidc ~]# rpm -q centos-releasecentos-release-7-2.1511.el7.centos.2.10.x86_64

查看内核版本
方法1:
[root@linuxidc ~]# cat /proc/versionLinux version 3.10.0-327.18.2.el7.x86_64 ([email protected]) (gcc version 4.8.3 20140911 (Red Hat 4.8.3-9) (GCC) ) #1 SMP Thu May 12 11:03:55 UTC 2016

方法2:
[root@linuxidc ~]# uname -aLinux linuxidc 3.10.0-327.18.2.el7.x86_64 #1 SMP Thu May 12 11:03:55 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

3:yum安装提示错误:Cannot find a valid baseurl for repo: base/7/x86_6
获取不到远程地址,一般是联网性能太差,建议更换网络,或者是ping试试能不能连上网:

方法一、

  1、打开 vi /etc/sysconfig/network-scripts/ifcfg-eth0(每个机子都可能不一样,但格式会是“ifcfg-eth数字”),把ONBOOT=no,改为ONBOOT=yes

  2、重启网络:service network restart

方法二、

  1、打开 vi /etc/resolv.conf,增加 nameserver 8.8.8.8

  2、重启网络: service network restart

4:加入-R 参数读写权限传递给文件夹
例chmod -R 777 /home/mypackage
mypackage 文件夹面所文件夹属性都变777.
777读、写、执行权限...

5:查找文件地址:
find命令基本格式:find path expression
1.按照文件名查找
(1)find / -name httpd.conf  #在根目录下查找文件httpd.conf,表示在整个硬盘查找
(2)find /etc -name httpd.conf  #在/etc目录下文件httpd.conf
(3)find /etc -name 'srm'  #使用通配符(0或者任意多个)。表示在/etc目录下查找文件名中含有字符串‘srm’的文件
(4)find . -name 'srm
'   #表示当前目录下查找文件名开头是字符串‘srm’的文件
2.按照文件特征查找
(1)find / -amin -10   # 查找在系统中最后10分钟访问的文件(access time)
(2)find / -atime -2   # 查找在系统中最后48小时访问的文件
(3)find / -empty   # 查找在系统中为空的文件或者文件夹
(4)find / -group cat   # 查找在系统中属于 group为cat的文件
(5)find / -mmin -5   # 查找在系统中最后5分钟里修改过的文件(modify time)
(6)find / -mtime -1   #查找在系统中最后24小时里修改过的文件
(7)find / -user fred   #查找在系统中属于fred这个用户的文件
(8)find / -size +10000c  #查找出大于10000000字节的文件(c:字节,w:双字,k:KB,M:MB,G:GB)
(9)find / -size -1000k   #查找出小于1000KB的文件
3.使用混合查找方式查找文件
参数有: !,-and(-a),-or(-o)。
(1)find /tmp -size +10000c -and -mtime +2   #在/tmp目录下查找大于10000字节并在最后2分钟内修改的文件
(2)find / -user fred -or -user george   #在/目录下查找用户是fred或者george的文件文件
(3)find /tmp ! -user panda  #在/tmp目录中查找所有不属于panda用户的文件
(二)、grep命令
基本格式:find expression
1.主要参数[options]主要参数:
    -c:只输出匹配行的计数。
    -i:不区分大小写
    -h:查询多文件时不显示文件名。
    -l:查询多文件时只输出包含匹配字符的文件名。
    -n:显示匹配行及行号。
    -s:不显示不存在或无匹配文本的错误信息。
    -v:显示不包含匹配文本的所有行。

pattern正则表达式主要参数:
    \: 忽略正则表达式中特殊字符的原有含义。
    ^:匹配正则表达式的开始行。
    $: 匹配正则表达式的结束行。
    <:从匹配正则表达 式的行开始。
    >:到匹配正则表达式的行结束。
    [ ]:单个字符,如[A]即A符合要求 。
    [ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求 。
    .:所有的单个字符。
    * :有字符,长度可以为0。
2.实例 
(1)grep 'test' d*  #显示所有以d开头的文件中包含 test的行
(2)grep ‘test’ aa bb cc    #显示在aa,bb,cc文件中包含test的行
(3)grep ‘[a-z]{5}’ aa   #显示所有包含每行字符串至少有5个连续小写字符的字符串的行
(4)grep magic /usr/src  #显示/usr/src目录下的文件(不含子目录)包含magic的行
(5)grep -r magic /usr/src  #显示/usr/src目录下的文件(包含子目录)包含magic的行
(6)grep -w pattern files :只匹配整个单词,而不是字符串的一部分(如匹配’magic’,而不是’magical’),

你可能感兴趣的:(linux相关错误指令(修改MySQL密码、查找文件等))