mysql主从环境搭建

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: <p></p> <p> </p> <p> </p> <p> </p> <p>Mysql主从环境:</p> <p>主服务器IP:192.168.199.12     主机名 master</p> <p>从服务器IP:192.168.199.10   主机名 slave</p> <p>系统为:centos 6.5  64位</p> <p>Mysql 5.1.73 64位</p>

 

 

 

Mysql主从环境:

主服务器IP:192.168.199.12     主机名 master

从服务器IP:192.168.199.10   主机名 slave

系统为:centos 6.5  64位

Mysql 5.1.73 64位

 

 

sestatus检查

1、关闭防火墙

2、关闭selinux

 

1.创建安装目录与数据存放目录

 

mkdir /opt/mysql

mkdir /opt/mysql/data

2.创建mysql用户与组

 

 useradd mysql

id mysql 

uid=500(mysql) gid=500(mysql) 组=500(mysql)

3.授权安装目录与数据目录

 

# chown -R mysql.mysql /opt/mysql/ 

# chown -R mysql.mysql /opt/mysql/data

4.安装mysql 依赖包

yum install -y autoconf* automake* zlib* libxml* ncurses-devel* libgcrypt* libtool* openssl*  make cmake gcc gcc-c++ ncurses ncurses-devel

 

 

下载mysql数据库

$ wget http://cdn.mysql.com/Downloads/MySQL-5.1/mysql-5.1.73.tar.gz

tar -vzxf mysql-5.1.73.tar.gz

 

进入mysql安装路径

/opt/mysql

cd mysql-5.1.73

./configure --prefix=/opt/mysql/ --with-charset=utf8 --with-extra-charsets=gbk,utf8,ascii,big5,latin1,binary --with-unix-socket-path=/opt/mysql/tmp/mysql.sock --with-mysqld-user=mysql 

 

make && make install

 

初始化数据库

 

修改配置文件和启停脚本

cd /opt/mysql

 

 

mkdir etc log tmp var

使他们具有mysql的权限。

chown -R mysql.mysql etc log tmp var

 

cp share/mysql/my-medium.cnf  etc/my.cnf

cp share/mysql/mysql.server  bin/

 

vim etc/my.cnf

 

在【mysqld】下添加配置项

 

basedir = /opt/mysql

datadir = /opt/mysql/var

tmpdir = /opt/mysql/tmp

slave-load-tmpdir = /opt/mysql/tmp

pid-file = /opt/mysql/var/mysql.pid

#skip-name-resolve

#skip-symbolic-links

max_connect_errors = 10000

max_connections = 500

wait-timeout = 30

 

启动数据库

root用户

./bin/mysql_install_db --user=mysql  #安装数据库文件

 ./bin/mysql.server start    #出现下面这行说数据库启动ok了

root用户启动

# /opt/mysql/bin/mysql.server start

starting MySQL.    

 

上午刚装完MySQL,启动时报如下错误:

starting MySQL.Manager of pid-file quit without updating file.[FAILED]

解决:

/opt/mysql/bin/mysql_install_db --user=mysql

配置mysql用户

 

 

使用./bin目录下的mysql命令可以登录到数据库,登录后删除匿名用户并且为root设置密码:

$ mysql -u root

> delete from mysql.user where user='';

> UPDATE mysql.user SET Password = PASSWORD('password') WHERE user='root';

按照以上同样的步骤再搭建一个mysql,注意,如果在同一主机搭建多个mysql实例,那么就需要将端口改成不同才行。

查看一下mysql版本

show variables like '%version_%';

mysql> show variables like '%dir%';

 

首先在主库新建专门用于同步的数据库账号sync

GRANT REPLICATION SLAVE ON *.* TO 'sync'@'%' IDENTIFIED BY 'jsb';

 

 

主库配置

所有的配置项还是在my.cnf中的[mysqld]下添加。

首先server-id作为MySQL服务器的标识,具有相关联上下游同步系统需具有全局唯一性。主库我们将server-id配置为1。其他主库需要添加的配置有:

 

 

server-id=1

# 同步过程中需要忽略的表,支持正则表达式。全库同步时,必须屏蔽mysql系统库和test测试库。

replicate-wild-ignore-table = mysql.%

replicate-wild-ignore-table = test.%

# 需要同步的表,多个表需多次指定,这里我们使用全库同步,方便点

# replicate-do-table = database.table

log-bin = mysql-bin  #二进制日志,强制开启

log-bin-index = mysql-bin.index  # 记录二进制日志索引文件

relay-log-index = relay-log.index # 记录中继日志索引文件

 

从库配置

 

server-id=2

read-only 

skip-slave-start 

relay-log = mysql-relay 

relay-log-index = relay-log.index

log-bin = mysql-bin

log-bin-index = mysql-bin.index

replicate-wild-ignore-table = mysql.%

replicate-wild-ignore-table = test.%

 

同步设置

启动数据库并查看主库状态

su - mysql 

$ /opt/mysql/bin/mysql.server start

Starting MySQL SUCCESS! 

$ mysql -uroot -p

-bash: mysql: command not found

[mysql@localhost ~]$ /opt/mysql/bin/mysql -uroot

 mysql> show master status;

记录下 mysql-bin 和pid

记下log文件名字和位置,这里是“mysql-bin000004” 和 “465

 

 

然后启动从库:

[root@localhost bin]# su - mysql

[mysql@localhost ~]$ /opt/mysql/bin/mysql.server start

Starting MySQL SUCCESS! 

[mysql@localhost ~]$ /opt/mysql/bin/mysql -uroot

 

mysql> change master to master_host='192.168.199.126',master_port=3306,master_user='sync',master_password='jsb',master_log_file='mysql-bin.000006',master_log_pos=465;

mysql> start slave;  #启动从库

mysql> show slave status\G;

 

其中Slave_IO_RunningSlave_SQL_Runningyes就对了。

最后,可以验证一下,在主库修改记录,从库可以看到同步过来的变化。

 

如果显示以下2YES,则为配置成功:

Slave_IO_Running: Yes   #负责从库去主库读取BINLOG日志,并写入从库的中继日志中

Slave_SQL_Running: Yes  #负责读取并执行中继日志中的BINGLOG,转换SQL语句后应用到数据库汇总

 

 

 

 

 

 

 

 

 

 

 

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
1月前
|
关系型数据库 MySQL 开发工具
MySQL5.7主从配置(Docker)
MySQL5.7主从配置(Docker)
730 0
|
1月前
|
SQL 关系型数据库 MySQL
解决MySQL主从慢同步问题的常见的解决方案:
解决MySQL主从慢同步问题的方法有很多,以下是一些常见的解决方案: 1. 检查网络连接:确保主从服务器之间的网络连接稳定,避免网络延迟或丢包导致数据同步缓慢。 2. 优化数据库配置:调整MySQL的配置参数,如增大binlog文件大小、调整innodb_flush_log_at_trx_commit等参数,以提高主从同步性能。 3. 检查IO线程和SQL线程状态:通过SHOW SLAVE STATUS命令检查IO线程和SQL线程的状态,确保它们正常运行并没有出现错误。 4. 检查主从日志位置:确认主从服务器的binlog文件和位置是否正确,避免由于错误的日志位置导致同步延迟。 5.
127 1
|
4月前
|
负载均衡 关系型数据库 MySQL
MySQL主从架构的搭建
MySQL主从架构的搭建
59 3
|
4月前
|
SQL 关系型数据库 MySQL
小白带你学习linux的mysql服务(主从mysql服务和读写分离三十一)
小白带你学习linux的mysql服务(主从mysql服务和读写分离三十一)
68 0
|
5月前
|
关系型数据库 MySQL Linux
linux环境搭建mysql5.7总结
linux环境搭建mysql5.7总结
63 0
|
3月前
|
SQL 关系型数据库 MySQL
MySQL-主从架构的搭建
MySQL-主从架构的搭建
58 0
|
8天前
|
SQL 关系型数据库 MySQL
MySQL环境搭建——“MySQL数据库”
MySQL环境搭建——“MySQL数据库”
|
17天前
|
SQL 关系型数据库 MySQL
mysql主从同步出错解决办法
mysql主从同步出错解决办法
12 0
|
5月前
|
SQL 关系型数据库 MySQL
MySQL的主从结构是通过一系列的步骤搭建出来的
MySQL的主从结构是通过一系列的步骤搭建出来的
30 1
|
4月前
|
消息中间件 关系型数据库 MySQL
在kafka connect 同步 mysql 主从数据库
在kafka connect 同步 mysql 主从数据库
45 0