MYSQL双机热备

安装MYSQL

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

下载mysql5.6.37-linux-glibc2.12-x86_64,解压到/usr/local/,改名为mysql
新建用户和用户组:mysql
sudo groupadd mysql
sudo useradd -r -g mysql -s /bin/false mysql
cd /usr/local/mysql
(重要!)sudo chown -R mysql .
(重要!)sudo chgrp -R mysql .
sudo scripts/mysql_install_db --user=mysql
执行 scripts/mysql_install_db 时出错。
./bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
需要执行sudo apt-get install libaio-dev,然后再执行安装脚本

修改当前目录拥有者为root用户:执行命令
sudo chown -R root .
修改当前data目录拥有者为mysql用户:执行命令
sudo chown -R mysql data
sudo bin/mysqld_safe --user=mysql &
此时这个窗口会卡住,新建一个terminal,进入/usr/local/mysql中
启动bin/mysql可以进入mysql控制台,输入exit;退出
执行sudo ./bin/mysql_secure_installation进行root账户密码的修改等操作。
然后按ctrl+C关掉那个卡住的进程

配置环境变量
sudo nano /etc/profile

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

设置开机自启:
参考:ubuntu linux下mysql开机自启动

sudo cp support-files/mysql.server /etc/init.d/mysql.server
sudo chmod +x /etc/init.d/mysql.server
sudo cp my.cnf /etc
sudo nano /etc/my.cnf

basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306

使用/etc/init.d/mysql.server start –user=mysql启动服务
启动失败的话重启一下,开机后使用mysql –u root –p登陆会出现can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’(2)的错误,这是因为服务还未启动。
使用/etc/init.d/mysql.server start –user=mysql启动服务,此时会成功。
设为开机自启sudo update-rc.d -f mysql.server defaults
还需要配置一下访问权限:

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'hadoop-sna' WITH GRANT OPTION; 
mysql> FLUSH PRIVILEGES;

这样就可以使用root用户在任意地点登陆,而不再限于localhost了
关于服务的三个命令。
启动mysql:service mysql.server start
停止mysql:service mysql.server stop
查看mysql运行状态:service mysql.server status

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

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

[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服务
service mysqld restart
先查看下log bin日志和pos值位置
里面有个File和Position,分别是log_file和log_pos的值,一会儿要填
mysql> show master status;
master配置如下:

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

backup配置如下:

mysql> GRANT REPLICATION SLAVE ON *.* TO 'replication'@'10.0.2.%' IDENTIFIED BY 'replication';
mysql> flush privileges;
mysql> change master to
    ->  master_host='10.0.2.4',        # 此处输入master的ip地址
    ->  master_user='replication',
    ->  master_password='replication',
    ->  master_log_file='mysql-bin.000001',
    ->  master_log_pos=120;
mysql> start slave;

MYSQL双击热备安装完成

测试

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

你可能感兴趣的:(MYSQL双机热备)