mysql集群部署

一、软件准备

MySQL版本采用 5.6.35,通过 Oracle 官方网站下载

也可以直接从HTTP文件服务器上获取:

生产环境:

wget http://download.cloud.pub/mysql/mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz

二、安装MySQL

1环境准备

MySQL采用解压二进制安装包方式安装,两个节点采用一主一从的部署架构,MySQL

禁止运行在操作系统的root账户下。

操作系统环境:

用户:mysql

用户组:mysql

数据库环境:

Basedir : /usr/local/mysql

Datadir: /data

端口:3306

root用户:不启用远程登录

slave用户: 主从同步

pacloud用户:业务用户,用户可以自行定义

2安装主节点(Master)

Step 1.创建用户及用户组

以root用户登录,创建用户及用户组:

创建MySQL运行账户:

[root@aldb]# groupadd mysql

[root@aldb]# useradd–r –g mysql mysql

设置mysql用户密码

[root@aldb]# passwd mysql

创建MySQL DBA账户:

[root@aldb]# groupadd dba

[root@aldb]# useradd–r –g dba dba

设置dba用户密码

[root@aldb]# passwd dba

Step 2.创建数据库文件存储目录

[root@aldb]# mkdir /data

注:如果采用外部存储,则/data应该为挂载点。

设置权限

[root@aldb]# chown–R mysql:mysql /data

Step 3.解压 MySQL 安装包

[root@aldb]# cd /software

[root@aldb software]# tar–xzvf mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz

[root@aldb software]# mv mysql-5.6.35-linux-glibc2.5-x86_64

/usr/local/mysql

设置权限

[root@aldb]# chown–R mysql:mysql /usr/local/mysql

Step 4.安装 MySQL

[root@aldb]# cd /usr/local/mysql/scripts/

[root@aldb scripts]#

./mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data

注:如果提示如下:

error while loading shared libraries: libaio.so.1: cannot open shared object file:

No such file or directory

则需要安装libaio相关系统组件:

[root@aldb]# yum install libaio*

Step 5.配置文件

[root@aldb]# cd /usr/local/mysql/support-files/

[root@aldb support-files]# mv /etc/my.cnf f /etc/my.cnf.bak

[root@aldb support-files]# cp my-default.cnf /etc/my.cnf

[root@aldb support-files]# cp mysql.server /etc/init.d/mysql

[root@aldb]# vim /etc/init.d/mysql

添加以下两行:

basedir=/usr/local/mysql

datadir=/data

添加权限:

[root@aldb]# chown mysql:mysql /etc/init.d/mysql

[root@aldb]# chown mysql:mysql /etc/my.cnf

[root@aldb]# chmod 775 /etc/init.d/mysql

Step 6.修改 my.cnf

在[mysqld]下添加以下几行:

basedir = /usr/local/mysql

datadir = /data

innodb_buffer_pool_size = 5G

innodb_log_file_size = 4G

innodb_log_buffer_size = 10MB

max_connections = 16384

query_cache_size = 0

skip_name_resolve = off

auto_increment_offset = 2

auto_increment_increment = 20

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

Step 7.配置环境变量

[root@aldb]# vim /etc/profile

添加以下两行:

#Set MySQL Environment

export MYSQL_HOME=/usr/local/mysql

export PATH=$PATH:$MYSQL_HOME/bin

[root@aldb]# source /etc/profile

Step 8.配置开机自动启动

[root@aldb]# chkconfig --add mysql

[root@aldb]# chkconfig mysql on

Step 9.启动数据库

[root@aldb]# su mysql

[mysql@aldb]$ service mysql start

Starting MySQL.. SUCCESS!

Step 10.设置数据库账户登录密码

[root@aldb]# cd /usr/local/mysql/bin/

[root@aldb bin]# ./mysqladmin–u root password ‘XXXXXXXX’

Step 11.登录数据库

[root@aldb]# mysql–u root –p

Step 12. iptables配置 3306 端口

[root@aldb]# service iptables save

[root@aldb]# vim /etc/sysconfig/iptables

-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT

注:一定要加在-A INPUT -j REJECT --reject-with icmp-host-prohibited前面

重启iptables

[root@aldb]# service iptables restart

3安装从节点(Slave)

从节点安装步骤同主节点,目录结构全部相同。

配置从节点,启动从库只读:

[root@ECAM40124]# mysql–u root –p

mysql> set global read_only = 1

mysql> show global variables like '%read_only%';

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

| Variable_name | Value |

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

| innodb_read_only | OFF |

| read_only | ON |

| tx_read_only | OFF |

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

3 rows in set (0.00 sec)

4主从配置

4.1主库配置

Step 1.停止主节点

[root@aldb]# su mysql

[mysql@aldb]$ service mysql stop

Step 2.修改主节点 my.cnf

[root@aldb]# vim /etc/my.cnf

[mysqld]

#启用二进制日志

log_bin = mysql-bin

server-id=77 #(通常使用当前服务器 IP 地址的第 4 段)

binlog_format=row

Step 3.启动数据库

[root@aldb]# su mysql

[mysql@aldb]$ service mysql start

Step 4.创建同步账号

[root@aldb]# mysql–uroot –pxxxxx –e “GRANT REPLICATION

SLAVE,RELOAD,SUPER ON *.* TO‘slave’@’100.68.2.78’ IDENTIFIED BY ‘XXXXX’; ”

查看主库状态:

mysql> flush privileges;

mysql> show master status;

注:记录下mysql-bin.xxxx文件名和位置,会在从节点上用到。

4.2从库配置

Step 1.停止从节点

[root@ECAM40124]# su mysql

[mysql@ECAM40124]$ service mysql stop

Step 2.修改主节点 my.cnf

[root@ECAM40124]# vim /etc/my.cnf

[mysqld]

#启用二进制日志

log_bin = mysql-bin

server-id=78 #(通常使用当前服务器 IP 地址的第 4 段)

binlog_format=row

Step 3.启动数据库

[root@ECAM40124]# su mysql

[mysql@ECAM40124]$ service mysql start

Step 4.配置连接主数据库

[root@ECAM40124]# mysql -uroot -pXXXXX -e "change master to

master_host='100.68.2.xxx',master_user='slave',master_password='XXXXX',master_l

og_file='mysql-bin.0000xxx',master_log_pos=xxx;"

注:

-pXXXXX表示从节点 MySQL 用户 root 的密码;

master_password='XXXXX'表示主节点中 MySQL 用户 slave 的密码;

master_log_file='mysql-bin.0000xxx'必须为主节点的 log_file 名称;

master_log_pos=xxx必须为主节点的位置编号;

Step 5.开始同步

[root@ECAM40124]# mysql–u root -p

mysql> start slave;

mysql> show slave status \G;

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

注,如果Slave_IO_Running: Connecting,则说明 slave 连不上 master,

或者pos错误,网络问题,查看 master 上的 iptables 中 3306 端口的配置。

5.健康性验证

Step 1.在主库创建 database

Step 2.在从库查看 database

Step 3.在主库创建表

Step 4.在从库查看表

Step 5.在主库 insert 数据

Step 6.在从库查看数据

Step 7.删除验证数据

主库:drop table t_test;

从库:show tables;

5创建应用账号

登录主库:

1.创建应用账号

CREATE USER 'pacloud'@'%' IDENTIFIED BY 'XXXXXXX';

GRANT ALL ON *.* TO 'pacloud'@'%' WITH GRANT OPTION;

flush privileges;

2.创建只读账号

CREATE USER 'readonly'@'%' IDENTIFIED BY 'XXXXXXX';

GRANT SELECT ON *.* TO 'readonly'@'%';

flush privileges;

3.创建备份账号

CREATE USER 'export'@'%' IDENTIFIED BY '#Cloud@Backup!';

GRANT SELECT, SHOW, LOCK TABLES, TRIGGER ON *.* TO 'export'@'%';

flush privileges;

4、检查从服务器复制功能状态:

mysql> show slave status\G

*************************** 1. row ***************************

Slave_IO_State: Waiting for master to send event

Master_Host: 192.168.2.222  //主服务器地址

Master_User: mysync  //授权帐户名,尽量避免使用root

Master_Port: 3306    //数据库端口,部分版本没有此行

Connect_Retry: 60

Master_Log_File: mysql-bin.000004

Read_Master_Log_Pos: 600    //#同步读取二进制日志的位置,大于等于Exec_Master_Log_Pos

Relay_Log_File: ddte-relay-bin.000003

Relay_Log_Pos: 251

Relay_Master_Log_File: mysql-bin.000004

Slave_IO_Running: Yes    //此状态必须YES

Slave_SQL_Running: Yes    //此状态必须YES

......

注:Slave_IO及Slave_SQL进程必须正常运行,即YES状态,否则都是错误的状态(如:其中一个NO均属错误)。

以上操作过程,主从服务器配置完成。

mysql 集群操作系统_mysql集群部署相关推荐

  1. mysql设置定时入伍_mysql 集群自动化配置

    #!/bin/sh #文 件 名: autogen_mysql.sh #功 能: 自动生成Mysql集群配置文件,生成环境自动部署,自动运行脚本等 #创建时间: 2012-02-05 #自动化生成的文 ...

  2. mysql集群 教程_mysql集群搭建教程-基础篇

    计算机一级考试系统要用集群,目标是把集群搭建起来,保证一个库dang了,不会影响程序的运行.于是在孟海滨师哥的带领下开始了我的第一次搭建mysql集群,首先看了一些关于集群的资料,然后根据步骤一步步的 ...

  3. mysql主从 查询负载_MySQL集群:主从数据库配置 实现查询负载

    在做web应用系统中,如果数据库出现了性能瓶颈,而你又是使用的MySQL数据库,那么就可以考虑采用数据库集群的方式来实现查询负载了.因为一般来讲任何一个系统中数据库的查询操作比更新操作要多的多,因此通 ...

  4. mysql 集群分区_mysql 集群与分区

    一.主从集群配置 原理:主服务器建立二进制日志,每产生语句或磁盘变化,写进日志:从服务器读取主服务器的二进制日志从而建立relaylog日志:然而主服务器需要授权复制账号给从服务器来监听二进制日志. ...

  5. 熟悉mysql基本数据库操作系统_MySQL数据库的基本操作

    1.数据库和数据库对象 数据库分为系统数据库和用户数据库. 数据库对象是指存储.管理和使用数据库的不同结构形式,主要包括表.视图.存储过程.函数.触发器和事务. 1.系统数据库 系统数据库是值安装完M ...

  6. 1在mysql进行定义操作系统_Mysql基础知识一

    1.数据库的定义 数据:描述事物符号记录.(包括数字.文字.图形.图像.声音.档案记录等)以记录形式统一的格式进行存储.广义上的数据:出现在计算机内部的一切二进制数据流都为数据狭义上的数据:只是数字或 ...

  7. mysql对时间操作系统_MySQL时间操作的系统函数用法

    oracle length and lengthb LENGTH──返回以字符为单位的字符串长度. LENGTHB──返回以字节为单位的字符串长度,它和类型定义中的长度是一个概念,比如你定义的varc ...

  8. mysql 集群 增加服务器_MYSQL集群服务配置

    MYSQL集群服务配置 篇文档旨在介绍如何安装配置基于2台服务器的MySQL集群.并且实现任意一台服务器出现问题或宕机时MySQL依然能够继续运行. 注意! 虽然这是基于2台服务器的MySQL集群,但 ...

  9. Hive环境的安装部署(完美安装)(集群内或集群外都适用)(含卸载自带mysql安装指定版本)...

    Hive环境的安装部署(完美安装)(集群内或集群外都适用)(含卸载自带mysql安装指定版本) Hive 安装依赖 Hadoop 的集群,它是运行在 Hadoop 的基础上. 所以在安装 Hive 之 ...

最新文章

  1. python网课阿里云_关于python视频教程的阿里云网站内容
  2. 利用mail实时监测服务器程序状态
  3. 8. String to Integer (atoi)
  4. JDK源码解析 Integer类使用了享元模式
  5. tcc(tiny cc)的作者是谁,对tcc的特点做描述?
  6. 【转】Linux 静态库与共享库的使用
  7. C#不支持XPATH2.0
  8. hbase(三)coprocessor
  9. 查漏补缺:2020年搞定SpringCloud面试(含答案和思维导图)
  10. Java之super
  11. layuit 框架_Layui|经典模块化前端框架
  12. 正则表达式 —— 一种模式描述语言(贪婪匹配与惰性匹配)
  13. ati hd4570 linux amd 64 安装命令,ATI 显卡的驱动在Linux下的安装方法
  14. PDMS Pipeline Tool 教程(一):安装说明
  15. 仿链家地图找房_iOS地图找房(类似链家、安居客等地图找房)
  16. 公安机关计算机网络安全协议,计算机信息网络国际联网单位网络安全协议合同范本...
  17. 洛谷P3110 [USACO14DEC]驮运Piggy Back
  18. 前端页面如何获取高德地图
  19. 【Kafka】Kafka的安装
  20. ELK学习笔记之F5 DNS可视化让DNS运维更安全更高效-F5 ELK可视化方案系列(3)

热门文章

  1. VM中的Linux安装jdk和tomcat
  2. 行走在消逝中[LoLi有三好]
  3. linux下tar压缩使用
  4. JSF通过EL读取List中的值
  5. 如何创建从硬盘安装的硬像文件
  6. Star-shaped polygon
  7. 如何更好的使用大数据
  8. linux命令grep如何使用,Linux命令之grep命令简单使用
  9. python与Labview进行数据通信(UDP)
  10. react 打包体积过大_解决 webpack 打包文件体积过大