RedHat/CentOS8【MySQL8】安装、配置和管理

MySQL8 是一款功能强大且开源的(遵循GPL协议)关系型数据库管理系统(RDBMS)。

本方案基于CentOS8系统设计,建议在RedHat/CentOS系统中使用。


1.MySQL8 的安装

1、打开 MySQL8 官方网站下载页面【https://dev.mysql.com/downloads/repo/yum/】,下载并安装 yum 源到用户主目录中。

MySQL8 下载页面
[centos@host ~]$ sudo rpm -ivh mysql80-community-release-el8-1.noarch.rpm

注意:如果使用本地或私有yum源,可忽略本步骤,直接获取本地/私有yum源的配置文件使用即可。有关如何进行yum源的本地化/私有化,请阅读文章《RedHat/CentOS8 【国内/本地/私有 YUM 源】制作和使用》,文章地址【https://www.jianshu.com/p/68db74388600】。

2、禁用系统内置 yum 源的 MySQL 安装模块。

CentOS8 的内置 yum 源中已经提供 MySQL 安装模块(但比官方提供的版本要旧),而在执行安装命令时,内置 yum 源的优先级高于其他 yum 源,因此要禁用内置 yum 源的 MySQL 安装模块。

[centos@host ~]$ sudo dnf module disable mysql

3、安装 MySQL8 的服务器端程序。

[centos@host ~]$ sudo dnf install mysql-server mysql

注意:程序文件在"/usr/bin"目录中,配置文件是"/etc/my.cnf",套接字文件在"/var/lib/mysql"目录中,运行时文件在"/var/run/mysqld"目录中,日志文件在"/var/log"目录中,程序运行用户和组是"mysql:mysql","mysql"用户和组安装时默认创建。


2.MySQL8 的配置

1、设置数据库实例的数据存储目录。

数据库实例的默认数据存储目录是"/var/lib/mysql"。"/var"是一个系统目录,不宜存放大量业务数据,通常的解决方案是在系统中挂载一块数据盘,专门用于存储业务数据。因此需要在初始化数据库实例之前设置数据存储目录。假设本例中使用"/data"目录挂载数据盘,具体操作如下:

创建数据存储目录、错误日志目录、数据备份目录,并设置所有者用户和组为"mysql:mysql","mysql"用户和组在安装 MySQL8 时已创建。

[centos@host ~]$ sudo mkdir -p /data/mysql/data
[centos@host ~]$ sudo mkdir -p /data/mysql/log
[centos@host ~]$ sudo mkdir -p /data/mysql/backup
[centos@host ~]$ sudo chown -R mysql:mysql /data/mysql

2、设置 MySQL8 数据库配置文件参数。

使用文本编辑器打开配置文件:

[centos@host ~]$ sudo gedit /etc/my.cnf

修改或验证文件中的以下参数并保存:

[mysqld]

# 数据存储目录,默认是/var/lib/mysql。建议存储到数据盘中。
datadir=/data/mysql/data

# 日志文件位置,默认是/var/log/mysqld.log。建议存储到数据盘中。
log-error=/data/mysql/log/mysqld.log

# 套接字文件位置,默认是/var/lib/mysql/mysql.sock。
socket=/var/lib/mysql/mysql.sock

# 运行时文件位置,默认是/var/run/mysqld/mysqld.pid。
pid-file=/var/run/mysqld/mysqld.pid

# 服务运行管理账户,默认是mysql。
# user=mysql

# 服务监听端口号,默认是3306。
# port=3306

# 跳过 IP 地址反向解析域名,默认不启用。
# skip-name-resolve

# 跳过身份认证,默认不启用。
# skip-grant-tables

# 跳过远程链接,默认不启用。
# skip-networking

3、设置数据库实例超级管理员账户"mysql"的口令。MySQL8 安装完成后"mysql"的默认口令为空,为空时无法使用该用户在本地登录数据库。

[centos@host  ~]$ sudo passwd mysql
更改用户 mysql 的密码 。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。

4、在SELinux模式运行时,设置自定义目录的安全标记和安全策略。

[centos@host ~]$ sudo semanage fcontext -a -t mysqld_db_t "/data/mysql/data(/.*)?"
[centos@host ~]$ sudo semanage fcontext -a -t mysqld_log_t "/data/mysql/log(/.*)?"
[centos@host ~]$ sudo restorecon -Rv /data/mysql/data
[centos@host ~]$ sudo restorecon -Rv /data/mysql/log

5、修改或验证 MySQL8 开机启动服务配置文件。

使用文本编辑器打开配置文件:

[centos@host ~]$ sudo gedit /usr/lib/systemd/system/mysqld.service

修改或验证文件中的以下参数并保存:

[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target

[Install]
WantedBy=multi-user.target

[Service]
User=mysql
Group=mysql

Type=notify

# Disable service start and stop timeout logic of systemd for mysqld service.
TimeoutSec=0

# Execute pre and post scripts as root
PermissionsStartOnly=true

# Needed to create system tables
ExecStartPre=/usr/bin/mysqld_pre_systemd

# Start main service
ExecStart=/usr/sbin/mysqld $MYSQLD_OPTS

# Use this to switch malloc implementation
EnvironmentFile=-/etc/sysconfig/mysql

# Sets open_files_limit
LimitNOFILE = 10000

Restart=on-failure

RestartPreventExitStatus=1

# Set enviroment variable MYSQLD_PARENT_PID. This is required for restart.
Environment=MYSQLD_PARENT_PID=1

PrivateTmp=false

6、启动数据库实例服务,并设置为开机自动启动。

[centos@host ~]$ sudo systemctl daemon-reload
[centos@host ~]$ sudo systemctl start mysqld.service
[centos@host ~]$ sudo systemctl enable mysqld.service

7、开启远程访问策略。

1)设置防火墙端口(CentOS8默认安装firewall防火墙),允许"3306"端口(MySQL 默认端口)访问服务器。

[centos@host ~]$ sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent
[centos@host ~]$ sudo firewall-cmd --reload

2)在SELinux模式运行时,开启远程访问安全策略。

[centos@host ~]$ sudo setsebool -P mysql_connect_any 1

8、设置数据库超级管理员"root"账号的口令。

【首选方案(已安装 mysql-client 时可用)】

1)初始化 "root" 账号的口令。

[centos@host ~]$ mysqladmin -u root password "password"

2)使用"root"账号登录客户端,设置新的口令和策略。密码要包含大写字母,小写字母,数字,特殊符号。

[centos@host ~]$ mysql -u root -p
Enter password:

# 初始化root账号本地登录的口令。
# 格式:alter user '<账号>'@'<客户端IP策略>' identified by '<登录密码>';
# 说明:
# <客户端IP策略>可以使用通配符”%”,也可以指定具体IP地址或地址段,如:
# 允许全部远程地址访问,设置为:”%”;
# 允许IP地址访问,设置为:”192.168.0.1”;
# 允许IP地址段访问,设置为:”192.168.0.%”。
mysql> alter user 'root'@'localhost' identified by 'password';

# 创建root账号远程登录的策略和口令。
# 格式:create user '<账号>'@'<客户端IP策略>' identified with mysql_native_password by '<登录密码>';
# 说明:
# <客户端IP策略>可以使用通配符”%”,也可以指定具体IP地址或地址段,如:
# 允许全部远程地址访问,设置为:”%”;
# 允许IP地址访问,设置为:”192.168.0.1”;
# 允许IP地址段访问,设置为:”192.168.0.%”。
# with mysql_native_password 表示设置的口令可同时用于远程访问(不指定时用于本地访问)。
mysql> create user 'root'@'%' identified with mysql_native_password by 'password';

# 格式:grant all privileges on <库名>.<表名> to '<用户名>'@'<客户端IP策略>';
# 说明:
# <库名>和<表名>可以使用通配符”*”代替,表示全部数据库或全部表;
# <客户端IP策略>可以使用通配符”%”,也可以指定具体IP地址或地址段,如:
# 允许全部远程地址访问,设置为:”%”;
# 允许IP地址访问,设置为:”192.168.0.1”;
# 允许IP地址段访问,设置为:”192.168.0.%”。
mysql> grant all on *.* to 'root'@'%';

# 刷新用户权限。
mysql> flush privileges;

# 连接 mysql 数据库,默认数据库。
mysql>use mysql;

# 查询已有的策略。
mysql> select user,host,authentication_string from user\G;

# 退出客户端。
mysql> exit;

【备选方案(未安装 mysql-client 时可用)】

MySQL数据库安装后,因"root"账号未设置口令所以无法远程登录,需要在服务器上临时使用本地用户免密登录后设置"root"账号的口令才能正常使用。

注意:本地用户免密登录和远程登录不可共同开启。

1)使用文本编辑器打开配置文件,修改或验证文件中的以下参数并保存。

[centos@host ~]$ sudo gedit /etc/my.cnf
[mysqld]
# 开启以下两项设置后,仅能够通过本地访问数据库,使用超级管理员身份登录且不需要进行身份认证。

# 跳过身份认证,默认不启用。
skip-grant-tables

# 跳过远程链接,默认不启用。
skip-networking

2)重新启动服务。

[centos@host ~]$ sudo systemctl restart mysqld.service

3)免密登录客户端并清除"root"账号口令。

[centos@host ~]$ mysql
# 连接 mysql 数据库,默认数据库。
mysql>use mysql;

# 更新 root 账号口令为空(不能设置其他口令)。
mysql>update user set authentication_string='' where user='root';

# 退出客户端。
mysql> exit;

4)使用文本编辑器打开配置文件,修改或验证文件中的以下参数并保存。

[centos@host ~]$ sudo gedit /etc/my.cnf
[mysqld]
# 开启以下两项设置后,仅能够通过本地访问数据库,使用超级管理员身份登录且不需要进行身份认证。

# 跳过身份认证,默认不启用。
# skip-grant-tables

# 跳过远程链接,默认不启用。
# skip-networking

5)重新启动服务。

[centos@host ~]$ sudo systemctl restart mysqld.service

6)使用"root"账号登录客户端,设置新的口令和策略。密码要包含大写字母,小写字母,数字,特殊符号。

[centos@host ~]$ mysql -u root

# 初始化root账号本地登录的口令。
# 格式:alter user '<账号>'@'<客户端IP策略>' identified by '<登录密码>';
# 说明:
# <客户端IP策略>可以使用通配符”%”,也可以指定具体IP地址或地址段,如:
# 允许全部远程地址访问,设置为:”%”;
# 允许IP地址访问,设置为:”192.168.0.1”;
# 允许IP地址段访问,设置为:”192.168.0.%”。
mysql> alter user 'root'@'localhost' identified by 'password';

# 创建root账号远程登录的策略和口令。
# 格式:create user '<账号>'@'<客户端IP策略>' identified with mysql_native_password by '<登录密码>';
# 说明:
# <客户端IP策略>可以使用通配符”%”,也可以指定具体IP地址或地址段,如:
# 允许全部远程地址访问,设置为:”%”;
# 允许IP地址访问,设置为:”192.168.0.1”;
# 允许IP地址段访问,设置为:”192.168.0.%”。
# with mysql_native_password 表示设置的口令可同时用于远程访问(不指定时用于本地访问)。
mysql> create user 'root'@'%' identified with mysql_native_password by 'password';

# 格式:grant all privileges on <库名>.<表名> to '<用户名>'@'<客户端IP策略>';
# 说明:
# <库名>和<表名>可以使用通配符”*”代替,表示全部数据库或全部表;
# <客户端IP策略>可以使用通配符”%”,也可以指定具体IP地址或地址段,如:
# 允许全部远程地址访问,设置为:”%”;
# 允许IP地址访问,设置为:”192.168.0.1”;
# 允许IP地址段访问,设置为:”192.168.0.%”。
mysql> grant all on *.* to 'root'@'%';

# 刷新用户权限。
mysql> flush privileges;

# 连接 mysql 数据库,默认数据库。
mysql>use mysql;

# 查询已有的策略。
mysql> select user,host,authentication_string from user \G;

# 退出客户端。
mysql> exit;

3.MySQL8 的管理

1、启动数据库

[centos@host ~]$ sudo systemctl start mysqld.service

2、停止数据库

[centos@host ~]$ sudo systemctl stop mysqld.service

3、重启数据库

[centos@host ~]$ sudo systemctl restart mysqld.service

4、查看数据库状态、进程、端口

[centos@host ~]$ sudo systemctl status mysqld.service
[centos@host ~]$ sudo ps -ef | grep mysqld
[centos@host ~]$ sudo netstat -ntap | grep mysqld

5、开启数据库开机自启动

[centos@host ~]$ sudo systemctl enable mysqld.service

6、禁用数据库开机自启动

[centos@host ~]$ sudo systemctl disable mysqld.service

7、本地客户端登录数据库

[centos@host ~]$ mysql -u root -p
Enter password:
mysql>

8、迁移数据库

1)停止数据库。

[centos@host ~]$ sudo systemctl stop mysqld.service

2)创建新的目录,迁移数据库的相关文件,并为新的目录设置安全标签。

[centos@host ~]$ sudo mkdir -p /data/new-mysql/data
[centos@host ~]$ sudo mkdir -p /data/new-mysql/log
[centos@host ~]$ sudo mkdir -p /data/new-mysql/backup
[centos@host ~]$ sudo chown -R mysql:mysql /data/new-mysql

[centos@host ~]$ sudo cp -a /data/mysql/data /data/new-mysql/data
[centos@host ~]$ sudo cp -a /data/mysql/log /data/new-mysql/log
[centos@host ~]$ sudo cp -a /data/mysql/backup /data/new-mysql/backup

[centos@host ~]$ sudo semanage fcontext -a -t mysqld_db_t "/data/new-mysql/data(/.*)?"
[centos@host ~]$ sudo semanage fcontext -a -t mysqld_log_t "/data/new-mysql/log(/.*)?"
[centos@host ~]$ sudo restorecon -Rv /data/new-mysql/data
[centos@host ~]$ sudo restorecon -Rv /data/new-mysql/log

3)使用文本编辑器打开配置文件,修改或验证文件中的以下参数并保存。

[centos@host ~]$ sudo gedit /etc/my.cnf
[mysqld]
# 数据存储目录,默认是/var/lib/mysql。建议存储到数据盘中。
datadir=/data/new-mysql/data

# 日志文件位置,默认是/var/log/mysqld.log。建议存储到数据盘中。
log-error=/data/new-mysql/log/mysqld.log

4)启动数据库。

[centos@host ~]$ sudo systemctl start mysqld.service

9、管理用户和客户端的策略

1)创建新的用户和客户端策略:

[centos@host ~]$ mysql -u root -p
Enter password:
# 格式:create user '<账号>'@'<客户端IP策略>' identified with mysql_native_password by '<登录密码>';
# 说明:
# <客户端IP策略>可以使用通配符”%”,也可以指定具体IP地址或地址段,如:
# 允许全部远程地址访问,设置为:”%”;
# 允许IP地址访问,设置为:”192.168.0.1”;
# 允许IP地址段访问,设置为:”192.168.0.%”。
# with mysql_native_password 表示设置的口令可同时用于远程访问(不指定时用于本地访问)。
mysql> create user 'root'@'%' identified with mysql_native_password by 'password';
mysql> flush privileges;
mysql> exit;

2)修改现有的用户和客户端管理策略:

[centos@host ~]$ mysql -u root -p
Enter password:
# 格式:alter user '<账号>'@'<客户端IP策略>' identified with mysql_native_password by '<登录密码>';
# 说明:
# <客户端IP策略>可以使用通配符”%”,也可以指定具体IP地址或地址段,如:
# 允许全部远程地址访问,设置为:”%”;
# 允许IP地址访问,设置为:”192.168.0.1”;
# 允许IP地址段访问,设置为:”192.168.0.%”。
# with mysql_native_password 表示设置的口令可同时用于远程访问(不指定时用于本地访问)。
mysql> alter user 'root'@'%' identified with mysql_native_password by 'password';
mysql> flush privileges;
mysql> exit;

3)删除现有的用户和客户端策略:

[centos@host ~]$ mysql -u root -p
Enter password:
# 格式:drop user '<账号>'@'<客户端IP策略>';
# 说明:
# <客户端IP策略>可以使用通配符”%”,也可以指定具体IP地址或地址段,如:
# 允许全部远程地址访问,设置为:”%”;
# 允许IP地址访问,设置为:”192.168.0.1”;
# 允许IP地址段访问,设置为:”192.168.0.%”。
mysql> drop user 'root'@'%';
mysql> flush privileges;
mysql> exit;

4)为用户和客户端授予访问权限:

[centos@host ~]$ mysql -u root -p
Enter password:
# 格式:grant all privileges on <库名>.<表名> to '<用户名>'@'<客户端IP策略>';
# 说明:
# <库名>和<表名>可以使用通配符”*”代替,表示全部数据库或全部表;
# <客户端IP策略>可以使用通配符”%”,也可以指定具体IP地址或地址段,如:
# 允许全部远程地址访问,设置为:”%”;
# 允许IP地址访问,设置为:”192.168.0.1”;
# 允许IP地址段访问,设置为:”192.168.0.%”。
mysql> grant all on *.* to 'root'@'%';
mysql> flush privileges;
mysql> exit;

5)查询已有的客户端策略:

[centos@host ~]$ mysql -u root -p
Enter password:
mysql> use mysql;
mysql> select user,host,authentication_string from user \G;
mysql> exit;

4.MySQL8 备份数据库

1、备份库

格式:mysqldump -h 主机名 -p 端口 -u 用户名 -p 密码 --database 数据库名 > 文件名.sql

例如:

[centos@host ~]$ mysqldump -h 192.168.0.1 -p 3306 -u root -p password --database cmdb > /data/mysql/backup/cmdb.sql

2、备份库并压缩

导出的数据有可能比较大,不好备份到远程,这时候就需要进行压缩。

格式:mysqldump -h 主机名 -p 端口 -u 用户名 -p 密码 --database 数据库名 | gzip > 文件名.sql.gz

例如:

[centos@host ~]$ mysqldump -h 192.168.0.1 -p 3306 -u root -p password --database cmdb | gzip > /data/mysql/backup/cmdb.sql.gz

3、备份同个库多个表

格式:mysqldump -h 主机名 -p 端口 -u 用户名 -p 密码 --database 数据库名 表1 表2 .... > 文件名.sql

例如:

[centos@host ~]$ mysqldump -h 192.168.1.100 -p 3306 -u root -p password cmdb t1 t2 > /data/mysql/backup/cmdb_t1_t2.sql

4、同时备份多个库

格式:mysqldump -h 主机名 -p 端口 -u 用户名 -p 密码 --databases 数据库名1 数据库名2 数据库名3 > 文件名.sql

例如:

[centos@host ~]$ mysqldump -h 192.168.0.1 -u root -p password --databases cmdb bbs blog > /data/mysql/backup/mutil_db.sql

5、备份实例上所有的数据库

格式:mysqldump -h 主机名 -p 端口 -u 用户名 -p 密码 --all-databases > 文件名.sql

例如:

[centos@host ~]$ mysqldump -h 192.168.0.1 -u root -p password --all-databases > /data/mysql/backup/all_db.sql

6、备份数据库(含已删除数据库或者表的sql备份)

格式:mysqldump -h 主机名 -p 端口 -u 用户名 -p 密码 --add-drop-table --add-drop-database 数据库名 > 文件名.sql

例如:

[centos@host ~]$ mysqldump -h 192.168.0.1 -u root -p password --add-drop-table --add-drop-database cmdb > /data/mysql/backup/all_db.sql

7、备份数据库结构,不备份数据

格式:mysqldump -h 主机名 -p 端口 -u 用户名 -p 密码 --no-data 数据库名1 数据库名2 数据库名3 > 文件名.sql

例如:

[centos@host ~]$ mysqldump -h 192.168.0.1 -u root -p password --no-data –databases db1 db2 cmdb > /data/mysql/backup/structure.sql

8、恢复数据库

格式:mysql -h 主机名 -p 端口 -u 用户名 -p 密码 < 文件名.sql

例如:

[centos@host ~]$ mysql -h 192.168.0.1 -u root -p password < /data/mysql/backup/structure.sql

4.MySQL8 导入数据

1、语法:

格式:mysqlimport -h 主机名 -p 端口 -u 用户名 -p 密码 [--local] dbname file [option]

2、说明:

  • [--local]:表示从客户端任意路径读取文件导入表中,未设置该选项时,默认只从 datadir 下同名数据库目录下读取文件导入;
  • dbname:表示数据库名称;
  • file:表示数据文本文件的路径和名称;
  • [option]:表示附加选项,如下:
    --fields-terminated-by=字符串:设置字符串为字段的分隔符,默认值是“\t”;
    --fields-enclosed-by=字符:设置字符来括上字段的值;
    --fields-optionally-enclosed-by=字符:设置字符括上char、varchar、text等字符型字段;
    --fields-escaped-by=字符:设置转义字符;
    --lines-terminated-by=字符串:设置每行的结束符;
    --ignore-lines=n:表示可以忽略前几行。

3、示例(导入文本到数据库):

[centos@host ~]$ mysqlimport -h 192.168.0.1 -u root -p password mysqldb data.txt 

注意:本例中数据库名称是"mysqldb",导入数据的表名是"data",导入的数据文件名是"data.txt",导入数据表名与数据文件的主文件名必须是一致的。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,406评论 5 475
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,976评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,302评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,366评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,372评论 5 363
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,457评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,872评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,521评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,717评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,523评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,590评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,299评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,859评论 3 306
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,883评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,127评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,760评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,290评论 2 342

推荐阅读更多精彩内容