MYSQL主从搭建的方法教程

41次阅读
没有评论

共计 4915 个字符,预计需要花费 13 分钟才能阅读完成。

这篇文章主要介绍“MYSQL 主从搭建的方法教程”,在日常操作中,相信很多人在 MYSQL 主从搭建的方法教程问题上存在疑惑,丸趣 TV 小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”MYSQL 主从搭建的方法教程”的疑惑有所帮助!接下来,请跟着丸趣 TV 小编一起来学习吧!

一、MySQL 主从复制搭建

MySQL 主从复制搭建主要步骤有:安装 mysql 软件、Master 端配置部署、Slave 端配置部署、建立主从同步
安装操作系统环境:REDHAT6.5

以下内容都是自己在虚拟机亲测

1、安装 MYSQLa、环境准备及软件安装

安装环境:

NODE1 主机名
master  IP 地址 192.168.159.128

NODE2 主机名
slave  IP 地址 192.168.159.129

b、安装 MYSQL 主从都要进行安装

#tar zxvf mysql-5.6.38-linux-glibc2.12-x86_64.tar.gz -C /usr/local/

#
cd /usr/local/

#
mysql-5.6.38-linux-glibc2.12-x86_64
mysql

#
cd mysql

#
groupadd mysql

#
useradd -g mysql mysql

# passwd
mysql
      # cd /usr/local/

#  chown -R mysql.mysql mysql

#
./script/mysql_install_db –user=mysql
      # cd /usr/local/mysql
     # chown -R root:root ./
      # chown -R mysql:mysql data

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

#
chmod u+x /etc/rc.d/init.d/mysqld

#
chkconfig –add mysqld

#
/etc/rc.d/init.d/mysqld start

 
在这里是采用的简易安装,如果想要在生产环境使用,想自己指定需要的参数,建议还是使用源码安装

注:主从都使用 yum install 的方式安装系统自带的 mysql 也可以使用,亲测搭建成功,只是版本会比较低

2、Master 端配置部署
a、在主服务器上的 my.cnf 配置文件中的 [mysqld] 节点下添加以下配置

黄色部分为新添加

vi /etc/my.cnf

[mysqld]

server-id=101

log-bin=/var/lib/mysql/mysql-bin.log

log-bin-index=/var/lib/mysql/mysql-bin.index

expire_logs_days=30

datadir=/var/lib/mysql

socket=/var/lib/mysql/mysql.sock

user=mysql

#
Disabling symbolic-links is recommended to prevent assorted security risks

symbolic-links=0

[mysqld_safe]

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

pid-file=/var/run/mysqld/mysqld.pid

说明:

log-bin:给出二进制日志的所有文件基础名

log-bin-index:给出二进制日志文件的文件名,通常以 000001 开始,顺序递增。全名:master-bin.000001

server-id:mysql 服务器唯一 ID,在主从复制的所有服务器中必须唯一。

b、创建用户,并赋予权限:

create user repl_user;

GRANT
REPLICATION SLAVE ON *.* TO repl @ % IDENTIFIED BY PASSWORD ******

设置密码时会遇到报错:

ERROR 1372
(HY000): Password hash should be a 41-digit hexadecimal number

解决办法:用 select
password(你想输入的密码 查询出你的密码对应的字符串

select password(123456

查出的是 *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9

GRANT REPLICATION SLAVE ON *.* TO repl_user @ %
IDENTIFIED BY PASSWORD *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9

2、Slave 端配置部署 a、配置参数:[mysqld]

黄色部分为新添加

vi /etc/my.cnf

[mysqld]

server-id=102

log-bin=/var/lib/mysql/mysql-relay-bin.log

log-bin-index=/var/lib/mysql/mysql-relay-bin.index

relay_log_purge=on

datadir=/var/lib/mysql

socket=/var/lib/mysql/mysql.sock

user=mysql

# Disabling symbolic-links is
 recommended to prevent assorted security risks

symbolic-links=0

 

[mysqld_safe]

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

pid-file=/var/run/mysqld/mysqld.pid

3、建立主从同步

(重建备库使用该方法,备库和主库是正常数据同步状态)

建立主从同步可以从主库上导出数据,也可以从已有的从库上导出数据,然后再导入到新的从库中,change master to 建立同步。

、导出数据

在主库上导出数据:

mysqldump
-u***-p***-S /data/mysql6001/mysql.sock   –default-character-set=utf8
–q –single-transaction –master-data-A   /tmp/all_database.sql

(重建备库时)也可在从库上导出数据:(我这里是测试环境,所以对于我来说都是新建的数据库,所以无所谓啦)

mysqldump
-u***-p***-S /data/mysql6001/mysql.sock –default-character-set=utf8 -q
–single-transaction –dump-slave-A 
  /tmp/all_database.sql

NOTES:

–master-data 和 –dump-slave 导出的备份中,会包含 master_log_file 和 master_log_pos 信息。

–master-data 选项的作用,是将二进制的信息写入到输出文件中,在这里是写入到备份的 sql 文件中。

–dump-slave 选项的作用,是用户在 slave 端 dump 数据,建立新的 slave, 至少是第 2 个 slave, 也就是已经有 A – B, 现在从 B 上导出数据建立 A – C 的复制,这个不但可以用于建立 slave, 还可用于备份中,用于读 binlog 进行 roll forward 的起点

例子:(实际直接主库全库导出即可)

mysqldump -uroot –events –all-databases /opt/mysql.dump

3.2、从库导入数据

mysql
-u*** -p*** –default-character-set=utf8 all_database.sql

例子:

mysql -uroot mysql.dump /mysql.dump

3.3、从库与主机建立同步

以下为建立主从同步最基本的 6 个项:change master to

master_host= xxx.xxx.xxx.xxx ,  #
主库 IP

master_port=6001,  #
主库 mysqld 的端口

master_user= repl ,  #
主库中创建的有 REPLICATION SLAVE 权限的用户

master_password= xxxxxxxx ,  #
该用户的密码

master_log_file= mysql-bin.000xxx ,
 #
已在导入时指定了

master_log_pos=xxxxxx;  #已在导入时指定了

start slave;

 

例子:

master_log_file 和 master_log_pos 通过在主库上使用命令获得:

show master status \G;

在从库上执行:

change master
 to

master_host= 192.168.159.128 ,

master_port=3306,

master_user= repl_user ,

master_password= 123456 ,

master_log_file= mysql-bin.000001 ,

master_log_pos=1071;

start
 slave;

 

二、主从复制状态检查及异常处理 1、MYSQL 启动报错(1)MYSQL 启动时报错:

Another MySQL daemon already running with the same
unix socket

原因多个 Mysql 进程使用了同一个 socket。

两个方法解决:

第一个是立即关机 使用命令 shutdown -h now 关机,关机后在启动,进程就停止了。

第二个直接把 mysql.sock 文件改名即可。也可以删除,推荐改名。

然后就可以启动 mysql 了。

(2)在 REDHAT7.0 版本安装 MYSQL5.6.38 时遇到以下启动报错
service mysql start
Starting MySQL.180424 22:21:31 mysqld_safe error: log-error set to /var/log/mariadb/mariadb.log , however file don t exists. Create writable for user mysql .
 ERROR! The server quit without updating PID file (/var/lib/mysql/REDHAT70.pid).

解决方法:
mkdir -p /var/log/mariadb/
cd /var/log/mariadb/
touch mariadb.log
chmod -R 775 mariadb.log
chown -R mysql:mysql mariadb.log

2、ERROR-2013 报错

ERROR-2013 报错代码,可能造成的原因是

[ERROR] Slave I/O: error connecting to master
repl_user@192.168.159.128:3306 – retry-time: 60  retries: 86400, Error_code: 2013

iptables -F

setenforce 0

3、ERROR-1045 报错

Last_IO_Errno: 1045

Last_IO_Error: error connecting to master repl_user@192.168.159.128:3306
– retry-time: 60  retries: 86400

必须使用以下方法授权

select password(123456

GRANT REPLICATION SLAVE ON
*.* TO repl_user @ % IDENTIFIED BY PASSWORD *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 4、登陆 MYSQL 报错 ERROR-2002

登陆 MYSQL 时如果报错:

ERROR 2002 (HY000): Can t connect to local
MySQL server through socket /tmp/mysql.sock

  解决方法:

ln -s /var/lib/mysql/mysql.sock
/tmp/mysql.sock

到此,关于“MYSQL 主从搭建的方法教程”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注丸趣 TV 网站,丸趣 TV 小编会继续努力为大家带来更多实用的文章!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-20发表,共计4915字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)