centos7/redhat7部署mysql一主二从

1、下载mysql(当前最新版本为5.7.38):

https://downloads.mysql.com/archives/community/

2、创建mysql安装目录:mkdir -p /data/app/
     将mysql安装包移动到/data/app

3、解压mysql安装包,并将解压后的名称改为mysql。

4、创建用户组、用户、文件夹、赋权
groupadd mysql                      #创建用户组
useradd -r -g mysql mysql       #创建用户 -r:建立系统账号 -g:指定用户组
cd /data/app/mysql                 #切换到安装目录
mkdir data                               #创建数据存放目录
mkdir mysql-log                       #创建日志存放目录
mkdir mysql-log/err-log
mkdir mysql-log/slow-log
mkdir mysql-log/bin-log          #主机需要此目录
chown -R root:mysql  .            #将当前目录以及字母里,所有者改变为 mysql,所属组修改为 mysql
chown -R mysql:mysql data
chown -R mysql:mysql mysql-log

5、配置 /etc/my.cnf。
5.1、主机配置文件:vi /etc/my.cnf
[mysqld]
port = 3306                             #端口
basedir = /data/app/mysql               #mysql安装路径
datadir = /data/app/mysql/data/         #mysql数据存放路径
    
#日志设置
log-error = /data/app/mysql/mysql-log/err-log/db-err.log   #错误日志路径
slow-query-log-file = /data/app/mysql/mysql-log/slow-log/db-slow.log  #慢SQL日志路径
long-query-time = 3 #怎样才算是慢sql,单位是秒

#开启 binlog 同步
server_id = 0001                  #一个集群内的 MySQL 服务器 ID,全局唯一
log-bin = /data/app/mysql/mysql-log/bin-log/db-binlog      #开启 Binlog 并写明存放日志的位置
max-binlog-cache_size = 64M       #binlog 最大能够使用cache的内存大小
max-binlog-size = 1G              #binlog 日志每达到设定大小后,会使用新的 binlog 日志
expire_logs_days = 15             #只保留最近15天的日志
binlog-format = mixed             #混合模式复制
innodb_flush_log_at_trx_commit = 2 #和 sync_binlog 控制MySQL磁盘写入策略以及数据安全性
sync-binlog = 500                  #控制数据库的binlog刷到磁盘上去

#性能调优配置
innodb_buffer_pool_size = 24576M   
max_connections = 5000
max_connect_errors = 6000
external-locking = FALSE
max_allowed_packet = 64M
join_buffer_size = 64M
sort_buffer_size = 2M
read_rnd_buffer_size = 16M 

#SQL模式
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

5.2、从机配置文件:vi /etc/my.cnf
[mysqld]
basedir = /data/app/mysql
datadir = /data/app/mysql/data
port = 3306
server_id = 0002 #这里需要在集群中保持唯一
    
#日志设置
expire_logs_days = 15
long-query-time = 3
slow-query-log-file=/data/app/mysql/mysql-log/slow-log/db-slow.log
log-error=/data/app/mysql/mysql-log/err-log/db-err.log
    
#主从设置
#replicate-do-db=db_test     #需要从主库同步的数据库1,注释后表示同步所有库
#replicate-do-db=db_dev     #需要从主库同步的数据库2,注释后表示同步所有库
#read_only=1                     #只读设置
    
#性能调优设置
innodb_buffer_pool_size = 24576M
max_connections = 5000
max_connect_errors = 6000
external-locking = FALSE
max_allowed_packet = 64M
join_buffer_size = 64M
sort_buffer_size = 2M
read_rnd_buffer_size = 16M 
    
#SQL模式
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

6、设置链接和服务
cp /data/app/mysql/support-files/mysql.server  /etc/init.d/mysql  # 可以使用service mysql start
ln -s  /data/app/mysql/bin/mysql  /usr/bin                                   #任何路径可以使用 mysql 命令

7、数据库初始化
7.1、初始化数据库
cd /data/app/mysql/bin/
./mysqld --defaults-file=/etc/my.cnf  --user=mysql --initialize  #初始化
7.2、查看密码(初始化数据库之后会生成一个 root 账户的默认密码)
cat /data/app/mysql/mysql-log/err-log/db-err.log
7.3、启动mysql
service mysql start
7.4、登录并修改 root 密码
mysql -u root -p    #输入密码

set password=password("Mysql@123");

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'Mysql@123' WITH GRANT OPTION;

ALTER USER 'root'@'%' IDENTIFIED BY 'Mysql@123';

FLUSH PRIVILEGES;

8、创建用户并赋权
8.1、主机:
create user 'copy'@'%' identified by 'Copy@123';    # 5.7要求密码必须含有大小写英文,符号和数字
grant FILe on *.* to 'copy'@'从库IP' identified by 'Copy@123';    #赋予FILE权限,允许从从库ip访问主库
grant replication slave on *.* to 'copy'@'从库IP' identified by 'Copy@123';    #赋予主从同步权限
重启MySQL,使my.cnf 配置生效;查看主库状态:
service mysqld restart   #重启MySQL
mysql -u root -p
show master status;   #查看主库的状态  file,position 这两个值很有用,记一下;需要放到slave配置中
8.2、从机:
登录进mysql
stop slave;    #关闭从库
change master to master_host='主机IP', master_user='copy' ,master_password='Copy@123', master_log_file='db-binlog.000003' ,master_log_pos=154;    #配置主库信息
start slave;    #开启从库 
show slave status \G;    #Slave_IO_Running,Slave_SQL_Running 都为Yes的时候表示配置成功

9、配置第二个从机时,注意在主机中添加第二台从机的权限:
grant FILe on *.* to 'copy'@'从库IP' identified by 'Copy@123';    #赋予FILE权限,允许从从库ip访问主库
grant replication slave on *.* to 'copy'@'从库IP' identified by 'Copy@123';    #赋予主从同步权限

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

运维无止境

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值