Mysql学习总结(32)——阿里云centos配置MySQL主从复制

1.安装jdk1.8

首先确定没有安装过jdk

2.yum –y list java*查询系统自带的jdk安装包情况。

3.安装jdk1.8

4. 验证安装结果。

安装mysql

1. rpm -Uvh http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm

2. yum -y install mysql-community-server

3.加入开机启动:systemctl enable mysqld

4. 启动mysql服务进程:启动mysql服务进程systemctl start mysqld

5.修改mysql root的密码:

第一次设置root密码可以使用以下命令:

mysqladmin -u root password NEWPASSWORD

如果你已经设置过密码了,需要要以下命令:

1

mysqladmin -u root -p‘oldpassword‘ password newpass

比如说,旧密码是“12345”,新密码是“nowamagic”,执行以下命令:

1

mysqladmin -u root -p‘12345‘ password ‘nowamagic‘

修改其它MySQL用户的密码

修改一个普通用户的密码你可以使用以下命令,比如用户是 nmuser:

1

mysqladmin -u nmuser -p oldpassword password newpass

另一种修改密码的方法是,MySQL 服务器把用户名和密码储存在 MySQL 数据库的 user 表中。你可以使用以下方法来直接更新用户 nmuser 的密码:

1. 登录mysql服务器:

mysql -u root -p

2. 选择 MySQL 数据库

mysql> use mysql;

3. 修改 nmuser 密码

mysql> update user set password=PASSWORD("NEWPASSWORD") where User=‘nmuser‘;

4. 重置权限

mysql> flush privileges;

mysql> quit

这种方法也可以用脚本(PHP,Perl)执行,不用SSH到服务器。

主从配置

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

创建数据库:create database repl;

2. 1、修改master机器中mysql配置文件my.cnf,该文件在/etc目录下

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

server-id=1

log-bin=log

binlog-do-db=repl //需要同步的数据库,如果没有本行,即表示同步所有的数据库

binlog-ignore-db=mysql //被忽略的数据库

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

grant replication slave on *.* to ‘repl‘@‘192.1681.220‘ identifiedby ‘123456‘;

表示192.1681.220上的slave可以使用repl/123456帐号在master机器上进行replication同步数据的操作。

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

4. 用show master status 命令看日志情况

mysql>show master status;

+-----------------+------------+-------------------+-----------------------+

|File |Position | Binlog_Do_DB |Binlog_Ignore_DB |

+-----------------+------------+-------------------+-----------------------+

| log.000003| 98 |repl |mysql |

+-----------------+------------+-------------------+-----------------------+

1 row in set (0.00 sec)

5. 修改slave机中mysql配置文件my.cnf。

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

server-id=2

在从库上执行如下命令:

change master to master_host=‘10.171.244.109‘,

master_user=‘ repl ‘,

master_password=‘123456‘,

master_log_file=" log.000003",

master_log_pos=98;

表示用帐号密码登录到master库上去,在master库的log.000003 binlog的98位置处开始做数据同步操作了。

然后重启slave机的mysql。

6.在slave机中进入mysql

mysql>start
slave;//开启io线程。

mysql>show
slave status \G;

如果Slave_IO_Running、Slave_SQL_Running状态为Yes则表明设置成功。

7. 测试主从服务器是否能同步

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

mysql> use repl

Database changed

mysql> create table test(id int,namechar(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)

说明已经同步成功了。

注意一定要在主库上进行增加,修改和删除的操作,然后同步到从库去,从库只能提供查询,不能对从库的数据进行增加,修改和删除的操作。

原理探究

MySQL同步功能由3个线程(master上1个,slave上2个)来实现。执行 START SLAVEDE语句后,slave就创建一个I/O线程。I/O线程连接到master上,并请求master发送二进制日志中的语句。master创建一个线程来把日志的内容发送到slave上。这个线程在master上执行
SHOW PROCESS LIST 语句后的结果中的 Binlog Dump 线程便是。slave上的I/O线程读取master的 Binlog Dump 线程发送的语句,并且把它们拷贝到其数据目录下的中继日志(relay logs)中。第三个是SQL线程,salve用它来读取中继日志,然后执行它们来更新数据。

如上所述,每个master/slave上都有3个线程。每个master上有多个线程,它为每个slave连接都创建一个线程,每个slave只有I/O和SQL线程。

时间: 2024-12-24 23:44:47

Mysql学习总结(32)——阿里云centos配置MySQL主从复制的相关文章

阿里云CentOS配置全过程

阿里云CentOS配置全过程 拿到服务器的ip.初始密码以后.我们先要用远程连接工具putty连接服务器主机. 启动putty.exe程序,进入putty主界面,在Host Name 栏中输入你的服务器ip地址,Saved Sessions 填入你的主机名称(可自定义,用于区别你的服务器).点击Save保存配置.选中你的服务器名点击open开始连接服务器. 第一次连接,会出现对话框,点击是 出现登录界面,输入用户名,默认为超级用户root,接着输入密码,要注意的是密码不会显示在屏幕上.输入密码时

阿里云centos中mysql的安装及一些常识知识

------------------------------------------------------------------- 阿里云centos中mysql的安装 工具WinSCP v5.7.0可以从windows上传文件到linux上 工具putty可以再windows上连接linux,用命令行操作很方便 将mysql以下三个包下载并上传到linux上,例如:/root/software MySQL-server-5.5.28-1.linux2.6.x86_64.rpm MySQL-

阿里云centos配置VPN(PPTPD服务)

因为公司网络访问限制影响,想配置个VPN服务,做其它访问使用,所以找了个外部服务器配置个VPN(PPTPD)服务. 环境:阿里云 centos 6.3 条件:服务器支持ppp[这里必须]和tun/tap[非必须](如需配openvpn必须) 具体安装如下: 1.  需要验证是否开启了ppp,一般只有VPS才需要验证,自己的服务器肯定是开启的. # cat /dev/ppp cat: /dev/ppp: No such device or address 如果出现以上提示则说明ppp是开启的,可以

阿里云Centos配置iptables防火墙

虽说阿里云推出了云盾服务,但是自己再加一层防火墙总归是更安全些,下面是我在阿里云vps上配置防火墙的过程,目前只配置INPUT.OUTPUT和FORWORD都是ACCEPT的规则 一.检查iptables服务状态 首先检查iptables服务的状态 [[email protected] ~]# service iptables status iptables: Firewall is not running. 说明iptables服务是有安装的,但是没有启动服务.如果没有安装的话可以直接yum安

阿里云 CentOS下面 Mysql 数据迁移

本次Mysql数据迁移, 只是从阿里云的CentOS系统盘中,把mysql的data数据, 迁移到非系统盘中. 起因: 由于购买阿里云时候,  默认的系统盘只有20G.  后又购买了100G磁盘空间, 这时, 需要把原mysql数据, 迁移到新的磁盘分区中. 所有的操作步骤记录如下: 1. 新挂载磁盘分区: mount, 并设置为重启后自动加载. 2. 暂时关闭nginx服务器. 再关闭mysql服务器. 3. 修改/etc/my.cnf配置文件, 将里面的路径, 修改为新磁盘中的, 需要保存m

阿里云CentOS配置iptables防火墙[转]

虽说阿里云推出了云盾服务,但是自己再加一层防火墙总归是更安全些,下面是我在阿里云vps上配置防火墙的过程,目前只配置INPUT.OUTPUT和FORWORD都是ACCEPT的规则 一.检查iptables服务状态 首先检查iptables服务的状态 1 [[email protected] ~]# service iptables status 2 iptables: Firewall is not running. 说明iptables服务是有安装的,但是没有启动服务. 如果没有安装的话可以直

阿里云Centos配置LNMP环境

CentOS基本配置 1.连接服务器 拿到服务器的ip.初始密码以后.我们先要用远程连接工具putty连接服务器主机. 启动putty.exe程序,进入putty主界面,在Host Name 栏中输入你的服务器ip地址,Saved Sessions 填入你的主机名称(可自定义,用于区别你的服务器).点击Save保存配置.选中你的服务器名点击open开始连接服务器. 第一次连接,会出现对话框,点击是 出现登录界面,输入用户名,默认为超级用户root,接着输入密码,要注意的是密码不会显示在屏幕上.输

阿里云centOS配置实录

Step1. 系统挂载数据盘 df -h,看不到数据盘. fdisk -l ,可以看到数据盘 执行“fdisk -S 56 /dev/xvdb”命令,对数据盘进行分区: 根据提示,依次输入“n”,“p”“1”,两次回车,“wq”,分区就开始了,很快就会完成. 使用“fdisk -l”命令可以看到,新的分区xvdb1已经建立完成了. 使用“mkfs.ext3 /dev/xvdb1”命令对新分区进行格式化 使用“echo '/dev/xvdb1  /mnt ext3    defaults    0

阿里云centos配置postfix

1. 为了防止垃圾邮件,先到域名控制面板设置好. MX A 记录及TXT记录 其中TXT记录如下  @  spf1 a mx ~all 意思就是使用spf1协议,允许a记录和MX记录对应的IP,不允许之外的任何IP 经过这一步,基本可以防止SPAM了 2. 一般自动发信.找回密码等功能配置的postfix,都不需要收信的功能,因此我们可以直接把收信的功能禁用掉. 老外管这个叫做 postfix null client 大家可以谷歌下原文,有很详细的解答 原文链接:https://www.digi