centos7配置mysql5.7主主集群

一、centos7安装mysql5.7

1目录规划

安装文件下载目录:/data/software Mysql目录安装位置:/usr/local/mysql 数据库保存位置:/data/mysql 日志保存位置:/data/log/mysql

2下载mysql 在官网:http://dev.mysql.com/downloads/mysql/ 中,选择以下版本的mysql下载:

执行如下命令:

mkdir -p /data/software

cd /data/software

--建议:在windows上使用迅雷下载,上传到 /data/software目录下;

直接linux下载命令:

wget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz

3解压压缩包到目标位置

tar -xzvf /data/software/mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz

mv /data/software/mysql-5.7.17-linux-glibc2.5-x86_64 /usr/local/mysql

4创建数据仓库目录

mkdir -p /data/mysql

ls /data/

5新建mysql用户、组及目录

groupadd mysql ---新建一个msyql组

useradd -r -s /sbin/nologin -g mysql mysql -d /usr/local/mysql ---新建msyql用户禁止登录shell

6改变目录属有者

cd /usr/local/mysql

pwd

chown -R mysql .

chgrp -R mysql .

chown -R mysql /data/mysql

7配置参数

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

此处需要注意记录生成的临时密码,yJsxro%lo90y

bin/mysql_ssl_rsa_setup --datadir=/data/mysql

8修改系统配置文件

cd /usr/local/mysql/support-files

cp -rf my-default.cnf /etc/my.cnf

cp -rf mysql.server /etc/init.d/mysql

vim /etc/init.d/mysql

basedir=/usr/local/mysql

datadir=/data/mysql

9启动mysql

ln -s /usr/local/mysql/bin/mysql /usr/bin

/etc/init.d/mysql start

mysql -hlocalhost -uroot -p

  --如果出现:-bash: mysql: command not found

  --就执行: # ln -s /usr/local/mysql/bin/mysql /usr/bin --没有出现就不用执行

--输入第6步生成的临时密码

--修改密码

mysql> set password=password('GZml136');

--设置root账户的host地址(修改了才可以远程连接)

-------------------------------------------------------------------------------------------------------------------------

注意:不知道什么原因 只要设置了密码带 'GZml136!#^这种带特殊符号的登录就会报错这种

image

直接在命令写密码也不行的

mysql -uroot -pGZml136!#^

------------------------------------------------------------------------------------------------------------------------

mysql> grant all privileges on *.* to 'root'@'%' identified by 'GZml136';

mysql>flush privileges;

mysql> use mysql;

mysql> select host,user from user;

exit

测试使用新密码登录

mysql -hlocalhost -uroot -pGZml136

exit

10添加系统路径

vim /etc/profile

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

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

source /etc/profile

11配置mysql自动启动

chmod 755 /etc/init.d/mysql

chkconfig --add mysql

chkconfig --level 345 mysql on

本地Navicat连不上Linux虚拟机MySQL数据库问题

systemctl restart msyql

到这里mysql安装完毕--------------------------------如果要安装mysql主主等集群每台安装都相同


扩展:

注意:如果本地Navicat连不上Linux虚拟机MySQL数据库问题

1、有没有赋予ip权限

mysql -hlocalhost -uroot -pGZml136

mysql> grant all privileges on . to root@"%" identified by "GZml136";

这表示是给本地ip赋予了所有的权限,包括远程访问权限,%百分号表示允许任ip访问数据库。

mysql> flush privileges;

重新加载,,退出

mysql>exit

然后,重启数据库

systemctl restart mysql



二、开始配置mysql主主集群

master : 192.168.1.50

backup: 192.168.1.31

1.配置集群master

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

server-id = 1                    #backup这台设置2 这个选项有的注意1和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                      #忽略所有复制产生的错误

如图:

image

systemctl restart mysql

mysql –uroot –pGZml136

Mysql>show master status;      会看到以下图,记住框出来的部分

image

mysql-bin.000001   154 这些不固定,现在要去到backup那台机上,因为master这台机下面的操作要用到对面的上面那图框出来的部分,当然backup那台机也会用到master机的这个图的log bin日志pos值位置 (mysql-bin.000001   154),总之都用这个指向对方

Mysql>grant all privileges on *.* to root@"*" identified by 'GZml136!#^';     #赋予所有网段远程登录权限

Mysql>flush privileges;       #刷新权限


2.backup详细配置:

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

[mysqld]
server-id = 2                   #master这台设置1
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                      #忽略所有复制产生的错误

systemctl restart mysql

mysql –uroot –pGZml136

Mysql>show master status;  #获取log bin日志pos值位置,master这台机要根据这个来指向backup来获取信息

获取的结果是:

mysql-bin.000001   154

mysql> change  master to
     -> master_host='192.168.1.50',
     -> master_user='root',
     -> master_password='GZml136',
     -> master_log_file='mysql-bin.000001',
     -> master_log_pos=154;

mysql> start  slave;

GZml136!#^

3.master详细配置继续:

mysql> change  master to
     -> master_host='192.168.1.31',
     -> master_user='root',
     -> master_password='GZml136',
     -> master_log_file='mysql-bin.000001',
     -> master_log_pos=154;

mysql> start  slave;        #启动同步

mysql> exit

最后:在master backup两台机分别看状态

Mysql>show slave status\G          #两台机都执行去看

#主主同步配置完毕,查看同步状态Slave_IO和Slave_SQL是YES说明主主同步成功

image




4.数据库同步测试:

在master(192.168.1.50)创建个 data_linkapp 数据库

   mysql>create database data_linkapp;

去到backup(192.168.1.31)这台机看,master新建的data_linkapp 数据库会同步到backup(192.168.1.31)这台机

mysql> show databases;

image

原文地址:https://www.cnblogs.com/pengrj/p/15720536.html