IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> MYSQL5.7.23主从安装 -> 正文阅读

[系统运维]MYSQL5.7.23主从安装

目录

环境... 2

Mysql安装... 2

mysql主目录处理... 2

主目录权限处理... 3

创建配置文件及相关目录... 3

安装和初始化数据库... 4

主从配置... 6

创建数据库... 6

master机和slave机的相关配置... 7

1、修改master机器中mysql配置文件... 7

2、修改slave机中mysql配置文件... 7

(3)设置Slave复制... 9

(4)启动Slave. 9

(5)测试主从服务器是否能同步... 10

主从不同步了解决办法... 11

pt-table-checksum 和 pt-table-sync. 12

环境

??????? 主机: master操作系统:centos 6.8 64位

?????????????????? IP:192.168.0.1

?????????????????? MySQL版本:5.7.23

??????? 从机: slave操作系统:centos 6.8 64位

?????????????? ????IP:192.168.0.2

?????????????????? MySQL版本:5.7.23

Mysql安装

解压到当前目录:

tar -xzvf mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz

?

mysql主目录处理?

在tmp目录下移动文件到/usr/local/下并改名为mysql,在mysql目录下建data目录(可根据实际情况指定目录位置如/data

?

主目录权限处理

查看组和用户情况

cat /etc/group | grep mysql
cat /etc/passwd |grep mysql

创建mysql组和mysql用户

?

创建配置文件及相关目录

修改配置文件:/etc/my.cnf,配置不对的话,后面初始化不全,会拿不到默认密码。

vim /etc/my.cnf

修改内容:

[mysqld]

basedir=/usr/local/mysql

datadir=/usr/local/mysql/data

port = 3306

socket=/tmp/mysql.sock



symbolic-links=0

log-error=/var/log/mysqld.log

pid-file=/tmp/mysqld/mysqld.pid

sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'

[client]

default-character-set=utf8



[mysql]

default-character-set=utf8



[mysqld]

log-bin=mysql-bin

binlog-format=ROW

server_id=1

max_connections=1000



init_connect='SET collation_connection = utf8_unicode_ci'

init_connect='SET NAMES utf8'

character-set-server=utf8

collation-server=utf8_unicode_ci

skip-character-set-client-handshake

:wq! 保存退出。

创建文件/tmp/mysql.sock:设置用户组及用户,授权

cd /tmp

touch /tmp/mysql.sock

chown mysql:mysql /tmp/mysql.sock

chmod 755 /tmp/mysql.sock

?

?

创建文件/tmp/mysqld/mysqld.pid:

mkdir -p /tmp/mysqld

touch /tmp/mysqld/mysqld.pid

chown -R mysql:mysql /tmp/mysqld

chmod 755 /tmp/mysqld/mysqld.pid

?

?

创建文件/var/log/mysqld.log:

touch /var/log/mysqld.log

chown -R mysql:mysql /var/log

chmod 755 /var/log/mysqld.log

?

安装和初始化数据库

进入bin目录:

cd /usr/local/mysql/bin/

初始化数据库:

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

?

安全启动:

./mysqld_safe --user=mysql &

?

是否启动成功,可以通过查看mysql进程,ps -ef | grep mysql

?

默认密码在mysqld.log日志里, 找到后保存到安全的地方:

cat /var/log/mysqld.log

?

其中root@localhost: 后面的就是默认密码,后面登录用.(如果找不到可能默认是空,登录时密码直接回车,否则可能安装有问题)

进入bin目录:

cd /usr/local/mysql/bin/

登录mysql:

./mysql -u root -p

拷贝或者输入mysqld.log中获得的默认密码,即可进入mysql命令客户端。

但是,若输入相关命令,则会提示你修改用户密码(注意后面一定要加;)。

show databases;

假设密码修

mysql> set password=password("xxxxxxxxxxx");

设置远程登录权限

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

?

立即生效:

mysql> flush privileges;

退出quit 或者 exit;

mysql> quit;

至此,mysql安装流程已结束。

开机服务启动设置:

把support-files/mysql.server 拷贝为/etc/init.d/mysql:

cp -a /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
若没有,则把mysql注册为开机启动的服务,然后在进行查看

chkconfig --add mysql

chkconfig mysql on

?

主从配置

创建数据库

分别登录master机和slave机的mysql:mysql –u root –p

创建数据库:create database eraisuat;

master机和slave机的相关配置

1、修改master机器中mysql配置文件

vi /etc/my.cnf

在[mysqld]配置段添加如下字段

server-id=1

log-bin=mysql-bin

log-slave-updates=1

binlog-do-db=eraisuat? #需要同步的数据库,如果没有本行表示同步所有的数据库

binlog-ignore-db=mysql? #被忽略的数据

在master机上为slave机添加一同步帐号

?MariaDB[(none)]>grant replication slave on *.* to 'repl'@'192.168.0.2' identified by 'xxxxxxxxxxxx';

?MariaDB[(none)]>flush? privileges;

?

重启master机的mysql服务:service mysqld restart

?

用show master status 命令看日志情况

?

通过该命令获得File和Position,在slave中有用 。注:基准这里的“mysql-bin.000004”和“154”,在下面 “(3)设置Slave复制”的配置中会用到

2、修改slave机中mysql配置文件

(1)修改slave机器中mysql配置文件my.cnf,该文件在/etc目录下

同样在[mysqld]字段下添加如下内容

Server_id=2

log-bin=mysql-bin

relay-log=mysql-relay-bin

log-slave-updates=1

replicate-do-db=cmxt

replicate-do-db=cmxt_log

replicate-do-db=mysql

slave-parallel-type=LOGICAL_CLOCK??? #并行模式

slave-parallel-workers=16??????????? #并行数

master_info_repository=TABLE

relay_log_info_repository=TABLE

relay_log_recovery=ON

replicate-do-db=repl #要同步的数据库,不写本行表示同步所有数据库

然后重启slave机的mysql:service mysqld restart

(2)在slave机上验证对主机连接

mysql –h192.168.0.2 -urepl –pxxxxxxxx

MariaDB[(none)]>show grants for repl@192.168.0.2;

?

(3)设置Slave复制

CHANGE MASTER TO MASTER_HOST='192.168.0.1',

MASTER_USER='repl',

MASTER_PASSWORD='xxxxxxxxxxxxxxx',

MASTER_PORT=3306,

MASTER_LOG_FILE='mysql-bin.000004',

MASTER_LOG_POS=154,

MASTER_CONNECT_RETRY=10;

(4)启动Slave

?

?

运行SHOW SLAVE STATUS查看输出结果:

主要查看Slave_IO_Running和Slave_SQL_Running 两列是否都为YES

?

(5)测试主从服务器是否能同步

在主服务器上面新建一个表,必须在repl数据下

mysql> use repl

Database changed

mysql> create table test(id int,name char(10));

Query OK, 0 rows affected (0.00 sec)

mysql> insert into test values(1,'zaq');

Query OK, 1 row affected (0.00 sec)

mysql> insert into test values(1,'xsw');

Query OK, 1 row affected (0.00 sec)

mysql> select * from test;

+------+------+
| id??? | name |
+-------+------+
|??? 1? | zaq ?|
|??? 1? | xsw ?|
+-------+------+

2 rows in set (0.00 sec)

在从服务器查看是否同步过来

mysql> use repl;

Database changed

mysql> select * from test;

+------+------+
| id?? | name |
+------+------+
|??? 1 | zaq ?|
|??? 1 | xsw ?|
+------+------+

2 rows in set (0.00 sec)

说明已经配置成功

主从不同步了解决办法

方法一:忽略错误后,继续同步
  该方法适用于主从库数据相差不大,或者要求数据可以不完全统一的情况,数据要求不严格的情况
  解决:
    stop slave; #表示跳过一步错误,后面的数字可变
    set global sql_slave_skip_counter =1;
    start slave;
  之后再用mysql> show slave status\G 查看:
  Slave_IO_Running: Yes
  Slave_SQL_Running: Yes

方式二:重新做主从,完全同步
  该方法适用于主从库数据相差较大,或者要求数据完全统一的情况
  解决步骤如下:
    1.先进入主库,进行锁表,防止数据写入
    使用命令:
    mysql> flush tables with read lock;
    注意:该处是锁定为只读状态,语句不区分大小写
    2.进行数据备份
      #把数据备份到mysql.bak.sql文件
      mysqldump -uroot -p -hlocalhost > mysql.bak.sql
      这里注意一点:数据库备份一定要定期进行,可以用shell脚本或者python脚本,都比较方便,确保数据万无一失
    3.查看master 状态
      

mysql> show master status;
+-------------------+----------+--------------+-------------------------------+
| File              | Position | Binlog_Do_DB | Binlog_Ignore_DB              |
+-------------------+----------+--------------+-------------------------------+
| mysqld-bin.000001 | 3260     |              | mysql,test,information_schema |
+-------------------+----------+--------------+-------------------------------+



    4.把mysql备份文件传到从库机器,进行数据恢复
      #使用scp命令
      [root@server01 mysql]# scp mysql.bak.sql root@192.168.128.101:/tmp/
    5.停止从库的状态
      mysql> stop slave;
    6.然后到从库执行mysql命令,导入数据备份
      mysql> source /tmp/mysql.bak.sql
    7.设置从库同步,注意该处的同步点,就是主库show master status信息里的| File| Position两项
      change master to master_host = '192.168.128.100', master_user = 'rsync', master_port=3306, master_password='', master_log_file = 'mysqld-bin.000001', master_log_pos=3260;
    8.重新开启从同步
      mysql> start slave;
    9.查看同步状态
      mysql> show slave status\G 查看:
      Slave_IO_Running: Yes
      Slave_SQL_Running: Yes

? ? ? ? ? ?10.主库解锁

    mysql>?unlock tables;

pt-table-checksum 和 pt-table-sync

  这个两个软件也是很方便,大家可以去了解一下  

  pt-table-checksum:在主(master)上通过执行校验的查询对复制的一致性进行检查,对比主从的校验值,从而产生结果。DSN指向的是主的地址,该工具的退出状态不为零,如果发现有任何差别,或者如果出现任何警告或错误,更多信息请查看官方资料。
  pt-table-sync: 高效的同步MySQL表之间的数据,他可以做单向和双向同步的表数据。他可以同步单个表,也可以同步整个库。它不同步表结构、索引、或任何其他模式对象。所以在修复一致性之前需要保证他们表存在。

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-03-30 19:10:50  更:2022-03-30 19:12:13 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 23:59:00-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码