centos7单机上搭建mysql5.7一主多从模式
作者:互联网
centos7单机上搭建mysql5.7一主多从模式
参考地址
‘./mysql-bin.index’ not found (Errcode: 13) 的解决方法
mysql报错:–initialize specified but the data directory has files in it. Aborting.
基础环境
centos7 x64
mysql 5.7.20(压缩版)
安装
下载
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz
添加用户组mysql
groupadd mysql
添加用户mysql且该用户不能登陆
useradd -g mysql mysql -s /bin/false
新建一个文件夹,待下载完成后解压到里面,并复制两份,做一主两从用,新建data目录,conf目录,logs目录,sock目录(建立这四个目录非强制要求,这里仅仅是为了区分各文件,便于管理)
mkdir data conf logs sock
目录结构如下
/opt/
└── mysql
├── conf
├── data
├── logs
├── mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz
├── mysql_master
├── mysql_salve01
├── mysql_salve02
└── sock
进入data目录,新建3306,3307,3308 文件夹如图
[root@localhost mysql]# cd data
[root@localhost data]# mkdir 3306 3307 3308
[root@localhost data]# tree
.
├── 3306
├── 3307
└── 3308
进入conf目录,新建3306.cnf,3307.cnf,3308.cnf,如图
[root@localhost mysql]# cd conf
[root@localhost conf]# touch 3306.cnf 3307.cnf 3308.cnf
[root@localhost conf]# tree
.
├── 3306.cnf
├── 3307.cnf
└── 3308.cnf
进入logs目录,新建3306_err.log,3307_err.log,3308_err.log,如图:
(这一步可以跳过,这一步是为新的启动方式mysqld_safe做的异常日志输出,如果用老的mysqld启动,则可以不用配置)
[root@localhost conf]# cd ../logs/
[root@localhost logs]# touch 3306_err.log 3307_err.log 3308_err.log
[root@localhost logs]# tree
.
├── 3306_err.log
├── 3307_err.log
└── 3308_err.log
现在开始搞配置文件,这里我们拟定3306为主库(master),3307,3308为从库(slave)
首先配置master,即conf目录下的3306.cnf,如图(这里只配置了mysqld组和mysqld_safe,没有配置client)
[mysqld]
user=mysql
character-set-server=utf8
port=3306
socket=/opt/mysql/sock/3306.sock
basedir=/opt/mysql/mysql_master
datadir=/opt/mysql/data/3306
server-id=1
log-bin=master-bin
log-bin-index=master-bin.index
binlog_format=ROW
binlog-ignore-db=mysql
binlog-ignore-db=sys
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema
[mysqld_safe]
log-error=/opt/mysql/logs/3306_err.log
配置说明
[mysqld]
user=mysql #mysql启动用户
character-set-server=utf8 #服务字符集
port=3306 #端口
socket=/opt/mysql/sock/3306.sock #用于通讯的套接字,由于是一台机多实例,所以区分开
basedir=/opt/mysql/mysql_master #mysql安装目录
datadir=/opt/mysql/data/3306 #数据存放目录
server-id=1 #本机唯一标识
log-bin=master-bin #bin-log前缀
log-bin-index=master-bin.index #bin-log-index前缀
binlog_format=ROW #binlog格式 (STATEMENT,ROW,FIXED),这里主要为了后续要测试canal,所以用到了ROW,具体格式区别,自行搜索
binlog-ignore-db=mysql #不需要同步给从库的库
binlog-ignore-db=sys #不需要同步给从库的库
binlog-ignore-db=information_schema #不需要同步给从库的库
binlog-ignore-db=performance_schema #不需要同步给从库的库
[mysqld_safe]
log-error=/opt/mysql/logs/3306_err.log #启动错误日志输出地址
配置完成后,进入mysql安装目录(basedir指向路径)初始化实例
执行命令:
chgrp -R mysql /opt/mysql/ && chown -R mysql /opt/mysql/
./bin/mysqld --defaults-file=/opt/mysql/conf/3306.cnf --initialize-insecure
其中-insecure作用是不设置密码,如果不带则mysql会随机生成一个密码出现在控制台,需要记下来
初始化不报错则启动mysql服务,运行mysqld或mysqld_safe命令启动mysql:
./bin/mysqld --defaults-file=/opt/mysql/conf/3306.cnf
启动不报错后为mysql root用户设置一个密码:
./bin/mysqladmin -u root password "123456" --socket=/opt/mysql/sock/3306.sock(注意后面的 --socket参数必须带上,与配置文件中的socket配置值一致)
登陆mysql控制台(由于配置文件中没有配置client组,所以登陆命令同样需要添加–socket参数):
./bin/mysql -uroot -p123456 --socket=/opt/mysql/sock/3306.sock
登陆后查看master状态,如图:
mysql> show master status;
+-------------------+----------+--------------+-------------------------------------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+-------------------+----------+--------------+-------------------------------------------------+-------------------+
| master-bin.000002 | 414 | | mysql,sys,information_schema,performance_schema | |
+-------------------+----------+--------------+-------------------------------------------------+-------------------+
1 row in set (0.00 sec)
关闭服务
./bin/mysqladmin -uroot -p123456 shutdown --socket=/opt/mysql/sock/3306.sock
需要开通 ip 访问就可以
标签:bin,opt,log,一主多,mysql5.7,sock,centos7,mysql,3306 来源: https://blog.csdn.net/zk673820543/article/details/86649281