zoukankan      html  css  js  c++  java
  • mysql免安装部署,主从配置和Atlas数据库中间件的使用

    mysql免编译安装包下载地址:https://dev.mysql.com/downloads/mysql/  

    linux 选择免安装版本

    Atlas 下载地址:https://github.com/Qihoo360/Atlas/releases  根据服务器版本选择,本文档使用rpm版本,因为服务器使用redhat7,所有选择rpm版本,更多服务器和版本对应的信息,下载地址存在文档,请自行查看

    Ip地址已实际环境为准,这里主要为了文档描述时标注清晰

    数据库中间件服务器:Atlas部署服务器(因为项目原因使用三方插件不能设置端口,所以中间件如果和主库部署在同一服务器时,设置中间件端口为3306)

            Ip:192.168.109.252

    主库:mysql主库(如果和中间件部署在同一服务器,需要修改端口不能使用3306端口)

            Ip:192.168.109.253

    从库:mysql 从库

           Ip:192.168.109.254

    1 .Mysql免编译安装包部署

    1.1   创建存放压缩包文件夹

    1.2   上传安装包至压缩包存放文件夹

     

    1.3   解压缩包至/user/local/mysql

     

    1.4   安装mysql所需拓展

    yum -y install gcc-c++ ncurses-devel cmake make perl gcc autoconf automake zlib libxml libgcrypt libtool bison net-tools libaio

     

    1.5   进入mysql文件夹

    cd /usr/local/mysql

    1.6   创建数据存储文件夹 data

    mkdir data

    1.7   创建mysql用户组和mysql用户,-s /bin/false 表示用户不能用于登录

    groupadd mysql (添加mysql用户组命令)

    useradd -r -g mysql  -s /bin/false mysql

    1.8   为mysql用户添加权限

    chown -R mysql:mysql /usr/local/mysql

    1.9   拷贝提供的部署中的my.cnf到/etc下,编辑my.cnf 屏蔽sql_mode一行

    1.10 初始化数据库 初始化完成会有一个密码,保存一下

    /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

     

    1.11   配置mysql服务

    cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

    chkconfig --add mysqld # 添加到系统服务

    chkconfig mysqld on # 开机启动

     

    1.12启动mysql

    service mysqld start    //启动mysql服务

    service mysqld stop     //停止mysql服务

    service mysqld restart  //重启mysql服务

    1.13 配置mysql环境变量

    vi /etc/profile

     

    添加 export PATH=/usr/local/mysql/bin:$PATH 保存

     

    执行 source /etc/profile 在没有source命令情况下执行. /etc/profile让profile文件立即生效

     

    1.14 登录mysql 修改临时管理员密码

    mysql -h 127.0.0.1 -u root –p

     

    执行如下语句,修改本地登录密码为123456

    alter user 'root'@'localhost' identified by '123456';

     

    设置mysql允许远程登录

    Use mysql;

    Update user set host=’%’ where host=’localhost’ and user=’root’;

    执行 flush privileges;命令立即生效

     

    1.15 添加3306端口为开放端口

    7以前版本

    1、修改vim /etc/sysconfig/iptables文件,增加如下一行:

        -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 要开启的端口 -j ACCEPT

    2、重启    iptables
          命令:  service iptables restart 

    查询端口是否已打开:

    netstat -an | grep 端口 或 netstat -tunlp |grep 端口
    方法二:
          1、# /sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
           2、# /etc/init.d/iptables restart
           3、# /etc/rc.d/init.d/iptables save

        7以后使用

        查看端口是否开放

        firewall-cmd --query-port=3306/tcp

        添加端口

    firewall-cmd --add-port=3306/tcp --permanent

    主库从库部署都以上面为准

    2   mysql数据库主从配置

    2.1  192.168.109.253(主库配置)

    配置项必须添加[mysqld]之后

    ##########################

    ## log bin

    ###########################

    server-id = 100                         #必须唯一

    log_bin = mysql-bin             #开启及设置二进制日志文件名称

    binlog_format = MIXED

    sync_binlog = 1

    expire_logs_days =7                     #二进制日志自动删除/过期的天数。默认值为0,表示不自动删除

    #binlog_cache_size = 128m

    #max_binlog_cache_size = 512m

    #max_binlog_size = 256M

    binlog-do-db = sync             #要同步的数据库

    binlog-ignore-db = mysql        #不需要同步的数据库

    binlog_ignore_db = information_schema

    binlog_ignore_db = performation_schema

    binlog_ignore_db = sys

     

    重启mysql服务,service mysqld restart

    登录mysql  mysql -uroot -p   回车 输入密码 回车

    执行下面语句(设置从服务器服务权限,方便从服务器用户读取赋值主服务器内容)

    grant replication slave,replication on *.* to ‘从库账号’@’从库ip’ identified by ‘从库登陆密码’;

    执行flush privileges; 使命令立即生效

     

    执行show master status;查看主服务器的状态

     

    记住此时的File和Position,配置从服务器的时候会用上

    2.2  192.168.109.254(从库配置)

    配置从服务器/etc/my.cnf

    ##########

    ##bin-log

    ##########

    server-id = 110

    log_bin = mysql-bin

    replicate-do-db =sync #只复制某个库

    replicate-ignore-db=mysql #不复制某个库

    replicate-ignore-db=information_schema

    replicate-ignore-db=performance_schema

     

    重启mysql服务,service mysqld restart

    登录mysql  mysql -uroot -p   回车 输入密码 回车

    设置主库信息

    执行 stop slave; 停止同步

    执行 CHANGE MASTER TO MASTER_HOST=’主库ip’,MASTER_PORT=’主库端口’,MASTER_USER=’主库mysql用户’,MASTER_PASSWORD=’主库mysql密码’,MASTER_LOG_FILE=’上面获取的FIEL’,MASTER_LOG_POS=’上面获取的position’;

    MASTER_LOG_FILE 从主库的该log_bin文件开始读取同步信息,主库show master status返回结果

    MASTER_LOG_POS 从文件中指定位置开始读取,主库show master status返回结果

    执行 start slave;开始同步

    执行 show slave status;查看同步状态

     

    只有【Slave_IO_Running】和【Slave_SQL_Running】都是Yes,则同步是正常的。
    如果是No或者Connecting都不行,可查看mysql-error.log,以排查问题。

     

    3   配置Atlas读写分离

    上传atlas安装包Atlas-2.2.1.el6.x86_64.rpm到服务器

     

    执行 rpm -i Atlas-2.2.1.el6.x86_64.rpm 安装altas,安装后的路径为/usr/local/mysql-proxy

     

    修改配置文件 vim /usr/local/mysql-proxy/conf/test.cnf

     

     

    配置文件中参数都有描述,配置以上述配置文件中为准

    开启端口如上面配置mysql的开启端口,开启配置的proxy-address所有配置的端口

    Atlas启动,停止,重启命令

    /usr/local/mysql-proxy/bin/mysql-proxyd test start    启动

    /usr/local/mysql-proxy/bin/mysql-proxyd test stop     停止

    /usr/local/mysql-proxy/bin/mysql-proxyd test restart  重启

    然后在项目配置,使用Atlas所在服务器所在ip,端口使用Atlas中proxy-address配置端口,用户使用主库用户和密码,主库和从库用户密码需要一致 

  • 相关阅读:
    类定义(课下选做)
    结对项目第一周
    迭代和JDB
    JAVA 第五周学习总结
    JAVA 第四周学习总结
    JAVA 第三周学习总结
    springcloud-provider-consumer-register
    springcloud-eureka
    springBoot-打包
    spring-Scheduler
  • 原文地址:https://www.cnblogs.com/wang1204/p/13447587.html
Copyright © 2011-2022 走看看