周記 2017 5.8 - 5.14

Mysql解決死鎖問題

參考

死鎖(英語:Deadlock)哎甲,又譯為死結(jié)著榴,計算機(jī)科學(xué)名詞博脑。當(dāng)兩個以上的運算單元憎乙,雙方都在等待對方停止運行,以獲取系統(tǒng)資源叉趣,但是沒有一方提前退出時泞边,就稱為死鎖。 -- 引用自維基百科疗杉。

mysql> select * from user;
+----+------+------+---------+
| id | name | age  | address |
+----+------+------+---------+
|  3 | 1    |   26 | 1       |
|  4 | 1    |    1 | 1       |
+----+------+------+---------+

有一張user表阵谚,id是主鍵,那么執(zhí)行如下操作會造成死鎖:

A:
start transaction;
select * from user where id=3 for update;
B:
start transaction;
select * from user where id=4 for update;
A:
select * from user where id=4 for update;
B:
select * from user where id=3 for update;
執(zhí)行到這里烟具,A梢什、B兩個數(shù)據(jù)庫連接都會阻塞。

處理死鎖問題:

show processlist  # 顯示當(dāng)前DB所有連接信息朝聋,如果有連接處于阻塞狀態(tài)嗡午,則會有如下顯示
阻塞圖例
kill id  # 殺死對應(yīng)連接,這樣就會釋放掉占用的鎖
show engine innodb status  # 顯示索引狀態(tài)冀痕,因為innodb引擎會在索引上進(jìn)行加鎖,執(zhí)行這條語句會返回引擎的各種信息(比如):

TRANSACTIONS
------------
Trx id counter 69598
Purge done for trx's n:o < 69594 undo n:o < 0 state: running but idle
History list length 1036
LIST OF TRANSACTIONS FOR EACH SESSION:
---TRANSACTION 281479623174360, not started
0 lock struct(s), heap size 1136, 0 row lock(s)
---TRANSACTION 281479623173456, not started
0 lock struct(s), heap size 1136, 0 row lock(s)
---TRANSACTION 281479623170744, not started
0 lock struct(s), heap size 1136, 0 row lock(s)
---TRANSACTION 281479623169840, not started
0 lock struct(s), heap size 1136, 0 row lock(s)
---TRANSACTION 69597, ACTIVE 89 sec
2 lock struct(s), heap size 1136, 1 row lock(s)  # 顯示該事務(wù)鎖住一行數(shù)據(jù)
MySQL thread id 1124, OS thread handle 123145506287616, query id 130081 localhost root cleaning up
--------

Maven 引入本地jar包

參考

<dependency>
    <groupId>xxx</groupId>
    <artifactId>xxx</artifactId>
    <version>1.0</version>
    <scope>system</scope>
    <systemPath>/.../xxx.jar</systemPath>
</dependency>

這種方法是有缺陷的荔睹,僅僅適用于開發(fā)階段,如果使用 maven package 命令不會把該包打入jar中言蛇。

這個缺陷有一種比較好的解決方案是參考鏈接中 Nikita Volkov 回答的方法僻他。

MySql連接問題

給朋友寫的腳本要把數(shù)據(jù)插入MySql數(shù)據(jù)庫,在本地測試插入沒有問題腊尚;但是在朋友機(jī)器上插入之后出現(xiàn)亂碼吨拗。
配置如下:

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/test
    username: root
    password:
    driver-class-name: com.mysql.jdbc.Driver

出現(xiàn)的亂碼都是??,所以估計是把UTF-8編碼格式當(dāng)做ISO-8859-1進(jìn)行編碼。
把上述配置修改后插入正常婿斥。

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8
    username: root
    password:
    driver-class-name: com.mysql.jdbc.Driver

useUnicode=true&characterEncoding=UTF-8代表使用指定的編碼集UTF-8來進(jìn)行編碼劝篷。
那么為什么本地沒有問題而朋友機(jī)器上有問題呢,原因是本地MySql服務(wù)器和數(shù)據(jù)庫都是以UTF-8編碼的受扳;而朋友機(jī)器上僅僅數(shù)據(jù)庫是UTF-8編碼的携龟,如果沒有指定編碼格式數(shù)據(jù)庫會按照默認(rèn)ISO-8859-1進(jìn)行編碼從而導(dǎo)致亂碼。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末勘高,一起剝皮案震驚了整個濱河市峡蟋,隨后出現(xiàn)的幾起案子坟桅,更是在濱河造成了極大的恐慌,老刑警劉巖蕊蝗,帶你破解...
    沈念sama閱讀 223,126評論 6 520
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件仅乓,死亡現(xiàn)場離奇詭異,居然都是意外死亡蓬戚,警方通過查閱死者的電腦和手機(jī)夸楣,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,421評論 3 400
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來子漩,“玉大人豫喧,你說我怎么就攤上這事〈逼茫” “怎么了紧显?”我有些...
    開封第一講書人閱讀 169,941評論 0 366
  • 文/不壞的土叔 我叫張陵,是天一觀的道長缕棵。 經(jīng)常有香客問我孵班,道長,這世上最難降的妖魔是什么招驴? 我笑而不...
    開封第一講書人閱讀 60,294評論 1 300
  • 正文 為了忘掉前任篙程,我火速辦了婚禮,結(jié)果婚禮上别厘,老公的妹妹穿的比我還像新娘虱饿。我一直安慰自己,他們只是感情好触趴,可當(dāng)我...
    茶點故事閱讀 69,295評論 6 398
  • 文/花漫 我一把揭開白布郭厌。 她就那樣靜靜地躺著,像睡著了一般雕蔽。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上宾娜,一...
    開封第一講書人閱讀 52,874評論 1 314
  • 那天批狐,我揣著相機(jī)與錄音,去河邊找鬼前塔。 笑死嚣艇,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的华弓。 我是一名探鬼主播食零,決...
    沈念sama閱讀 41,285評論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼寂屏!你這毒婦竟也來了贰谣?” 一聲冷哼從身側(cè)響起娜搂,我...
    開封第一講書人閱讀 40,249評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎吱抚,沒想到半個月后百宇,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,760評論 1 321
  • 正文 獨居荒郊野嶺守林人離奇死亡秘豹,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,840評論 3 343
  • 正文 我和宋清朗相戀三年携御,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片既绕。...
    茶點故事閱讀 40,973評論 1 354
  • 序言:一個原本活蹦亂跳的男人離奇死亡啄刹,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出凄贩,到底是詐尸還是另有隱情誓军,我是刑警寧澤,帶...
    沈念sama閱讀 36,631評論 5 351
  • 正文 年R本政府宣布怎炊,位于F島的核電站谭企,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏评肆。R本人自食惡果不足惜债查,卻給世界環(huán)境...
    茶點故事閱讀 42,315評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望瓜挽。 院中可真熱鬧盹廷,春花似錦、人聲如沸久橙。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,797評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽淆衷。三九已至缸榄,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間祝拯,已是汗流浹背甚带。 一陣腳步聲響...
    開封第一講書人閱讀 33,926評論 1 275
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留佳头,地道東北人鹰贵。 一個月前我還...
    沈念sama閱讀 49,431評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像康嘉,于是被迫代替她去往敵國和親碉输。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,982評論 2 361

推薦閱讀更多精彩內(nèi)容

  • 編碼問題一直困擾著開發(fā)人員亭珍,尤其在 Java 中更加明顯敷钾,因為 Java 是跨平臺語言枝哄,不同平臺之間編碼之間的切換...
    x360閱讀 2,483評論 1 20
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法闰非,內(nèi)部類的語法膘格,繼承相關(guān)的語法,異常的語法财松,線程的語...
    子非魚_t_閱讀 31,669評論 18 399
  • 【七月影語】20170715學(xué)習(xí)力踐行Day55 1.背誦已學(xué)過古詩 2.嬰兒畫報的兩個故事和《肚子里的火車站》 ...
    暖小柒閱讀 151評論 0 0
  • 有段時間辆毡,對行業(yè)有點失去了信心菜秦,認(rèn)為這個行業(yè)有太多的問題。現(xiàn)在想想有點杞人憂天舶掖,我只是一個螻蟻球昨,在行業(yè)發(fā)展的大潮中...
    呂胖雜彈閱讀 271評論 0 1
  • 早上好!#幸福實修#~每天進(jìn)步1%#幸福實修12班@蔣鶯華--富陽# 20170929(4/60) 【幸福三朵玫瑰...
    蔣鶯華閱讀 144評論 0 0