MySQL-lesson06-日志管理

image

1.錯誤日志(log_error)

1.1 作用

記錄啟動\關(guān)閉\日常運行過程中,狀態(tài)信息,警告,錯誤

1.2 錯誤日志配置

默認(rèn)就是開啟的:  /數(shù)據(jù)路徑下/hostname.err
手工設(shè)定:
Master [(none)]>select @@log_error;
vim /etc/my.cnf
log_error=/var/log/mysql.log
log_timestamps=system
重啟生效
show variables like 'log_error';

1.3 日志內(nèi)容查看

主要關(guān)注[ERROR],看上下文

2. binlog(binary logs):二進制日志 *****

2.1 作用

(1)備份恢復(fù)必須依賴二進制日志
(2)主從環(huán)境必須依賴二進制日志

2.2 binlog配置 (5.7必須加server_id)

注意:MySQL默認(rèn)是沒有開啟二進制日志的。
基礎(chǔ)參數(shù)查看:
開關(guān):
[(none)]>select @@log_bin;
日志路徑及名字
[(none)]>select @@log_bin_basename;
服務(wù)ID號:
[(none)]>select @@server_id;
二進制日志格式:
[(none)]>select @@binlog_format;
雙一標(biāo)準(zhǔn)之二:
[(none)]>select @@sync_binlog;

2.2.1 創(chuàng)建日志目錄

mkdir /data/binlog
chown -R mysql.mysql /data/binlog

2.2.2 修改配置文件

vim /etc/my.cnf
server_id=6                                    ----->5.6中,單機可以不需要此參數(shù)              
log_bin=/data/binlog/mysql-bin
binlog_format=row

2.2.3 重啟數(shù)據(jù)庫生效

[root@db01 mysql]# /etc/init.d/mysqld restart

2.2.4 參數(shù)說明

server_id=3306 
主要是在主從復(fù)制過程中必須要加的,但是在5.7版本中,要用以下參數(shù)(log_bin),開啟binlog日志,即使是單機也是必加的
log_bin=/data/binlog/mysql-bin
(1)開啟二進制日志功能
(2)設(shè)置二進制日志目錄及名稱前綴
binlog_format=row
binlog的記錄格式??

2.3 binlog記錄了什么?

2.3.0 引入

binlog是SQL層的功能混滔。記錄的是變更SQL語句饿敲,不記錄查詢語句绰播。

2.3.1 記錄SQL語句種類

DDL :原封不動的記錄當(dāng)前DDL(statement語句方式)憎夷。
DCL :原封不動的記錄當(dāng)前DCL(statement語句方式)型酥。
DML :只記錄已經(jīng)提交的事務(wù)DML

2.3.2 DML三種記錄方式

binlog_format(binlog的記錄格式)參數(shù)影響
(1)statement(5.6默認(rèn))SBR(statement based replication) :語句模式原封不動的記錄當(dāng)前DML躬翁。
(2)ROW(5.7 默認(rèn)值) RBR(ROW based replication) :記錄數(shù)據(jù)行的變化(用戶看不懂焦蘑,需要工具分析)
(3)mixed(混合)MBR(mixed based replication)模式  :以上兩種模式的混合

2.3.3 面試題

SBR與RBR模式的對比
STATEMENT:可讀性較高,日志量少盒发,但是不夠嚴(yán)謹(jǐn)
ROW      :可讀性很低例嘱,日志量大,足夠嚴(yán)謹(jǐn)
update t1 set xxx=xxx where id>1000   ? -->一共500w行宁舰,row模式怎么記錄的日志
為什么row模式嚴(yán)謹(jǐn)拼卵?
id  name    intime
insert into t1 values(1,'zs',now())
我們建議使用:row記錄模式

2.4 event(事件)是什么?

2.4.1 事件的簡介

二進制日志的最小記錄單元
對于DDL,DCL,一個語句就是一個event
對于DML語句來講:只記錄已提交的事務(wù)。
例如以下列子,就被分為了4個event
begin;      120  - 340
DML1        340  - 460
DML2        460  - 550
commit;     550  - 760

2.4.2 event的組成

三部分構(gòu)成:
(1) 事件的開始標(biāo)識
(2) 事件內(nèi)容
(3) 事件的結(jié)束標(biāo)識
Position:
開始標(biāo)識: at 194
結(jié)束標(biāo)識: end_log_pos 254
194? 254?
某個事件在binlog中的相對位置號
位置號的作用是什么蛮艰?
為了方便我們截取事件

2.5 日志文件查看

2.5.1 查看日志的開啟情況

log_bin參數(shù)設(shè)置的路徑,可以找到二進制日志

Master [(none)]>show variables like '%log_bin%';
+---------------------------------+------------------------------+
| Variable_name                   | Value                        |
+---------------------------------+------------------------------+
| log_bin                         | ON                           |
| log_bin_basename                | /data/binlog/mysql-bin       |
| log_bin_index                   | /data/binlog/mysql-bin.index |
| log_bin_trust_function_creators | OFF                          |
| log_bin_use_v1_row_events       | OFF                          |
| sql_log_bin                     | ON                           |
+---------------------------------+------------------------------+
6 rows in set (0.01 sec)

2.5.2 查看一共多少個binlog

Master [(none)]>show binary logs;
+------------------+-----------+
| Log_name         | File_size |
+------------------+-----------+
| mysql-bin.000001 |       154 |
+------------------+-----------+
1 row in set (0.01 sec)

Master [(none)]>flush logs;
Query OK, 0 rows affected (0.03 sec)

Master [(none)]>flush logs;
Query OK, 0 rows affected (0.01 sec)

Master [(none)]>show binary logs;
+------------------+-----------+
| Log_name         | File_size |
+------------------+-----------+
| mysql-bin.000001 |       201 |
| mysql-bin.000002 |       201 |
| mysql-bin.000003 |       154 |
+------------------+-----------+
3 rows in set (0.00 sec)

Master [(none)]>

2.5.3 查看mysql正在使用的日志文件

Master [(none)]>show master status;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000003 |      154 |              |                  |                   |
+------------------+----------+--------------+------------------+-------------------+
Master [(none)]>

file:當(dāng)前MySQL正在使用的文件名
Position:最后一個事件的結(jié)束位置號

2.6 日志內(nèi)容查看

2.6.1 event查看

Master [binlog]>show binlog events in 'mysql-bin.000003';
+------------------+-----+----------------+-----------+-------------+----------------------------------------+
| Log_name         | Pos | Event_type     | Server_id | End_log_pos | Info                                   |
+------------------+-----+----------------+-----------+-------------+----------------------------------------+
| mysql-bin.000003 |   4 | Format_desc    |         6 |         123 | Server ver: 5.7.20-log, Binlog ver: 4  |
| mysql-bin.000003 | 123 | Previous_gtids |         6 |         154 |                                        |
| mysql-bin.000003 | 154 | Anonymous_Gtid |         6 |         219 | SET @@SESSION.GTID_NEXT= 'ANONYMOUS'   |
| mysql-bin.000003 | 219 | Query          |         6 |         319 | create database binlog                 |
| mysql-bin.000003 | 319 | Anonymous_Gtid |         6 |         384 | SET @@SESSION.GTID_NEXT= 'ANONYMOUS'   |
| mysql-bin.000003 | 384 | Query          |         6 |         486 | use `binlog`; create table t1 (id int) |
+------------------+-----+----------------+-----------+-------------+----------------------------------------+

Log_name:binlog文件名
Pos:開始的position    *****
Event_type:事件類型
Format_desc:格式描述间学,每一個日志文件的第一個事件,多用戶沒有意義印荔,MySQL識別binlog必要信息
Server_id:mysql服務(wù)號標(biāo)識
End_log_pos:事件的結(jié)束位置號 *****
Info:事件內(nèi)容*****
補充:
SHOW BINLOG EVENTS
   [IN 'log_name']
   [FROM pos]
   [LIMIT [offset,] row_count]
[root@db01 binlog]# mysql -e "show binlog events in 'mysql-bin.000004'" |grep drop

2.6.2 binlog文件內(nèi)容詳細(xì)查看

mysqlbinlog /data/mysql/mysql-bin.000006
mysqlbinlog --base64-output=decode-rows -vvv /data/binlog/mysql-bin.000003
mysqlbinlog  -d binlog /data/binlog/mysql-bin.000003
[root@db01 binlog]# mysqlbinlog --start-datetime='2019-05-06 17:00:00' --stop-datetime='2019-05-06 17:01:00'  /data/binlog/mysql-bin.000004 

2.7 基于Position號進行日志截取

核心就是找截取的起點和終點
--start-position=321
--stop-position=513
 mysqlbinlog --start-position=219 --stop-position=1347 /data/binlog/mysql-bin.000003 >/tmp/bin.sql

案例: 使用binlog日志進行數(shù)據(jù)恢復(fù)
模擬:
1. 
[(none)]>create database binlog charset utf8;
2. 
[(none)]>use binlog;
[binlog]>create table t1(id int);
3. 
[binlog]>insert into t1 values(1);
[binlog]>commit;
[binlog]>insert into t1 values(2);
[binlog]>commit;
[binlog]>insert into t1 values(3);
[binlog]>commit;
4. 
[binlog]>drop database binlog;
恢復(fù):
[(none)]>show master status ;
[(none)]>show binlog events in 'mysql-bin.000004';
[root@db01 binlog]# mysqlbinlog --start-position=1227 --stop-position=2342 /data/binlog/mysql-bin.000004 >/tmp/bin.sql
[(none)]>set sql_Log_bin=0;
[(none)]>source /tmp/bin.sql

面試案例:
1. 備份策略每天全備,有全量的二進制日志
2.業(yè)務(wù)中一共10個庫,其中一個被誤drop了
3. 需要在其他9個庫正常工作過程中進行數(shù)據(jù)恢復(fù)

2.8 binlog日志的GTID新特性

2.8.1 GTID 介紹

5.6 版本新加的特性,5.7中做了加強
5.6 中不開啟,沒有這個功能.
5.7 中的GTID,即使不開也會有自動生成
SET @@SESSION.GTID_NEXT= 'ANONYMOUS'

2.8.2. GTID(Global Transaction ID)

是對于一個已提交事務(wù)的編號低葫,并且是一個全局唯一的編號。
它的官方定義如下:

GTID = source_id :transaction_id
7E11FA47-31CA-19E1-9E56-C43AA21293967:29

重要參數(shù)介紹:

vim /etc/my.cnf
gtid-mode=on
enforce-gtid-consistency=true
systemctl restart mysqld

Master [(none)]>create database gtid charset utf8;
Query OK, 1 row affected (0.01 sec)

Master [(none)]>show master status ;
+------------------+----------+--------------+------------------+----------------------------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set                      |
+------------------+----------+--------------+------------------+----------------------------------------+
| mysql-bin.000004 |      326 |              |                  | dff98809-55c3-11e9-a58b-000c2928f5dd:1 |
+------------------+----------+--------------+------------------+----------------------------------------+
1 row in set (0.00 sec)

Master [(none)]>use gtid
Database changed
Master [gtid]>create table t1 (id int);
Query OK, 0 rows affected (0.01 sec)

Master [gtid]>show master status ;
+------------------+----------+--------------+------------------+------------------------------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set                        |
+------------------+----------+--------------+------------------+------------------------------------------+
| mysql-bin.000004 |      489 |              |                  | dff98809-55c3-11e9-a58b-000c2928f5dd:1-2 |
+------------------+----------+--------------+------------------+------------------------------------------+
1 row in set (0.00 sec)

Master [gtid]>create table t2 (id int);
Query OK, 0 rows affected (0.01 sec)

Master [gtid]>create table t3 (id int);
Query OK, 0 rows affected (0.02 sec)

Master [gtid]>show master status ;
+------------------+----------+--------------+------------------+------------------------------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set                        |
+------------------+----------+--------------+------------------+------------------------------------------+
| mysql-bin.000004 |      815 |              |                  | dff98809-55c3-11e9-a58b-000c2928f5dd:1-4 |
+------------------+----------+--------------+------------------+------------------------------------------+
1 row in set (0.00 sec)

Master [gtid]>begin;
Query OK, 0 rows affected (0.00 sec)

Master [gtid]>insert into t1 values(1);
Query OK, 1 row affected (0.00 sec)

Master [gtid]>commit;
Query OK, 0 rows affected (0.00 sec)

Master [gtid]>show master status ;
+------------------+----------+--------------+------------------+------------------------------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set                        |
+------------------+----------+--------------+------------------+------------------------------------------+
| mysql-bin.000004 |     1068 |              |                  | dff98809-55c3-11e9-a58b-000c2928f5dd:1-5 |
+------------------+----------+--------------+------------------+------------------------------------------+
1 row in set (0.00 sec)

Master [gtid]>begin;
Query OK, 0 rows affected (0.00 sec)

Master [gtid]>insert into t2 values(1);
Query OK, 1 row affected (0.00 sec)

Master [gtid]>commit;
Query OK, 0 rows affected (0.01 sec)

Master [gtid]>show master status ;
+------------------+----------+--------------+------------------+------------------------------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set                        |
+------------------+----------+--------------+------------------+------------------------------------------+
| mysql-bin.000004 |     1321 |              |                  | dff98809-55c3-11e9-a58b-000c2928f5dd:1-6 |
+------------------+----------+--------------+------------------+------------------------------------------+
1 row in set (0.00 sec)

2.8.3. 基于GTID進行查看binlog

具備GTID后,截取查看某些事務(wù)日志:
--include-gtids
--exclude-gtids
mysqlbinlog --include-gtids='dff98809-55c3-11e9-a58b-000c2928f5dd:1-6' --exclude-gtids='dff98809-55c3-11e9-a58b-000c2928f5dd:4'  /data/binlog/mysql-bin.000004

2.8.4 GTID的冪等性

開啟GTID后,MySQL恢復(fù)Binlog時,重復(fù)GTID的事務(wù)不會再執(zhí)行了
就想恢復(fù)?怎么辦?
--skip-gtids
mysqlbinlog --include-gtids='3ca79ab5-3e4d-11e9-a709-000c293b577e:4' /data/binlog/mysql-bin.000004 /data/binlog/mysql-bin.000004
set sql_log_bin=0;
source /tmp/binlog.sql
set sql_log_bin=1;

2.9 使用二進制日志恢復(fù)數(shù)據(jù)案例

2.9.1 故障環(huán)境介紹

創(chuàng)建了一個庫  db, 導(dǎo)入了表t1 ,t1表中錄入了很多數(shù)據(jù)
一個開發(fā)人員,drop database db;
沒有備份,日志都在.怎么恢復(fù)?
思路:找到建庫語句到刪庫之前所有的日志,進行恢復(fù).(開啟了GTID模式)
故障案例模擬:
(0) drop database if exists db ;
(1) create database db charset utf8;     
(2) use db;
(3) create table t1 (id int);
(4) insert into t1 values(1),(2),(3);
(5) insert into t1 values(4),(5),(6);
(6) commit
(7) update t1 set id=30 where id=3;
(8) commit;
(9) delete from t1 where id=4;
(10)commit;
(11)insert into t1 values(7),(8),(9);
(12)commit;
(13)drop database db;
========================
drop database if exists db ;
create database db charset utf8; 
use db;
create table t1 (id int);
insert into t1 values(1),(2),(3);
insert into t1 values(4),(5),(6);
commit;
update t1 set id=30 where id=3;
commit;
delete from t1 where id=4;
commit;
insert into t1 values(7),(8),(9);
commit;
drop database db;
=======
運行以上語句仍律,模擬故障場景
需求:將數(shù)據(jù)庫恢復(fù)到以下狀態(tài)(提示第9步和第13步是誤操作嘿悬,其他都是正常操作)

2.9.2 恢復(fù)過程(無GTID時的恢復(fù))

  1. 查看當(dāng)前使用的 binlog文件
oldguo [db]>show master status ;
+------------------+----------+--------------+------------------+-------------------+

| File            | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |

+------------------+----------+--------------+------------------+-------------------+

| mysql-bin.000006 |    1873 |              |                  |                  |

+------------------+----------+--------------+------------------+-------------------+

2.查看事件:

第一段:
| mysql-bin.000006 |  813 | Query      |        1 |        907 | use `db`; create table t1 (id int)                  |

| mysql-bin.000006 |  907 | Query      |        1 |        977 | BEGIN                                              |

| mysql-bin.000006 |  977 | Table_map  |        1 |        1020 | table_id: 77 (db.t1)                                |

| mysql-bin.000006 | 1020 | Write_rows  |        1 |        1070 | table_id: 77 flags: STMT_END_F                      |

| mysql-bin.000006 | 1070 | Table_map  |        1 |        1113 | table_id: 77 (db.t1)                                |

| mysql-bin.000006 | 1113 | Write_rows  |        1 |        1163 | table_id: 77 flags: STMT_END_F                      |

| mysql-bin.000006 | 1163 | Xid        |        1 |        1194 | COMMIT /* xid=74 */                                |

| mysql-bin.000006 | 1194 | Query      |        1 |        1264 | BEGIN                                              |

| mysql-bin.000006 | 1264 | Table_map  |        1 |        1307 | table_id: 77 (db.t1)                                |

| mysql-bin.000006 | 1307 | Update_rows |        1 |        1353 | table_id: 77 flags: STMT_END_F                      |

| mysql-bin.000006 | 1353 | Xid        |        1 |        1384 | COMMIT /* xid=77 */   

mysqlbinlog --start-position=813 --stop-position=1384 /data/mysql/mysql-bin.000006 >/tmp/bin1.sql 

第二段:


| mysql-bin.000006 | 1568 | Query      |        1 |        1638 | BEGIN                                              |

| mysql-bin.000006 | 1638 | Table_map  |        1 |        1681 | table_id: 77 (db.t1)                                |

| mysql-bin.000006 | 1681 | Write_rows  |        1 |        1731 | table_id: 77 flags: STMT_END_F                      |

| mysql-bin.000006 | 1731 | Xid        |        1 |        1762 | COMMIT /* xid=81 */ 

mysqlbinlog --start-position=1568 --stop-position=1762 /data/mysql/mysql-bin.000006 >/tmp/bin2.sql

3.恢復(fù)

set sql_log_bin=0;
source /tmp/bin1.sql
source /tmp/bin2.sql
set sql_log_bin=1;
oldguo [db]>select * from t1;

+------+

| id  |

+------+

|    1 |

|    2 |

|  30 |

|    4 |

|    5 |

|    6 |

|    7 |

|    8 |

|    9 |

2.9.3 有GTID的恢復(fù):

(1)截取

mysqlbinlog --skip-gtids --include-gtids='3ca79ab5-3e4d-11e9-a709-000c293b577e:7-12' mysql-bin.000004> /tmp/bin.sql

(2)恢復(fù)

set sql_log_bin=0;
source /tmp/bin.sql

2.10二進制日志其他操作

2.10.1 自動清理日志

show variables like '%expire%';
expire_logs_days  0   
自動清理時間,是要按照全備周期+1
set global expire_logs_days=8;
永久生效:
my.cnf
expire_logs_days=15;
企業(yè)建議,至少保留兩個全備周期+1的binlog

2.10.2 手工清理

PURGE BINARY LOGS BEFORE now() - INTERVAL 3 day;
PURGE BINARY LOGS TO 'mysql-bin.000010';
注意:不要手工 rm binlog文件
1. my.cnf binlog關(guān)閉掉,啟動數(shù)據(jù)庫
2.把數(shù)據(jù)庫關(guān)閉,開啟binlog,啟動數(shù)據(jù)庫
刪除所有binlog,并從000001開始重新記錄日志

*reset master; 主從關(guān)系中,主庫執(zhí)行此操作水泉,主從環(huán)境必崩

2.10.3 日志是怎么滾動

flush logs; 
重啟mysql也會自動滾動一個新的
日志文件達(dá)到1G大小(max_binlog_size)
| max_binlog_size                          | 1073741824     
備份時,加入?yún)?shù)也可以自動滾動

3.slow_log 慢日志

3.1 作用:

記錄慢SQL語句的日志,定位低效SQL語句的工具日志

3.2 開啟慢日志(默認(rèn)沒開啟)

開關(guān):
slow_query_log=1 
文件位置及名字 
slow_query_log_file=/data/mysql/slow.log
設(shè)定慢查詢時間:
long_query_time=0.1
沒走索引的語句也記錄:
log_queries_not_using_indexes
vim /etc/my.cnf
slow_query_log=1 
slow_query_log_file=/data/mysql/slow.log
long_query_time=0.1
log_queries_not_using_indexes
systemctl restart mysqld

3.3 mysqldumpslow 分析慢日志

mysqldumpslow -s c -t 10 /data/mysql/slow.log

# 第三方工具(自己擴展)
https://www.percona.com/downloads/percona-toolkit/LATEST/
yum install perl-DBI perl-DBD-MySQL perl-Time-HiRes perl-IO-Socket-SSL perl-Digest-MD5
toolkit工具包中的命令:
./pt-query-diagest  /data/mysql/slow.log
Anemometer基于pt-query-digest將MySQL慢查詢可視化

作者:wwwoldguocom
鏈接:http://www.reibang.com/p/00c54d2832ed
來源:簡書
著作權(quán)歸作者所有善涨。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請注明出處草则。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末钢拧,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子炕横,更是在濱河造成了極大的恐慌源内,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,122評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件份殿,死亡現(xiàn)場離奇詭異膜钓,居然都是意外死亡嗽交,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評論 3 395
  • 文/潘曉璐 我一進店門颂斜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來夫壁,“玉大人,你說我怎么就攤上這事沃疮『腥茫” “怎么了?”我有些...
    開封第一講書人閱讀 164,491評論 0 354
  • 文/不壞的土叔 我叫張陵司蔬,是天一觀的道長邑茄。 經(jīng)常有香客問我,道長葱她,這世上最難降的妖魔是什么撩扒? 我笑而不...
    開封第一講書人閱讀 58,636評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮吨些,結(jié)果婚禮上搓谆,老公的妹妹穿的比我還像新娘。我一直安慰自己豪墅,他們只是感情好泉手,可當(dāng)我...
    茶點故事閱讀 67,676評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著偶器,像睡著了一般斩萌。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上屏轰,一...
    開封第一講書人閱讀 51,541評論 1 305
  • 那天颊郎,我揣著相機與錄音,去河邊找鬼霎苗。 笑死姆吭,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的唁盏。 我是一名探鬼主播内狸,決...
    沈念sama閱讀 40,292評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼厘擂!你這毒婦竟也來了昆淡?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,211評論 0 276
  • 序言:老撾萬榮一對情侶失蹤刽严,失蹤者是張志新(化名)和其女友劉穎昂灵,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,655評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡倔既,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,846評論 3 336
  • 正文 我和宋清朗相戀三年恕曲,在試婚紗的時候發(fā)現(xiàn)自己被綠了鹏氧。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片渤涌。...
    茶點故事閱讀 39,965評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖把还,靈堂內(nèi)的尸體忽然破棺而出实蓬,到底是詐尸還是另有隱情,我是刑警寧澤吊履,帶...
    沈念sama閱讀 35,684評論 5 347
  • 正文 年R本政府宣布安皱,位于F島的核電站,受9級特大地震影響艇炎,放射性物質(zhì)發(fā)生泄漏酌伊。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,295評論 3 329
  • 文/蒙蒙 一缀踪、第九天 我趴在偏房一處隱蔽的房頂上張望居砖。 院中可真熱鬧,春花似錦驴娃、人聲如沸奏候。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蔗草。三九已至,卻和暖如春疆柔,著一層夾襖步出監(jiān)牢的瞬間咒精,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評論 1 269
  • 我被黑心中介騙來泰國打工旷档, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留模叙,地道東北人。 一個月前我還...
    沈念sama閱讀 48,126評論 3 370
  • 正文 我出身青樓彬犯,卻偏偏與公主長得像向楼,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子谐区,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,914評論 2 355

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