Mysql主从部署

1 准备

准备两台主机和安装包,具体版本如下:

名称

版本

操作系统

CentOS 7.5 64bit

mysql安装包

mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz

2 Master/Slave部署

主从服务器均需要进行本mysql安装步骤。

默认部署安装包是在/mnt路径下 

2.1 环境准备

2.1.1 解压安装包

# 解压mysql安装包
tar -zxvf mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz
# 修改解压后文件夹名称
mv mysql-5.7.30-linux-glibc2.12-x86_64 mysql

2.1.2 创建mysql用户

#创建用户组
groupadd mysql
#创建mysql账户
useradd -r -g mysql mysql

2.1.3 创建数据目录

#创建目录
mkdir -p  /mnt/mysql/data    
#赋予权限       
chown mysql:mysql -R /mnt/mysql/data   

2.1.4 配置my.cnf 

[mysqld]
bind-address=0.0.0.0
port=6606
user=mysql
basedir=/mnt/mysql
datadir=/mnt/mysql/data
socket=/tmp/mysql.sock
log-error=/mnt/mysql/data/mysql.err
pid-file=/mnt/mysql/data/mysql.pid
#character config
character_set_server=utf8
symbolic-links=0
explicit_defaults_for_timestamp=true
max_connections=1000


[client]
port=6606
socket=/tmp/mysql.sock

2.2 数据库初始化

2.2.1 初始化

#进入bin目录
cd /mnt/mysql/bin
#执行初始化命令
./mysqld --defaults-file=/etc/my.cnf --basedir=/mnt/mysql/ --datadir=/mnt/mysql/data/ --user=mysql --initialize

 2.2.2 设置开机自启动

#先将mysql.server放置到/etc/init.d/mysql中
cp /mnt/mysql/support-files/mysql.server /etc/init.d/mysql
#赋予可执行权限
chmod +x /etc/init.d/mysql
#添加为服务: 
chkconfig --add mysql
#查看服务列表
chkconfig --list

 

 看到3、4、5状态为开或者为 on 则表示成功。

  如果是 关或者 off 则执行一下:chkconfig --level 345 mysql on

2.2.3 修改密码和登录权限

#启动mysql
service mysql start
#启动成功查看密码
cat /mnt/mysql/data/mysql.err
#连接数据库
./mysql -uroot -p
#输入密码后,进入mysql命令行。修改密码为root
alter user 'root'@'localhost' identified by 'root'; 
#修改登录权限
grant all privileges on *.* to root@"%" identified by "root";
#刷新权限
flush privileges;

3 配置主从

3.1 Master

 3.1.1 修改主服务器my.cnf

 修改/etc/my.cnf,在[mysqld]模块下添加以下内容

#主从同步配置
##启用二进制日志 
log-bin=mysql-bin
##本机数据库 ID 标示,主从配置中ID要唯一
server-id=1
##日志保存时间单位天
expire_logs_days = 7 
##可以被从服务器复制的库, 二进制需要同步的数据库名
binlog-do-db=hgxt 
##不可以被从服务器复制的库
binlog-ignore-db=mysql
binlog-ignore-db=sys
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schem
### 主从复制的格式(mixed,statement,row,默认格式是statement)
binlog_format=mixed
### 如:1062错误是指一些主键重复,1032错误是因为主从数据库数据不一致
slave_skip_errors=1062
### 控制binlog的写入频率。每执行多少次事务写入一次
### 这个参数性能消耗很大,但可减小MySQL崩溃造成的损失,为0表示不控制
sync_binlog = 1
innodb_flush_log_at_trx_commit = 1
#修改完配置,重启服务
service mysql restart

3.1.2 创建同步用户

#连接mysql
./mysql -uroot -proot
#在mysql命令行输入以下指令
#创建同步用户slave
CREATE USER 'slave'@'%' IDENTIFIED BY 'slave';
#给同步账户赋权
grant replication slave on *.* to 'slave'@'%' identified by 'slave';
#刷新权限
flush privileges;

 3.2 Slave

 3.2.1 修改从服务器my.cnf

 修改/etc/my.cnf,在[mysqld]模块下添加以下内容

#主从同步配置
###本机数据库 ID 标示,主从配置中ID要唯一
server-id=2
#修改完配置,重启服务
service mysql restart

3.1.2 执行主从初始化

#连接mysql
./mysql -uroot -proot
#在mysql命令行输入指令,执行初始化
change master to master_host='10.7.9.5', master_user='slave', master_password='slave', master_port=6606;
#查看状态
show slave status\G; 

可以看到红框出现了两个 YES,则主从配置成功

4 数据库数据导入

在主库进行数据库创建,执行建表语句 。从库会自动同步该库,表结构以及数据。

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
mysql主从部署中,keepalived可以用来实现高可用。首先,需要完成主从同步的配置。然后,安装和部署keepalived。keepalived可以保证在主数据库宕机时,自动将从数据库切换为主数据库,以实现无缝的切换并保证服务的可用性。为了保证高可用性,可以使用check_mysql.sh脚本来检测mysql的状态,如果mysql无法连接,则停止keepalived服务。这样,当主数据库宕机时,keepalived会自动将从数据库提升为主数据库,并继续提供服务。这样的部署可以确保在主数据库故障时,系统能够顺利切换到从数据库,从而保证数据的连续性和可用性。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [mysql主从复制&mysql+keepalived实现高可用](https://blog.csdn.net/qq_28197005/article/details/120977992)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Mysql主从之keepalived保证高可用搭建详细教程](https://blog.csdn.net/qq_33549942/article/details/129476436)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值