mysql-5.7.35 主从部署

一,单机安装

0,数据备份导出

dump /dʌmp/ ,转储

mysqldump -h 10.10.20.160 -uroot -ppassword@123 data_qa > /home/data/data_qa.sql

1,关闭mysql服务,删除mysql相关文件(谨慎操作

# 查找

find / -name mysql

rm -rf /<对应路径>

如以下目录:

2,选择安装目录,解压

tar -zxvf mysql-5.7.35-linux-glibc2.12-x86_64.tar.gz

mv mysql-5.7.35-linux-glibc2.12-x86_64.tar.gz mysql-5.7.35

mkdir data
mkdir log

3,创建mysql用户和用户组

groupadd mysql
useradd -g mysql mysql

4,修改my.cnf文件

[mysql] 
# 设置mysql客户端默认字符集 
default-character-set=utf8 
socket=/var/lib/mysql/mysql.sock
 
[mysqld] 
skip-name-resolve 
#设置3306端⼝ 
port = 3306 
socket=/var/lib/mysql/mysql.sock 
# 设置mysql的安装⽬录 
basedir=/home/mysql/mysql-5.7.35 
# 设置mysql数据库的数据的存放⽬录 
datadir=/home/mysql/data 
# 允许最⼤连接数 
max_connections=10000 
# 服务端使⽤的字符集默认为8⽐特编码的latin1字符集 
character-set-server=utf8 
# 创建新表时将使⽤的默认存储引擎 
default-storage-engine=INNODB	
lower_case_table_names=1 
max_allowed_packet=16M
sql-mode=STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
log-bin-trust-function-creators=1

5,创建如下目录,并修改权限

mkdir /var/lib/mysql 
chmod 777 /var/lib/mysql

6,在mysql解压包目录bin下,初始化数据库,获取初始密码

./mysqld --initialize --user=mysql --basedir=/home/mysql/mysql-5.7.35 --datadir=/home/mysql/data

7,复制启动脚本到资源目录

cp ./support-files/mysql.server /etc/init.d/mysqld

并修改 /etc/init.d/mysqld ,修改其 basedir 和 datadir 为实际对应⽬录:

basedir=/home/mysql/mysql-5.7.35 
datadir=/home/mysql/data

8,启动mysql

service mysqld start

9,加入系统环境变量

vi /etc/profile

# 添加
export PATH=$PATH:/home/mysql/mysql-5.7.35/bin

source /etc/profile

10,首次登录

mysql -u root -p

11,更改密码

alter user user() identified by "password@123"; 
flush privileges;

12,设置远程主机登录

use mysql; 
update user set user.Host='%' where user.User='root'; 
flush privileges;

二,主从配置

假设你已经按上面步骤部署好了两台mysql单机版

1,mysql主节点my.cnf配置修改

# 在[mysqld]加入下面的内容:

# 服务的唯一编号
server-id = 1
# 开启mysql binlog功能
log-bin = mysql-bin
# binlog记录内容的方式,记录被操作的每一行
binlog_format = ROW
# 减少记录日志的内容,只记录受影响的列
binlog_row_image = minimal

修改完后重启mysql服务,service mysqld restart

2,登录mysql主节点授权

grant replication slave on *.* to 'root'@'192.168.197.136' identified by 'password@123';
flush privileges;

3,查看主节点状态

show master status\G



*************************** 1. row ***************************
             File: mysql-bin.000001
         Position: 592
     Binlog_Do_DB: 
 Binlog_Ignore_DB: 
Executed_Gtid_Set: 

4,mysql从节点my.cnf配置修改

# 在[mysqld]加入下面的内容:

# 服务的唯一编号
server-id = 2
# 开启mysql binlog功能
log-bin = mysql-bin
# binlog记录内容的方式,记录被操作的每一行
binlog_format = ROW
# 减少记录日志的内容,只记录受影响的列
binlog_row_image = minimal

修改完后重启mysql服务,service mysqld restart

5,mysql从节点登录,同步主节点信息

# 设置主服务器ip,同步账号密码,同步位置
Change master to master_host='192.168.45.67',master_user='root',master_password='password@123',master_log_file='mysql-bin.000001',master_log_pos=592,master_port=3306;
# 开启同步功能
start slave;

6,查看从节点状态

show slave status\G

 注意:Slave_IO_Running和Slave_SQL_Running的状态都为Yes时,说明从库配置成功。

7,测试主从功能

create database testdata;

三、常用知识点整理

1,mysql 与 mysqld

mysql -- mysql is a command-line client for executing SQL statements interactively or in batch mode. 
mysqld -- mysqld is the MySQL server.

就是说:

mysql是一个命令行程序

mysqld是一个服务

Linux系统里一般服务都是以的结尾的,比如httpd,mysqld等

所以在开启服务时也要用服务的名字,这样:

systemctl start mysqld.service

service stop mysqld

d的全拼是daemon /ˈdiːmən/,也就是守护程序的意思,常驻与后台

参考:mysql和mysqld的区别 - 搬砖在路上 - 博客园

2,service 与 systemctl

 daemon命令systemctl命令说明
service [服务] startsystemctl start [unit type]启动服务
service [服务] stopsystemctl stop [unit type]停止服务
service [服务] restartsystemctl restart [unit type]重启服务

参考:service与systemctl命令比较 - Alick陈彬 - 博客园

3,mysql 用户组

 编译不需要,但是安装需要。

之所以安装的脚本不自动给你创建好用户跟用户组,是因为每个 Linux 发行版创建用户的方法都不同(其实只是略有不同,但完全兼容很困难)

如果你使用发行版自带的 mysql,那么发行版的安装包已经把这些工作做了,所以直接使用发行版自带的 mysql 会自动帮你创建相关用户跟用户组

如果你自行编译 mysql,从 mysql 源代码开发者的角度不可能主动去做所有发行版的适配,所以只能让你自己去创建用户跟用户组

参考:linux下安装Mysql必须要新建叫mysql的用户组和用户吗_百度知道

4,mysql 各种路径

# 1,解压包路径/安装路径

# 2,启动/停止命令

service mysqld start
service mysqld stop

# 3,日志默认路径

# 错误日志
/var/log/mysqld.log

# socket
/var/lib/mysql/mysql.sock

# pid
/var/run/mysqld/mysqld.pid

# 4,配置文件路径

vi /etc/my.cnf

# 5,数据文件路径

指定的datadir

参考:

如何查看“MySQL”错误日志?-牛奇网如何查看“MySQL”错误日志? 在网站运维的过程中,偶尔会遇到MySQL速度变慢,崩溃或者其他不能确定的问题,我们可以通过分析MySQL的错误日志,来确定究竟是什么引起了MySQL的运行错误。在Ubuntu服务器系统上,MySQL的默认位是/var/log/mysql/error.log。在许多情况下,我们可以通过less程序来读取错误日志,该程序是一个命令行实用程序,它可以让我们查看日志但不能...https://www.niuqi360.com/lamp-config/get-error-log-of-mariadb/

mysql日志文件在哪 如何修改MySQL日志文件位置 - 阳光总在风雨后001 - 博客园MySQL日志文件相信大家都有很多的了解,MySQL日志文件一般在:/var/log/mysqld.log,下面就教您修改MySQL日志文件位置的方法,供您参考。 今天需要改MySQL日志文件的位置,https://www.cnblogs.com/yjhrem/articles/3559798.html

mysql查看binlog日志 - 沧海一滴 - 博客园业内目前推荐使用的是row模式,准确性高,虽然说文件大,但是现在有SSD和万兆光纤网络,这些磁盘IO和网络IO都是可以接受的。 那么,大家一定想问,为什么不推荐使用mixed模式,理由如下假设masthttps://www.cnblogs.com/softidea/p/12624778.html

四、参考链接

https://www.jb51.net/article/129294.htmhttps://www.jb51.net/article/129294.htm

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值