zoukankan      html  css  js  c++  java
  • centos6安装mysql5.5.53

    一 安装mysql

    mysql官网下载mysql的red hat linux安装包

       下载地址为:http://dev.mysql.com/downloads/mysql/5.5.html#downloads


    下载后的文件为:MySQL-5.5.53-1.el7.x86_64.rpm-bundle.tar

    解压 tar 包 :tar -xvf  MySQL-5.5.53-1.el7.x86_64.rpm-bundle.tar    

    移动所有的rpm包到mysql目录下 :mkdir mysql;  mv *.rpm ./mysql


    安装mysql  只需要安装 mysql-server和mysql-client包即可

    使用命令安装 :rpm -ivh  MySQL-server-5.5.53-1.el7.x86_64.rpm   抛出异常:


    [root@localhost mysql]# rpm -ivh  MySQL-server-5.5.53-1.el7.x86_64.rpm
    warning: MySQL-server-5.5.53-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
    error: Failed dependencies:
            libaio.so.1()(64bit) is needed by MySQL-server-5.5.53-1.el7.x86_64
            libaio.so.1(LIBAIO_0.1)(64bit) is needed by MySQL-server-5.5.53-1.el7.x86_64
            libaio.so.1(LIBAIO_0.4)(64bit) is needed by MySQL-server-5.5.53-1.el7.x86_64
            net-tools is needed by MySQL-server-5.5.53-1.el7.x86_64

    说明安装mysql 需要 libaio和net-tools库还有perl库 下载这三个库 安装

    如果linux已联网 可以直接使用yum安装

    yum install libaio;

    yum install net-tools

    yum install perl;

    如果想把rpm包下载下来保存 可以使用命令  yum install libaio --downloadonley --downloaddir=保存下载包的目录

    安装完成检测下 是否安装成功

    [root@localhost mysql]# rpm -qa | grep net-tools
    net-tools-2.0-0.17.20131004git.el7.x86_64
    [root@localhost mysql]# rpm -qa | grep libaio
    libaio-0.3.109-13.el7.x86_64

    有时centos中默认已安装了 数据库mariadb 是mysql的一个分支  需要预先卸载才能安装 

    查找 该数据库 

    [root@localhost mysql]# rpm  -qa | grep mariadb
    mariadb-libs-5.5.44-2.el7.centos.x86_64

    卸载:rpm -e mariadb-libs-5.5.44-2.el7.centos.x86_64 --nodeps




    接下来 安装就一路ok了

     rpm -ivh  MySQL-server-5.5.53-1.el7.x86_64.rpm  (如果按照过程中存在警告不安装 可以添加 --force 强制安装)

    安装过程中会存在一个警告:

      warning: user mysql does not exist - using root
      warning: group mysql does not exist - using root

    一般安装mysql步骤  最好新建一个mysql组 和一个mysql用户  mysql用户属于mysql组 如果没有 默认使用root用户

     rpm -ivh  MySQL-client-5.5.53-1.el7.x86_64.rpm

    安装完成后  启动mysql   :   service mysql start

    默认mysql没有密码 可以登录

      mysql -uroot

    修改密码:

      use mysql;

      update user set password=password('root');  //或者 set password=password('密码');

      flush privileges;

    即可

    二 配置mysql主从复制

    原理:

       (1)    master将改变记录到二进制日志(binary log)中(这些记录叫做二进制日志事件,binary log events  );
       (2)    slave将master的binary log events拷贝到它的中继日志(relay log);
       (3)    slave重做中继日志中的事件,将改变反映它自己的数据。


    1.mysql的初始化文件:

        mysql5.5.53默认通过/etc/rc.d/init.d/mysql脚本中设置的参数设置数据目录 ,端口等其他信息 

         可以通过 ps -ef | grep mysql 查看一些基本参数  数据目录:--datadir=/var/lib/mysql 端口:--port=3306

       [root@localhost init.d]# ps -ef | grep mysql
    root      11408      1  0 01:26 pts/0    00:00:00 /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql --pid-file=/var/lib/mysql/localhost.localdomain.pid
    mysql     11698  11408  0 01:26 pts/0    00:00:00 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --user=mysql --log-error=/var/lib/mysql/localhost.localdomain.err --pid-file=/var/lib/mysql/localhost.localdomain.pid --socket=/var/lib/mysql/mysql.sock --port=3306
    root      11818   2583  0 01:53 pts/0    00:00:00 grep --color=auto mysql

      如果在etc目录下存在 my.cnf文件默认会从这个文件中读取

       可以从 /usr/share/mysql/my-large.cnf 拷贝一个文件到/etc目录

       cp /usr/share/mysql/my-large.cnf  /etc/my.,cnf  [该文件可以修改默认的字符集等一系列参数(参数名称可以通过 登录mysql后  show variables 查看)]

      拷贝该文件后   默认mysql启动了二进制日志   log-bin=mysql-bin 将server-id=某个数字

    2.配置主从复制

     比如存在如下服务器【主从服务器都需要设置 上面红色的log-bin和server-id】

       master  192.168.117.131

       slave     192.168.117.132  [从服务器可以配置多台]

    1》 配置主服务器 

        从服务器要从主服务器同步数据 必须先给一个有权限的账号给从服务器连接

        主服务器 创建账号:

            grant replication slave on *.* to 'slave'@'192.168.117.132' identified by 'test';

        显示下主服务器日志(这里文件名称和位置需要在从服务器设置 当主服务器数据修改后file和position都有可能修改 从服务器自动读取更新

     mysql> show master status;
    +------------------+----------+--------------+------------------+
    | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
    +------------------+----------+--------------+------------------+
    | mysql-bin.000012 |      529 |              |                  |
    +------------------+----------+--------------+------------------+
    1 row in set (0.00 sec)   

    2》 配置从服务器【从服务器都需要设置 上面红色的log-bin和server-id】

       首先在从服务器上看下 是否能用主服务器创建的账号登录 因为有可能会有防火墙阻止

       mysql -uslave -ptest -h192.168.117.131  

      如果能登陆 表示可以连接主服务器  连接不上 关闭主服务器防火墙 或者 iptables --flush

      从服务器登录 

       mysql -uroot -proot

       设置主服务器信息

          change master to
    master_host='192.168.117.131',
    master_user='slave',
    master_password='test',
    master_log_file='mysql-bin.000012',
    master_log_pos=529 ;

      启动(注意 看pid是否已经设置了  show variables like 'server-id') 如果为0 修改my.ini中server-id参数

       start slave  

    测试

       在主服务器创建数据库和表 在从服务器检测 如果存在则复制成功

    3. 出现数据不同步解决方案  

    1》查看 slave的状态:

       show slave status G

    列表中两个状态非常重要

       Slave_IO_Running: Yes
      Slave_SQL_Running: No
    Yes表示正常,No表示异常
      Slave_IO线程负责把主库的bin日志(Master_Log)内容,抄写到从库的中继日志上(Relay_Log)。
      Slave_SQL线程负责把中继日志上的语句在从库上执行一遍。

    假设 Master存在一个数据库 test  从数据库没有这个数据库 开启主从复制后 在master中删除了test数据库 从数据库因为没有该数据库

    所有抛出异常    Slave_SQL_Running: No  因为一旦出现错误 表示主从不同步了 如果继续同步会导致更多错误 所以同步会自动停止 

    2》设置重新同步 

      stop slave

     重新设置主服务器信息master_log_file和master_log_pos 设置为 show master status中的记录即可

          change master to
    master_host='192.168.117.131',
    master_user='slave',
    master_password='test',
    master_log_file='mysql-bin.000012',
    master_log_pos=529 ;


       

       






  • 相关阅读:
    zookeeper 简介
    缓存雪崩 缓存穿透
    SpringCloud实战2-Ribbon客户端负载均衡
    SpringCloud实战1-Eureka
    JVM笔记9-Class类文件结构
    JVM笔记8-虚拟机性能监控与故障处理工具
    JVM笔记7-内存分配与回收策略
    SpringAOP-JDK 动态代理和 CGLIB 代理
    MySQL多数据源笔记5-ShardingJDBC实战
    MySQL多数据源笔记4-Mycat中间件实战
  • 原文地址:https://www.cnblogs.com/liaomin416100569/p/9331232.html
Copyright © 2011-2022 走看看