centos6安装mysql5.5.53

62 篇文章 2 订阅
57 篇文章 1 订阅

一 安装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 ;


   

   






  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值