最近在忘記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密碼,可以用以下方法重新設置:
KILL掉系統里的MySQL進程;
killall -TERM mysqld用以下命令啟動MySQL,以不檢查權限的方式啟動;
safe_mysqld --skip-grant-tables &然后用空密碼方式使用root用戶登錄 MySQL;
mysql -u root修改root用戶的密碼;
mysql> update mysql.user set password=PASSWORD('新密碼') where User='root'; mysql> flush privileges; mysql> quit
重新啟動MySQL,就可以使用新密碼登錄了
MySQL密碼的恢復方法三
有可能你的系統沒有 safe_mysqld 程序(比如我現在用的 ubuntu操作系統, apt-get安裝的mysql) , 下面方法可以恢復
- 停止mysqld;
/etc/init.d/mysql stop
(您可能有其它的方法,總之停止mysqld的運行就可以了)
用以下命令啟動MySQL,以不檢查權限的方式啟動;
mysqld --skip-grant-tables &然后用空密碼方式使用root用戶登錄 MySQL;
mysql -u root修改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_64 是 64位
查看位數命令
命令實在是不要太多,為了防止選擇性障礙,一致選擇第一種方式,后面的僅作為補充。方法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 (builder@kbuilder.dev.centos.org) (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 (builder@kbuilder.dev.centos.org) (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’),