目录
3.3.2、在配置文件配置读写分离规则 和 允许 bean 定义覆盖配置项
① 修改配置文件 /etc/my.cnf
vim /etc/my.cnf
添加以下配置
- log-bin=mysql-bin # 启用二进制日志
- server-id=100 # 服务器唯一id
② 重启 Mysql 服务
systemctl restart mysqld
③ 登录 Mysql 数据库,执行下面的 SQL
GRANT REPLICATION SLAVE ON *.* to 'zyj'@'%' identified by 'Root@***';
注:上面SQL的作用是创建一个用户 xiaoming,密码为 Root@***,并且给 xiaoming 用户授予 REPLICATION SLAVE 权限。常用于建立复制时所需要用到的用户权限,也就是 slave 必须被 master 授权具有该权限的用户,才能通过该用户复制。
④ 登录Mysql数据库,执行下面SQL,记录下结果中 File 和 Position 的值
show master status;
注:上面SQL的作用是查看Master的状态,执行完此SQL后不要再执行任何操作
① 修改配置文件 /etc/my.cnf
vim /etc/my.cnf
如下图,添加配置
server-id=101
② 重启 Mysql 服务
systemctl restart mysqld
③ 登录 Mysql 数据库,执行下面的 SQL
change master to master_host='主库ip',master_user='角色用户名',master_password='角色密码',master_log_file='mysql-bin.000005',master_log_pos=主库Position;
执行完后开启线程
start slave;
④ 查看结果
show slave status\G;
若和上图三个框的内容一样,说明开启成功
在主库创建数据库和表,从库也会创建响应的数据库和表
读写分离步骤:
-
- <dependency>
- <groupId>org.apache.shardingspheregroupId>
- <artifactId>sharding-jdbc-spring-boot-starterartifactId>
- <version>4.0.0-RC1version>
- dependency>
- server:
- port: 8080
- spring:
- shardingsphere:
- datasource:
- names:
- master,slave # 数据源名字,可自定义,只要上下对应即可
- # 主数据源
- master:
- type: com.alibaba.druid.pool.DruidDataSource
- driver-class-name: com.mysql.cj.jdbc.Driver
- url: jdbc:mysql://192.168.44.128:3306/rw?characterEncoding=utf-8&useSSL=false
- username: root
- password: zyj123
- # 从数据源
- slave:
- type: com.alibaba.druid.pool.DruidDataSource
- driver-class-name: com.mysql.cj.jdbc.Driver
- url: jdbc:mysql://192.168.44.127:3306/rw?characterEncoding=utf-8&useSSL=false
- username: root
- password: zyj123
- masterslave:
- # 读写分离配置
- load-balance-algorithm-type: round_robin # 负载均衡策略:轮询
- # 最终的数据源名称
- name: dataSource
- # 主库数据源名称
- master-data-source-name: master
- # 从库数据源名称列表,多个逗号分隔
- slave-data-source-names: slave
- props:
- sql:
- show: true #开启SQL显示,默认false
- main:
- allow-bean-definition-overriding: true # 允许 bean 定义覆盖配置项
- mybatis-plus:
- configuration:
- #在映射实体或者属性时,将数据库中表名和字段名中的下划线去掉,按照驼峰命名法映射
- map-underscore-to-camel-case: true
- log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
- global-config:
- db-config:
- id-type: ASSIGN_ID
-
- <dependency>
- <groupId>org.apache.shardingspheregroupId>
- <artifactId>sharding-jdbc-spring-boot-starterartifactId>
- <version>4.0.0-RC1version>
- dependency>
- spring:
- application:
- name: reggie_take_out # 应用名称,若不配置默认为当前项目的工程名
- # datasource:
- # druid:
- # driver-class-name: com.mysql.cj.jdbc.Driver
- # url: jdbc:mysql://localhost:3306/reggie?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true
- # username: root
- # password: zyj123
- shardingsphere:
- datasource:
- names:
- master,slave # 数据源名字,可自定义,只要上下对应即可
- # 主数据源
- master:
- type: com.alibaba.druid.pool.DruidDataSource
- driver-class-name: com.mysql.cj.jdbc.Driver
- url: jdbc:mysql://192.168.44.128:3306/reggie?characterEncoding=utf-8&useSSL=false
- username: root
- password: zyj123
- # 从数据源
- slave:
- type: com.alibaba.druid.pool.DruidDataSource
- driver-class-name: com.mysql.cj.jdbc.Driver
- url: jdbc:mysql://192.168.44.127:3306/reggie?characterEncoding=utf-8&useSSL=false
- username: root
- password: zyj123
- masterslave:
- # 读写分离配置
- load-balance-algorithm-type: round_robin # 负载均衡策略:轮询
- # 最终的数据源名称
- name: dataSource
- # 主库数据源名称
- master-data-source-name: master
- # 从库数据源名称列表,多个逗号分隔
- slave-data-source-names: slave
- props:
- sql:
- show: true #开启SQL显示,默认false
- main:
- allow-bean-definition-overriding: true # 允许 bean 定义覆盖配置项
Windows 下载地址:nginx: download ,选择需要的版本下载即可
Linux :
- 安装依赖包:
- yum -y install gcc pcre-devel zlib-devel openssl openssl-devel
-
- 安装wget
- yum install wget
-
- 下载nginx安装包
- wget http://nginx.org/download/nginx-1.16.1.tar.gz
-
- 解压
- tar -zxvf nginx-1.16.1.tar.gz -C /usr/local
-
- 进入根目录
- cd nginx-1.16.1/
-
- 创建安装目录
- mkdir -p /usr/local/nginx
-
- 检查nginx安装环境
- ./configure --prefix=/usr/local/nginx
-
- 编译并安装nginx
- make && make install
在进入 nginx 目录下的 sbin 目录后,使用以下命令可以查看 nginx 版本
./nginx -v
在启动 Nginx 服务之前,可以先检查一下 conf/nginx.conf 文件配置的是否有错误,进入 nginx 目录下的 sbin 目录后执行如下命令:
./nginx -t
启动:
./nginx
启动后配置完防火墙,在浏览器访问 ip 地址即可看到如下界面:
启动后可以查看 nginx 进程
ps -ef | grep nginx
停止:
./nginx -s stop
启动后,在 logs 目录下会生成 nginx.pid 文件,里面记录的是当前 nginx 程序的 pid,停止后会消失
当修改Nginx配置文件后,需要重新加载才能生效,可以使用下面命令重新加载配置文件:
./nginx -s reload
5.4.5、
修改 /etc/profile 文件
在 PATH 前加上 nginx 的 sbin 的完整路径,这里是 /usr/local/nginx/sbin: (注意有个冒号)
PATH=/usr/local/nginx/sbin:$JAVA_HOME/bin:$PATH
修改完后重新加载
source /etc/profile
全局块:从开始到 events 之前