配置主从mysql服务器

步骤 1: 安装MySQL

在所有服务器上安装MySQL 5.7。

步骤 2: 配置主服务器

  1. 修改配置文件 (/etc/my.cnf 或 /etc/mysql/my.cnf)

    [mysqld]
    server-id = 1
    log_bin = /var/log/mysql/mysql-bin.log
    binlog_do_db = eleme
  2. 重启MySQL服务:

    sudo systemctl restart mysql
  3. 创建一个用于复制的MySQL账户:

    CREATE USER 'replicator'@'%' IDENTIFIED BY 'password';
    GRANT REPLICATION SLAVE ON *.* TO 'replicator'@'%';
    FLUSH PRIVILEGES;
    SHOW MASTER STATUS;

步骤 3: 配置从服务器

  1. 修改配置文件 (/etc/my.cnf 或 /etc/mysql/my.cnf):

    [mysqld]
    server-id = 2 # 从服务器1使用2,从服务器2使用3
    relay_log = /var/log/mysql/mysql-relay-bin.log
    log_bin = /var/log/mysql/mysql-bin.log
    binlog_do_db = eleme
    read_only = 1
  2. 重启MySQL服务:

    sudo systemctl restart mysql
  3. 配置复制:

    CHANGE MASTER TO
    MASTER_HOST='主服务器IP',
    MASTER_USER='replicator',
    MASTER_PASSWORD='password',
    MASTER_LOG_FILE='mysql-bin.000001', # 从SHOW MASTER STATUS获取
    MASTER_LOG_POS=123; # 从SHOW MASTER STATUS获取
    START SLAVE;
  4. 检查从服务器状态:

    SHOW SLAVE STATUS\G

步骤 4: 配置防火墙

确保防火墙允许3306端口:

sudo ufw allow 3306/tcp

步骤 5: 创建数据库和表

8. 配置静态资源服务器

  1. 在主服务器上创建数据库:

    CREATE DATABASE eleme CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
  2. 创建表:

    USE eleme;

    CREATE TABLE t_user (
    id INT AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(255) NOT NULL,
    email VARCHAR(255)
    );
  3. 步骤 6: 添加两行记录

    在主服务器的MySQL数据库中执行以下SQL命令来添加两行记录:

    USE eleme;
    INSERT INTO t_user (username, email) VALUES ('user1', 'user1@example.com');
    INSERT INTO t_user (username, email) VALUES ('user2', 'user2@example.com');

    对于上述的每个步骤,我将给出一些详细的命令和配置指导,但请注意,具体命令可能会根据您的操作系统、软件版本和安装路径而有所不同。

    7. 使用MyCat为3台数据库设置负载均衡(读写分离)

  4. 安装MyCat

    • 这一步通常涉及解压MyCat包到指定目录,并可能需要设置环境变量(如PATH)或创建服务(如systemd服务)。
  5. 修改schema.xml

    • 找到MyCat的schema.xml配置文件(通常在MyCat的conf目录下)。
    • 定义逻辑库(schema)、表以及数据节点(dataNode)的映射。
    <schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100">
    <table name="t_user" primaryKey="id" dataNode="dn1,dn2,dn3" rule="sharding-by-intfile" />
    </schema>
    <dataNode name="dn1" dataHost="localhost1" database="eleme" />
    <dataNode name="dn2" dataHost="localhost2" database="eleme" />
    <dataNode name="dn3" dataHost="localhost3" database="eleme" />
    <dataHost name="localhost1" maxCon="1000" minCon="10" balance="0"
    writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
    <heartbeat>select user()</heartbeat>
    <writeHost host="hostM1" url="jdbc:mysql://192.168.1.100:3306" user="root" password="password">
    <readHost host="hostS1" url="jdbc:mysql://192.168.1.101:3306" user="root" password="password"/>
    </writeHost>
    <!-- 可以添加更多readHost -->
    </dataHost>
    <!-- 重复上述dataHost配置为localhost2和localhost3 -->
  6. 修改server.xml

    • 配置用户及其权限。
    <user name="myuser">
    <property name="password">mypassword</property>
    <property name="schemas">TESTDB</property>
    <property name="readOnly">false</property>
    </user>
  7. 配置rule.xml(如果需要自定义分片规则)

    • 定义分片规则,这里假设您使用的是内置的或已定义的规则。
  8. 安装Nginx

    • 使用包管理器安装Nginx(如apt-get install nginx对于Debian/Ubuntu,或yum install nginx对于CentOS)。
  9. 配置Nginx以提供静态资源

    • 编辑Nginx的配置文件(通常是/etc/nginx/nginx.conf/etc/nginx/sites-available/default),设置服务器块以指向静态资源的目录。
    server {
    listen 80;
    server_name static.example.com;
    location / {
    root /path/to/static/files;
    autoindex on; # 如果需要列出目录内容
    try_files $uri $uri/ =404;
    }
    }
  10. 重启Nginx

    • 使用nginx -s reload或系统服务命令(如systemctl restart nginx)来重启Nginx。
  11. 部署后端应用程序
    • 将您的Java应用程序打包为WAR或JAR文件,并部署到Tomcat、Spring Boot等应用服务器上。
    • 确保应用程序配置为在端口8080上运行。确保服务器的防火墙规则允许从外部访问端口80
  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值