数据库

Wave Blog // Ops攻城狮的Blog

 2018-01-15 16:19:26 | 0条评论  |  mysql php

PHP链接mysql测试代码

在网站根目录创建mysql.php文件

<?php
$link=mysql_connect("localhost","root","123");
if(!$link) echo
"FAILD!连接错误,用户名密码不对";
else echo "OK!可以连接";
?>


 2018-01-15 10:09:51 | 0条评论  |  mysql mmm

MySQL+MMM实现高可用

MMM即Multi-Master Replication Manager for MySQL:mysql多主复制管理器,基于perl实现,关于mysql主主复制配置的监控、故障转移和管理的一套可伸缩的脚本套件(在任何时候只有一个节点可以被写入),MMM也能对从服务器进行读负载均衡,所以可以用它来在一组用于复制的服务器启动虚拟ip,除此之外,它还有实现数据备份、节点之间重新同步功能的脚本。MySQL本身没有提供replication failover的解决方案,通过MMM方案能实现服务器的故障转移,从而实现mysql的高可用。MMM不仅能提供浮动IP的功能,如果当前的主服务器挂掉后,会将你后端的从服务器自动转向新的主服务器进行同步复制,不用手工更改同步配置。这个方案是目前比较成熟的解决方案。详情请看官网:http://mysql-mmm.org

 2017-11-22 11:48:40 | 0条评论  |  mysql keepalived

MySQL+Keepalived实现双机热备

一、概述:

keepalived是以VRRP协议为实现基础的,VRRP全称Virtual Router Redundancy Protocol,即虚拟路由冗余协议。

虚拟路由冗余协议,可以认为是实现路由器高可用的协议,即将N台提供相同功能的路由器组成一个路由器组,这个组里面有一个master和多个backup,master上面有一个对外提供服务的vip(该路由器所在局域网内其他机器的默认路由为该vip),master会发组播,当backup收不到vrrp包时就认为master宕掉了,这时就需要根据VRRP的优先级来选举一个backup当master。这样的话就可以保证路由器的高可用了。

keepalived主要有三个模块,分别是core、check和vrrp。core模块为keepalived的核心,负责主进程的启动、维护以及全局配置文件的加载和解析。check负责健康检查,包括常见的各种检查方式。vrrp模块是来实现VRRP协议的。

实验思路:

本节主要介绍了利用keepalived实现 MySQL 数据库的高可用。Keepalived+mysql双主来实现MySQL-HA,我们必须保证两台MySQL数据库的数据完全一样,基本思路是两台MySQL互为主从关系,通过Keepalived配置虚拟IP,实现当其中的一台MySQL数据库宕机后,应用能够自动切换到另外一台MySQL数据库,保证系统的高可用。

实验环境:

操作系统:CentOS 7.2 x86_64

MySQL版本:mysql 5.7.13

Keepalived版本:keepalived-1.2.20

Mysql-vip地址:192.168.1.100

Mysql-master1地址:192.168.1.101

Mysql-master2地址:192.168.1.102

实验拓扑:


二、搭建MySQL双主同步环境

(1)准备工作

1、配置IP地址

master1地址为192.168.1.101

master2地址为192.168.1.102

2、设置master1和master2的防火墙规则

[root@master1 ~]# firewall-cmd --permanent --add-port=3306/tcp

[root@master1 ~]# firewall-cmd --reload

2)修改m

 2017-11-22 11:48:40 | 0条评论  |  mysql

CentOS 7安装MySQL5.7

在CentOS 7上安装MySQL5.7的详细步骤

Ops攻城狮2017-03-23 14:19

图片来源于网络

一、简介:

MySQL 5.7主要特性:

1、原生支持Systemd

2、更好的性能:对于多核CPU、固态硬盘、锁有着更好的优化

3、更好的lnnoDB存储引擎

4、更为健壮的复制功能:复制带来了数据完全不丢失的方案,传统金

 2017-11-22 11:48:40 | 0条评论  |  mysql

MySQL数据库定时自动备份

Linux 下如何实现 MySQL 数据库定时自动备份?

概述:

备份是容灾的基础,是指为防止系统出现操作失误或系统故障导致数据丢失,而将全部或部分数据集合从应用主机的硬盘或阵列复制到其它的存储介质的过程。而对于一些网站、系统来说,数据库就是一切,所以做好数据库的备份是至关重要的!

备份是什么?

为什么要备份?

 2017-11-22 11:48:40 | 0条评论  |  mysql

mysqlbinlog

使用mysqlbinlog下载远程主机binlog日志文件到本地服务器

mysqlbinlog --read-from-remote-server --raw --host=192.168.244.145 --port=3306 --user=repl --password=repl --stop-never  mysql-bin.000001

命令说明:

--read-from-remote-server:用于备份远程服务器的binlog。如果不指定该选项,则会查找本地的binlog。

--raw:binlog日志会以二进制格式存储在磁盘中,如果不指定该选项,则会以文本形式保存。

--user:复制的MySQL用户,只需要授予REPLICATION SLAVE权限。

--stop-never:mysqlbinlog可以只从远程服务器获取指定的几个binlog,也可将不断生成的binlog保存到本地。指定此选项,代表只要远程服务器不关闭或者连接未断开,mysqlbinlog就会不断的复制远程服务器上的binlog。

mysql-bin.000001:代表从哪个binlog开始复制。

 

 2017-11-22 11:48:40 | 0条评论  |  mysql

MySQL常用命令

MySQL常用命令

1、连接与退出

1.1、连接

[root@localhost ~]# mysql -h$hostIP -u$user -p$passwd
mysql>

1.2、退出

mysql> exit;

 

2、增改删查

2.1、增

2.1.1、创建数据库

mysql> create database <数据库名>​

 

2.1.2、创建数据库表

mysql> use <数据库名>;
mysql> create table 表名称(列声明);​

案例:以创建 students 表为例, 表中将存放 学号(id)、姓名(name)、性别(sex)、年龄(age)、联系电话(tel) 这些内容:

mysql> create table students
(
    id int unsigned not null auto_increment primary key,
	name char(8) not null,
	sex char(4) not null,
	age tinyint unsigned not null,
	tel char(13) null default "-"
);​

语句介绍:create table tablename(columns) 为创建数据库表的命令, 列的名称以及该列的数据类型将在括号内完成;括号内声明了5列内容, id、name、sex、age、tel为每列的名称, 后面跟的是数据类型描述, 列与列的描述之间用逗号(,)隔开;

以 "id int unsigned not null auto_increment primary key" 行进行介绍:

  • "id" 为列的名称;
  • "int" 指定该列的类型为 int(取值范围为 -8388608到8388607), 在后面我们又用 "unsigned" 加以修饰, 表示该类型为无符号型, 此时该列的取值范围为 0到16777215;

  • "not null" 说明该列的值不能为空, 必须要填, 如果不指定该属性, 默认可为空;
  • "auto_increment" 需在整数列中使用, 其作用是在插入数据时若该列为 NULL, MySQL将自动产生一个比现存值更大的唯一标识符值。在每张表中仅能有一个样的值且所在列必须为索引列。
  • "primary key" 表示该列是表的主键, 本列的值必须唯一, MySQL将自动索引该列。