很多朋友都想知道linux怎么查看mysql的狀態(tài)?下面就一起來(lái)說(shuō)說(shuō)吧!
創(chuàng)新互聯(lián)專注于深州企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,成都商城網(wǎng)站開發(fā)。深州網(wǎng)站建設(shè)公司,為深州等地區(qū)提供建站服務(wù)。全流程按需網(wǎng)站設(shè)計(jì),專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)
linux查看mysql的狀態(tài)
1、打開linux系統(tǒng),在linux的桌面的空白處右擊。
2、在彈出的下拉選項(xiàng)里,點(diǎn)擊打開終端。
3、然后在終端窗口使用命令#servicemysqldstatus可以查看到mysql相應(yīng)的狀態(tài)。
4、顯示mysqldisstopped為停止?fàn)顟B(tài),顯示mysqldisrunning為啟動(dòng)狀態(tài)。
以上就是小編的分享,希望能幫助到大家。
業(yè)務(wù)有兩個(gè) MySQL 集群是通過(guò) MQ 進(jìn)行同步的,昨晚 MQ 出現(xiàn)異常,報(bào)了很多主鍵沖突,想請(qǐng) dba 幫忙校驗(yàn)一下兩個(gè)集群的數(shù)據(jù)是否一致。
當(dāng)接到這個(gè)需求的時(shí)候并沒當(dāng)回事,隱約有點(diǎn)印象 pt-table-checksum 能通過(guò) dsn 實(shí)現(xiàn) MySQL 的數(shù)據(jù)校驗(yàn),所以當(dāng)時(shí)就應(yīng)承下來(lái)了。不曾想,啪啪打臉,回想起來(lái)真是草率了。
本文參考的是 pt-table-checksum 的校驗(yàn)邏輯,基于數(shù)據(jù)塊去遍歷每個(gè)表,然后比對(duì) checksum 的值判斷該塊是否一致,本文主要是想聊聊我在實(shí)現(xiàn)數(shù)據(jù)校驗(yàn)?zāi)_本過(guò)程中遇到的問題以及解決思路,希望對(duì)大家有幫助。
利用線上的配置文件搭建一套主從環(huán)境。
這個(gè)用例將通過(guò) dsn 方式連接從庫(kù)。
這個(gè)用例將通過(guò) dsn 方式連接從庫(kù),但是會(huì)將從庫(kù)的復(fù)制鏈路 stop 掉,并清空復(fù)制信息。
熟悉 pt-table-checksum 的朋友應(yīng)該都知道,該工具是基于主鍵(非空唯一鍵)進(jìn)行掃描數(shù)據(jù)行,其實(shí)這個(gè)邏輯針對(duì)整型單列主鍵實(shí)現(xiàn)起來(lái)很簡(jiǎn)單,但是如果是聯(lián)合主鍵且是字符型,好像就沒那么簡(jiǎn)單了,有興趣的可以思考一下。下面我先說(shuō)一下大致的邏輯:
第一步:判斷 _min_rowid 是否為空,為空就取該表的第一行,并記作 _min_rowid 。
第二步:根據(jù) _min_rowid 作為條件進(jìn)行掃描該表,取下一個(gè)數(shù)據(jù)塊的數(shù)據(jù),記錄數(shù)據(jù)塊的最后一行數(shù)據(jù)的主鍵值,記錄 checksum 的值,并記下 _min_rowid 。
第三步:判斷_min_rowid是否為空,非空重復(fù)第二步,為空退出檢查。
通過(guò)上述三個(gè)步驟可以看到,如果是單列整型的主鍵,實(shí)現(xiàn)起來(lái)很簡(jiǎn)單,但是問題來(lái)了,業(yè)務(wù)的表的主鍵五花八門,有的是聯(lián)合主鍵,有的是字符型的聯(lián)合主鍵,還有整型+字符型的聯(lián)合主鍵,那么上述的實(shí)現(xiàn)方式顯然是有問題的。所以實(shí)現(xiàn)起來(lái)需要多考慮幾個(gè)問題:
鑒于存在上述兩個(gè)問題,可以參考如下實(shí)現(xiàn)邏輯:
假如有這么一個(gè)聯(lián)合主鍵字段 primary key(a,b,c) 都是整型,該如何編寫遍歷 sql 呢?起初我的想法很簡(jiǎn)單,具體如下:
至此在編寫校驗(yàn)?zāi)_本過(guò)程遇到的兩個(gè)問題就算告一段落了,剩下的就是各種邏輯處理了,不過(guò)多贅述,有興趣的可以自行閱讀腳本文件。
本著最低程度影響業(yè)務(wù),所以取消加鎖邏輯。但是又要保證該數(shù)據(jù)塊的數(shù)據(jù)一致性,如果這個(gè)數(shù)據(jù)塊是個(gè)熱數(shù)據(jù),當(dāng)前正在變更,那么校驗(yàn)的時(shí)候難免會(huì)不一致。所以只能通過(guò)多次校驗(yàn)實(shí)現(xiàn),默認(rèn)是校驗(yàn)20次,其中有一次校驗(yàn)結(jié)果是一致,就認(rèn)為是一致的,如果前5次校驗(yàn)過(guò)程中,這個(gè)數(shù)據(jù)塊的數(shù)據(jù)沒有變化,也視為不一致(可能是因?yàn)檠舆t,也可能是真的不一致)。
pt-table-checksum 不校驗(yàn)表結(jié)構(gòu),改寫時(shí)添加表結(jié)構(gòu)的校驗(yàn)。
可以基于表的并行校驗(yàn),可由用戶指定并行數(shù),但是腳本有個(gè)安全機(jī)制,如果用戶指定的并行數(shù)大于當(dāng)前 cpu 空閑核心數(shù),就會(huì)按當(dāng)前(空閑核心數(shù)-1)作為并行數(shù)。
添加網(wǎng)絡(luò)監(jiān)控,由用戶指定網(wǎng)絡(luò)上限百分比,當(dāng)網(wǎng)卡流量超過(guò)這個(gè)百分比就暫停任務(wù),等待網(wǎng)卡流量低于閾值才會(huì)繼續(xù)任務(wù)。這個(gè)主要是出于對(duì)于中間件(mycat)的場(chǎng)景或者分布式數(shù)據(jù)庫(kù)(tidb)的場(chǎng)景。
支持定時(shí)任務(wù)功能,用戶可以使用這個(gè)功能規(guī)避業(yè)務(wù)高峰,僅在業(yè)務(wù)低峰進(jìn)行數(shù)據(jù)校驗(yàn)。
不僅限于主從節(jié)點(diǎn)的校驗(yàn),只要目標(biāo)對(duì)象支持 MySQL 的標(biāo)準(zhǔn) SQL 語(yǔ)法就能做數(shù)據(jù)校驗(yàn)。
校驗(yàn)邏輯是通過(guò) SQL 采集目標(biāo)節(jié)點(diǎn)的數(shù)據(jù)庫(kù),如果目標(biāo)數(shù)據(jù)庫(kù)系統(tǒng)當(dāng)前存在異常,無(wú)疑是雪上加霜,將會(huì)觸發(fā)未知問題,所以添加超時(shí)機(jī)制,單次取數(shù)據(jù)塊的閾值是5s,超過(guò)5秒就放棄等待重試。測(cè)試發(fā)現(xiàn),有時(shí)候即便觸發(fā)超時(shí)了,但是 SQL 任務(wù)還是會(huì)在目標(biāo)數(shù)據(jù)庫(kù)的 processlist 中能看到,所以又添加了一個(gè) kill 機(jī)制,超時(shí)后會(huì)觸發(fā)一個(gè) kill processlist id 的動(dòng)作。另外為了避免 kill 錯(cuò),在每個(gè) SQL 對(duì)象添加了一個(gè)32位的 md5 值,每次 kill 的時(shí)候會(huì)校驗(yàn)這個(gè) md5 值。
本工具借鑒 pt-table-checksum 工具思路改寫,可以檢查隨意兩個(gè) mysql(支持 mysql sql 語(yǔ)法的數(shù)據(jù)庫(kù))節(jié)點(diǎn)的數(shù)據(jù)一致性。
基于主鍵以一個(gè)塊遍歷數(shù)據(jù)表,比對(duì)checksum的值,塊的大小可通過(guò)參數(shù)指定。 (1)獲取該表的第一個(gè)數(shù)據(jù)塊的查詢SQL。 (2)將兩個(gè)目標(biāo)節(jié)點(diǎn)的數(shù)據(jù)塊的checksum的值,記錄到臨時(shí)文件,file1 file2。 (3)比對(duì)file1 file2是否一致。
第一步:先開啟一個(gè) screen 監(jiān)控網(wǎng)絡(luò)
第二步:新開啟一個(gè)screen執(zhí)行校驗(yàn)任務(wù)
(1)info.log 文件
(2)list目錄
(3)md5 目錄
(4)pri 目錄
(5)res 目錄
這是 table 目錄下記錄某個(gè)數(shù)據(jù)塊不一致的一個(gè)例子
這是 diff 目錄下記錄某個(gè)數(shù)據(jù)行不一致的一個(gè)例子
(6)skip.log 文件
本工具是參考了 pt-table-checksum 工具的一些思路并結(jié)合自身經(jīng)驗(yàn)進(jìn)行改寫,尚有很多不足之處,僅做學(xué)習(xí)交流之用, 如有線上環(huán)境使用需求,請(qǐng)?jiān)跍y(cè)試環(huán)境充分測(cè)試。
安裝完MySQL數(shù)據(jù)庫(kù)以后,我們要做的就是驗(yàn)證MySQL是否安裝成功。那么如何進(jìn)行驗(yàn)證呢?下面我就給大家分享一下。
工具/材料
CMD命令行
01
按下Ctrl+R組合鍵,打開運(yùn)行界面,輸入CMD命令,如下圖所示
02
在打開的CMD命令行中我們輸入mysql命令,注意-u代表的是登錄用戶,-p代表的是登錄密碼,如下圖所示
03
按回車以后就進(jìn)入到了mysql的命令模式,如下圖所示,這里還不能完全驗(yàn)證mysql是否安裝成功,接下來(lái)我們還需要進(jìn)一步的驗(yàn)證
04
我們?cè)趍ysql命令模式下面輸入show databases命令,如果顯示了如下圖所示的數(shù)據(jù)庫(kù)信息則證明了mysql安裝成功了
方法如下:
、進(jìn)入mysql,創(chuàng)建一個(gè)新用戶kay:
2、 格式:grant 權(quán)限 on 數(shù)據(jù)庫(kù)名.表名 用戶@登錄主機(jī) identified by "用戶密碼";
grant select,update,insert,delete on *.* to kay@192.168.1.8 identified by "kaypass";
3、 查看結(jié)果,執(zhí)行:
use mysql;
select host,user,password from user;
可以看到在user表中已有剛才創(chuàng)建的kay用戶。host字段表示登錄的主機(jī),其值可以用IP,也可用主機(jī)名,
將host字段的值改為%就表示在任何客戶端機(jī)器上能以kay用戶登錄到mysql服務(wù)器,建議在開發(fā)時(shí)設(shè)為%。
update user set host = '%' where user = 'kay';
還有一個(gè)方法::
A、 ./mysqladmin -uroot -p21century reload
./mysqladmin -uroot -p21century shutdown
B、./mysqld_safe --user-root
記?。簩?duì)授權(quán)表的任何修改都需要重新reload,即執(zhí)行第3步。
首先進(jìn)入命令行下:
以root用戶登錄,命令:mysql -uroot -p 回車 輸入密碼;
mysqluse mysql;
mysqlUPDATE user SET password=PASSWORD('輸入新密碼') WHERE user='root';
mysqlFLUSH PRIVILEGES;
已經(jīng)完成。
現(xiàn)象
一線的工程師反映了一個(gè)奇怪的現(xiàn)象,剛剛從 MySQL 官網(wǎng)上下載了一個(gè) MySQL 5.7.31。安裝完成后,發(fā)現(xiàn)使用任何密碼都能登陸 MySQL,修改密碼也不管用,重新啟動(dòng) MySQL 也不能解決。
分析
懷疑使用了 --skip-grant-tables 使用 mysqld --print-defaults 檢查,沒有發(fā)現(xiàn)。
檢查登陸用戶,都是 root@localhost,說(shuō)明和 proxy user 沒有關(guān)系。
使用 mysql --print-defaults 檢查客戶端是否設(shè)置默認(rèn)的用戶和密碼,沒有發(fā)現(xiàn)。
發(fā)現(xiàn)一切都正常,再檢查 plugin 字段,發(fā)現(xiàn)只有 root 用戶是 auth_socket ,其它的用戶都是 mysql_native_password,問題可能就出在這兒。
問題解決
對(duì) auth_socket 驗(yàn)證插件不了解,感覺是這個(gè)插件不安全,使用下面的命令修改后,問題解決:
update user set plugin="mysql_native_password" where user='root';
auth_socket 驗(yàn)證插件的使用場(chǎng)景
問題解決后,又仔細(xì)研究了一下 auth_socket 這個(gè)插件,發(fā)現(xiàn)這種驗(yàn)證方式有以下特點(diǎn):
首先,這種驗(yàn)證方式不要求輸入密碼,即使輸入了密碼也不驗(yàn)證。這個(gè)特點(diǎn)讓很多人覺得很不安全,實(shí)際仔細(xì)研究一下這種方式,發(fā)現(xiàn)還是相當(dāng)安全的,因?yàn)樗辛硗鈨蓚€(gè)限制;
只能用 UNIX 的 socket 方式登陸,這就保證了只能本地登陸,用戶在使用這種登陸方式時(shí)已經(jīng)通過(guò)了操作系統(tǒng)的安全驗(yàn)證;
操作系統(tǒng)的用戶和 MySQL 數(shù)據(jù)庫(kù)的用戶名必須一致,例如你要登陸 MySQL 的 root 用戶,必須用操作系統(tǒng)的 root 用戶登陸。
auth_socket 這個(gè)插件因?yàn)橛羞@些特點(diǎn),它很適合我們?cè)谙到y(tǒng)投產(chǎn)前進(jìn)行安裝調(diào)試的時(shí)候使用,而且也有相當(dāng)?shù)陌踩裕驗(yàn)橄到y(tǒng)投產(chǎn)前通常經(jīng)常同時(shí)使用操作系統(tǒng)的 root 用戶和 MySQL 的 root 用戶。當(dāng)我們?cè)谙到y(tǒng)投產(chǎn)后,操作系統(tǒng)的 root 用戶和 MySQL 的 root 用戶就不能隨便使用了,這時(shí)可以換成其它的驗(yàn)證方式,可以使用下面的命令進(jìn)行切換:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'test';
網(wǎng)站欄目:mysql怎么驗(yàn)證 mysql怎么看
轉(zhuǎn)載源于:http://aaarwkj.com/article22/dooosjc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機(jī)、網(wǎng)頁(yè)設(shè)計(jì)公司、微信公眾號(hào)、商城網(wǎng)站、全網(wǎng)營(yíng)銷推廣、網(wǎng)站設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)