Hadoop HA安装二:MySQL双机热备

Hadoop HA安装二:MySQL双机热备

Hadoop HA安装二:MySQL双机热备

安装MySQL

安装前先安装一下MySQL的依赖 ubuntu:

1
# apt-get install libaio-dev

CentOS:

1
# yum install libaio

看了很多教程都不靠谱。。。还是官方教程最靠谱: Installing MySQL on Unix/Linux Using Generic Binaries

下载mysql-5.6.37-linux-glibc2.12-x86_64 # cp mysql-5.6.37-linux-glibc2.12-x86_64.tar.gz /usr/local/

解压到/usr/local/ # tar -zxvf mysql-5.6.37-linux-glibc2.12-x86_64.tar.gz

改名为mysql # mv mysql-5.6.37-linux-glibc2.12-x86_64 mysql

删除安装包 # rm mysql-5.6.37-linux-glibc2.12-x86_64.tar.gz

修改环境变量 # vi /etc/profile 在最下面添加

1
2
export MYSQL_HOME=/usr/local/mysql
export PATH=$MYSQL_HOME/bin:$PATH

新建用户和用户组:mysql # groupadd mysql # useradd -r -g mysql -s /bin/false mysql

# cd /usr/local/mysql

修改目录的拥有者 # chown -R mysql .(重要!) # chgrp -R mysql .(重要!)

安装MySQL # scripts/mysql_install_db --user=mysql

修改当前目录拥有者为root用户 # chown -R root .

修改当前data目录拥有者为mysql用户 # chown -R mysql data

启动MySQL进程 # bin/mysqld_safe --user=mysql &

此时这个窗口会卡住,新建一个terminal,进入/usr/local/mysql中

进入mysql控制台 # bin/mysql

退出 exit;

进行MySQL的root用户密码的修改等操作 # ./bin/mysql_secure_installation 首先要求输入root密码,由于我们没有设置过root密码,括号里面说了,如果没有root密码就直接按回车。是否设定root密码,选y,设定密码为cluster,是否移除匿名用户:y。然后有个是否关闭root账户的远程登录,选n,删除test这个数据库?y,更新权限?y,然后ok。

# cp support-files/mysql.server /etc/init.d/mysql.server

查看MySQL的进程号 # ps -ef | grep mysql

如果有的话就kill掉,保证MySQL已经中断运行了,一般kill掉/usr/local/mysql/bin/mysqld开头的即可 # kill 进程号

启动MySQL # /etc/init.d/mysql.server start -user=mysql # exit

还需要配置一下访问权限:

1
2
3
$ mysql -u root -p
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'cluster' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;

这样就可以使用root用户在任意地点登陆,而不再限于localhost了 关于服务的三个命令。 启动mysql:# /etc/init.d/mysql.server start -user=mysql 停止mysql:# mysqladmin -u root -p shutdown

修改MySQL的数据存储位置

在装系统进行分区的时候,有些时候会创建比较大的分区开存数据,我们可以将MySQL的数据存放到这个区内,假设这个区为/file0

$ su root

把MySQL服务进程停掉: # mysqladmin -u root -p shutdown

新建新的dataDir # mkdir /file0/mysql_data

把/usr/local/mysql/data里面的东西移到/file0/mysql_data下 # cp /usr/local/mysql/data/* /file0/mysql_data

编辑MySQL的配置文件/etc/my.cnf 如果没有的话,就把/usr/local/mysql里面的my.cnf复制过去 # cp /usr/local/mysql/my.cnf /etc/ # vi /etc/my.cnf

把里面的basedir, datadir, port修改成下面的内容

1
2
3
basedir=/usr/local/mysql
datadir=/file0/mysql_data
port=3306

修改MySQL启动脚本/etc/init.d/mysql.server # vi /etc/init.d/mysql.server 把里面的basedir和datadir作如上修改

修改新目录的权限: # chown –R mysql /file0/mysql_data # chgrp –R mysql /file0/mysql_data 退出root用户 重新启动MySQL服务 $ /etc/init.d/mysql.server start –user=mysql

进入mysql $ mysql –u root -p

查看目录是否已经更改 mysql> show variables like “datadir”;

高可用的MySQL双机热备安装教程

开启二进制日志,设置id # vi /etc/my.cnf

1
2
3
4
5
6
7
[mysqld]
server-id = 1                                 #backup这台设置2
log-bin = mysql-bin
binlog-ignore-db = mysql,information_schema   #忽略写入binlog日志的库
auto-increment-increment = 2                  #字段变化增量值
auto-increment-offset = 1                     #初始字段ID为1
slave-skip-errors = all                       #忽略所有复制产生的错误    

重启MySQL服务 # mysqladmin -u root -p shutdown # /etc/init.d/mysql.server start –user=mysql

先查看下log bin日志和pos值位置 里面有个File和Position,分别是log_file和log_pos的值,一会儿要填 mysql> show master status;

master配置如下:

1
2
3
4
5
6
7
8
9
mysql> GRANT REPLICATION SLAVE ON *.* TO 'replication'@'192.168.1.%' IDENTIFIED  BY 'replication';
mysql> flush privileges;
mysql> change master to
    ->  master_host='192.168.1.212',            # 此处输入slave的ip地址
    ->  master_user='replication',
    ->  master_password='replication',
    ->  master_log_file='mysql-bin.000001',
    ->  master_log_pos=120;                    #对端状态显示的值
mysql> start slave;                            #启动同步

backup配置如下:

1
2
3
4
5
6
7
8
9
mysql> GRANT REPLICATION SLAVE ON *.* TO 'replication'@'192.168.1.%' IDENTIFIED BY 'replication';
mysql> flush privileges;
mysql> change master to
    ->  master_host='192.168.1.211',        # 此处输入master的ip地址
    ->  master_user='replication',
    ->  master_password='replication',
    ->  master_log_file='mysql-bin.000001',
    ->  master_log_pos=120;
mysql> start slave;

MySQL双击热备安装完成

测试

在一台机器上建立一个数据库,创建一个表,在另一台机器上查询是有结果的,说明安装成功。

Licensed under Apache License 2.0
最后更新于 Aug 21, 2017 16:13 UTC
使用 Hugo 构建
主题 StackJimmy 设计