7. SpringBoot 整合MySQL高可用数据库 (一)

44 阅读3分钟

7. SpringBoot 整合MySQL高可用数据库

📕 Centos 7 安装mysql

1. 查看是否已经安装了MySQL
        rpm -qa | grep mysql
2. 卸载 MySQL
        rpm -e mysql-libs-5.1.71-1.e16.x68_64 --nodeps
3. 下载安装MySQL 包
        wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
4. 安装MySQL的RPM包
        yum -y install mysql57-community-release-el7-10.noarch.rpm
5. 安装MySQL
         yum -y install mysql-community-server
6. 出现报错,更换安装命令
        yum -y install mysql-community-server --nogpgcheck
7. 启动MySQL
        systemctl start mysqld.service
8. 查看MySQL运行状态
        service mysqld status
9. 连接MySQL
        mysql -u root -p
10. MySQL安装以后有初始密码,查看初始密码
        grep 'password' /var/log/mysqld.log
11. 连接MySQL
        mysql -u root -p
12. 重置密码
        //这个错误是MySQL5.7之后有初始化密码,需要先修改初始化密码,修改MySQL配置文件my.cnf,该文件在/etc目录下,输入命令
        vim /etc/my.cnf
        在配置文件添加skip-grant-tables
        按ESC,输入:wq保存退出
        然后关闭MySQL服务
            service mysqld stop
        重启MySQL
            service mysql start
        而后再次连接MySQL,输入任意密码即可进入
        选择指定数据库
            use mysql   
        重新设置你想要设置的密码即可
            update user set authentication_string=password('root@1234') where user='root';
        设置完成后,删除my.cnf文件中添加的skip-grant-tables,重启MySQL服务,重新登录即可
13. 重新启动
        systemctl start mysqld.service
14. mysql5.7进去以后执行任何命令需要再设置一次密码
        设置mysql 密码策略
            set global validate_password_policy=LOW;
        设置密码
            SET PASSWORD = PASSWORD('root@1234');       
        查看user表的信息
        use mysql;
        select host,user from mysql.user;
        允许所有ip访问mysql
        update mysql.user set host = '%' where user = 'root';
        刷新权限
        flush privileges;

📕 linux 克隆虚拟机

  1. 关闭虚拟机,右键虚拟机->管理

  2. 克隆虚拟机向导

  3. 修改Mac地址

  4. 修改IP地址和UUID

    生成uuid =>uuidgen

    vim /etc/sysconfig/network-scripts/ifcfg-ens33 修改UUID 和 IPADDR添加

  5. 重启网络 :systemctl restart network

📕 搭建MySQL集群

  1. 主服务器my.cnf配置

    vim /etc/my.cnf
    [mysqld]
    log-bin=mysql-bin  //[必须]启用二进制日志
    binlog-format=ROW
    server-id=15         //[必须]服务器唯一ID,默认是1,一般取IP最后一段
    
  2. 创建一个用户仅授权可读供从服务器连接

    create user 'rzleyou2'@'%' identified by 'root@1234'; // 创建普通用户,可以远程连接
    grant select on *.* to 'rzleyou'@'%'; //授权所有库,只能查询操作
    
  3. 从服务器my.cnf设置

    server-id=17
    relay-log=mysql-relay-bin
    log-bin=mysql-bin
    binlog-format=ROW
    
  4. 从服务器设置账号连接主服务器

    CHANGE MASTER TO MASTER_HOST='192.168.150.15', MASTER_USER='rzleyou', MASTER_PASSWORD='root@1234', MASTER_PORT=3306, MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=320;
    
  5. 查看主从连接状态

    SHOW SLAVE STATUS\G;
    
    // 下面都为yes 则代表集群搭建成功
    Slave_IO_Running: Yes
    Slave_SQL_Running: Yes
    
  6. Slave_IO_Running: NO 解决方案

    chmod -R 777 /var/lib/mysql/auto.cnf //账号授权
    vim /var/lib/mysql/auto.cnf // server-uuid 账号和克隆主服务器相同,需要修改
    然后登录mysql
    stop slave;
    reset slave;
    start slave;
    
  7. Slave_SQL_Running: NO 解决方案

    mysql-> stop slave;                                                      
    mysql-> SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1;       
    mysql-> start slave;