- 浏览: 1149012 次
- 性别:
- 来自: 火星郊区
博客专栏
-
OSGi
浏览量:0
文章分类
- 全部博客 (695)
- 项目管理 (48)
- OSGi (122)
- java (79)
- Vaadin (5)
- RAP (47)
- mysql (40)
- Maven (22)
- SVN (8)
- 孔雀鱼 (10)
- hibernate (9)
- spring (10)
- css (3)
- 年审 (6)
- ant (1)
- jdbc (3)
- FusionCharts (2)
- struts (4)
- 决策分析 (2)
- 生活 (10)
- 架构设计 (5)
- 破解 (2)
- 狼文化 (4)
- JVM (14)
- J2EE (1)
- 应用服务器 (1)
- 我的链接 (5)
- 数学 (2)
- 报表 (1)
- 百科 (6)
- Flex (7)
- log4j (2)
- PHP (1)
- 系统 (2)
- Web前端 (7)
- linux (6)
- Office (1)
- 安全管理 (5)
- python (2)
- dom4j (1)
- 工作流 (3)
- 养生保健 (4)
- Eclipse (8)
- 监控开发 (1)
- 设计 (3)
- CAS (1)
- ZK (41)
- BluePrint (3)
- 工具 (1)
- SWT (7)
- google (2)
- NIO (1)
- 企业文化 (2)
- Windoes (0)
- RCP (7)
- JavaScript (10)
- UML (1)
- 产品经理 (2)
- Velocity (10)
- C (1)
- 单元测试 (1)
- 设计模式 (2)
- 系统分析师 (2)
- 架构 (4)
- 面试 (2)
- 代码走查 (1)
- MongoDB (1)
- 企业流程优化 (1)
- 模式 (1)
- EJB (1)
- Jetty (1)
- Git (13)
- IPV6 (1)
- JQuery (8)
- SSH (1)
- mybatis (10)
- SiteMesh (2)
- JSTL (1)
- veloctiy (1)
- Spring MVC (1)
- struts2 (3)
- Servlet (1)
- 权限管理 (1)
- Java Mina (1)
- java 系统信息 (6)
- OSGi 基础 (3)
- html (1)
- spring--security (6)
- HTML5 (1)
- java爬虫搜索 (1)
- mvc (3)
最新评论
-
Tom.X:
http://osgia.com/
将web容器置于OSGi框架下进行web应用的开发 -
chenyuguxing:
你好, 为什么我的bundle export到felix工程中 ...
在Apache Felix中运行bundle -
string2020:
<niceManifest>true</ni ...
Bundle Plugin for Maven -
jsonmong:
OSGI,是未来的主流,目前已相当成熟。应用OSGI比较好的, ...
基于OSGi的声明式服务 -
zyhui98:
貌似是翻译过来的,有很少人在linux上做开发吧
如何成为“10倍效率”开发者
对数据库管理员来说,MySQL颇多吸引人之处,例如它的免费和开源,以及拥有详尽的文档和内置支持数据复制等。但是安全管理员会迅速指出它的一个缺陷:加密。政府对数据隐私保护的要求极为严格,通过局域网或广域网复制数据都需要加密。
尽管可以通过编译MySQL使其支持SSL,但许多二进制发行版并未激活该功能。打开一个SQL提示符,然后键入命令“show variables like '%ssl%”。如果“have_ssl”或“have_openssl”被设置为“No”,则很不幸该功能未被激活。幸运的是,我们还有另一种选择来从源代码重新编译。安全外壳(SSH)支持数据隧道(data-tunneling),它可以建立一个类似VPN的迷你环境,来提供透明加密。首先,我们将使用一个用户名/密码建立一条SSH隧道。我们将通过使用RSA密钥对远端进行认证。一旦隧道正常运行后,我们将设置数据复制。
建立隧道
SSH隧道使用端口转发技术来连接到从属服务器上的一个TCP端口,在本文示例中该端口是7777,它通过SSH被转发到主MySQL服务器上的 TCP端口3306。确保MySQL主服务器端的SSH隧道被激活,默认情况下它一般都处于激活状态。在MySQL从属服务器上,执行以下命令“ssh -f user@master_ip -L 7777:master_ip:3306 -N”。使用主服务器的一个系统用户账号和IP地址分别替换user和master_ip。你可能希望使用一个仅用于数据复制的用户,将其shell设定到/bin/false上。另外你可以使用从服务器上的任何可用端口替换7777。在主数据库端,你将被提示输入用户账号和密码。
现在从MySQL1从服务器上运行“mysql -h 127.0.0.1 -P 7777”,来连接MySQL主服务器。切记不能使用localhost,因为在MySQL中它有别的含义。如果需要,可以在该命令后追加“-u -p”来指定一个MySQL账号和密码。如果你获得一个“permission denied”消息,那么需要检查MySQL主服务器上的授权声明。授权声明应该被捆绑到主计算机的真实IP地址,因为它才是被转发的MySQL1连接的真正源地址。被转发的连接不是来自于localhost或127.0.0.1。
设置复制
现在隧道已经建好,接下来该设置数据复制了。这个过程与典型的MySQL复制设置完全相同。编辑主服务器上的my.cnf文件,增加以下两行代码:
log-bin=mysql-bin
server-id=1
接下来,创建复制账号。在MySQL中,运行以下查询语句:
CREATE USER 'replicationuser'@'master_ip' IDENTIFIED BY 'replicationpassword';
GRANT REPLICATION SLAVE ON *.* TO 'replicationuser'@'master_ip';
在从属服务器端,将以下代码增加到my.cnf文件中:
server-id = 2
master-host = 127.0.0.1
master-user = replicationuser
master-password = replicationpassword
master-port = 7777
重启主服务器和从服务器上的MySQL服务。对于新创建的复制环境,你可能需要手动拷贝数据库到从服务器上。参考MySQL指南(16.1章节),可以获得创建数据快照和更多复制选项的详细信息。这一切都做完后,检查复制是否生效。分别在主服务器和从服务器上执行一个“select”查询;返回结果应该是相同的。在主服务器上执行insert、update或delete数据,改变“select”返回结果的记录集。等待几秒钟后,重新执行 “select”查询。如果复制功能已经生效,主从服务器上得到结果应该仍然是相同的。
你可能希望使用预共享的RSA密钥来取代必须键入密码。通过使用密钥,你可以设置看门狗shell脚本,来确保SSH通道处于激活状态,而且如果该通道失效,它将自动重启。另外,考虑在主服务器上创建一个Cron守护进程,来使用当前的unix时间戳来更新数据表。从服务器可以增加一个检查该值的 Cron守护进程。如果它滞后当前时间戳太大,复制功能可能已被破坏,管理员应该收到告警邮件。
明确MySQL复制相关的两点重要事项
关于MySQL复制,有两点重要事项需要记住。首先,其主要目的是灾难恢复和高可用性,而非备份。在主服务器上执行的每一条数据更改语句,都将在从服务器端重复执行。因此如果你无意键入了“DELETE FROM mytables”语句,并忘记了使用WHERE子句来限定范围,那么你的数据将会同时在主服务器和从服务器上丢失。
第二件需要记住的事情是,你能够在从服务器上创建、更新和删除数据。我遇到过有的开发者为了实现高可用性,创建了同时运行在主服务器和从服务器上的应用程序,并更新了一个被复制的表,每次都破坏了复制功能的正常运行。
因此你需要在应用程序中加入检查逻辑,检查它是否是运行在一个未激活的从属系统上,不要向被复制的表写数据。然后在它上面进行开发者单元测试。
——51CTO王文文:首先要说明的是,虽然这篇文章所用的是SSH技术,但本人还是推荐用SSL来加密MySQL复制。另外关于原文作者提醒的第二个问题就是,如果开发人员坚持想要连入从服务器测试,那推荐使用主主的双向复制。单向复制的话效率高,而双向复制则有它自己的好处。
发表评论
-
MySQL中GBK与UTF-8的区别
2013-02-11 17:53 1600在MySQL中,如果数据库只需要支持一般中文,数据量很大,性 ... -
MySQL中Utf8_general_ci 和 utf8_unicode_ci的区别
2013-02-11 17:51 1251对中、英文来说没有实质的差别。 utf8_gener ... -
Illegal mix of collations (utf8_general_ci,COERCIBLE) and (latin1_swedish_ci,NUM
2012-11-09 11:13 7451SHOW VARIABLES LIKE 'coll%'; ... -
修改MySQL字符编码
2012-11-07 08:24 1007修改编码其实是为了支持中文~ 1. 编译级别。由于缺乏 ... -
INNER LEFT RIGHT JOIN
2012-09-07 10:35 1145CREATE TABLE `a` ( `a1` VARC ... -
MySQL设置字符集为UTF8(Windows版)
2012-08-07 08:40 8922Windows版MySQL设置字符集全部为utf8的方式 ... -
【绿色MySQL设置技巧】
2012-07-07 21:31 12151. mysql 远程连接数据 ... -
查询表Y中数据不存在与表X中的数据使用Left JOIN
2012-06-26 12:39 1102看看我写的对不对,查询接着显示表Y中的数据8,4,p 表X有 ... -
mysql 性能优化方案
2012-04-28 17:18 1024网上有不少mysql 性能优 ... -
设置自动清理mysql binlog日志和手动删除的方法
2012-04-28 17:17 1648MYSQL主从复制(replication)采用 RBR 模式 ... -
自增序列产生器的实现思路
2012-04-28 11:45 934l 需求 u 实现MySQL自带的字段值自动增 ... -
InnoDB引擎表的主键选型
2012-04-28 11:41 1427【导读】 MySQL采用开放可插入式存储引擎架构,提供 ... -
数据库设计范式
2012-04-14 11:05 1012数据库设计三范式 第一范式(1NF):数据库表中的字段都是单一 ... -
11 条重要的数据库设计规则
2012-04-14 11:03 992在你开始阅读这篇文章 ... -
11 步教你选择最稳定的 MySQL 版本
2012-04-01 19:59 1106MySQL开源数据库有多个重要分支,目前拥有的分支分别为:My ... -
连接MySQL数据库生成JavaBean
2012-03-28 08:28 9390做网站时,感觉数据库的设计比较重要,当花了很多时间设计好数据库 ... -
MySQL 分区
2012-03-06 10:31 1208MYSQL 存储过程,定义告 ... -
POWERDESIGNER 教程
2012-02-26 12:03 1479一)概念数据模型 目标 : 本文主要介绍Powe ... -
powerdesigner 使用的十五个问题
2012-02-24 14:22 1327PowerDesigner的主要作用一般还是数据库建模,并生成 ... -
数据库设计原则
2012-02-21 07:41 1030原始单据与实体之间的关系 可以是一对一、一对多、多对多的关 ...
相关推荐
Win 10 ODBC SSH 协议远程连接 MySQL 3306 在本文中,我们将探讨如何使用 Win 10 自带的 OPENSSH 通过 SSH 协议远程连接 MySQL 服务器, 并使用 ODBC 连接到远程 MySQL 服务器。 SSH 协议 SSH(Secure Shell)是...
SSH2和MySQL是两种在IT领域中广泛应用的技术。SSH2(Secure Shell 2)是一种网络协议,用于在不安全的网络上提供安全的远程登录和其他网络服务。它提供了加密的数据传输,确保了用户身份验证和数据完整性。MySQL则是...
在IT领域,SSH常用于管理员对服务器进行安全的控制和管理,它提供了加密的数据传输,确保了通信的安全性。在给定的“SSH.rar”压缩包中,我们看到涉及的主要技术是SSH、Struts2、Spring和Hibernate,以及MySQL数据库...
这个过程通常涉及几个关键步骤,包括配置SSH密钥对、设置MySQL用户权限以及建立SSH隧道。 1. **SSH密钥对配置**: - **生成密钥对**:在本地主机上,使用`ssh-keygen`命令生成公钥和私钥对。默认情况下,公钥保存...
在IT领域,SSH常用于管理员对服务器进行远程管理,它提供了加密的数据传输,确保了命令行交互、文件传输等操作的安全性。SSH框架通常指的是Spring、Struts和Hibernate的组合,这是一种经典的Java Web开发框架,用于...
这个项目标题“SSH框架+Mysql实现用户登录”表明我们将探讨如何使用这三个框架与MySQL数据库一起构建一个用户登录功能。以下是这些知识点的详细说明: 1. **Struts2**:Struts2是一个基于MVC(Model-View-...
《基于SSH + MySQL的商品管理系统详解》 在信息技术领域,开发一款功能完备的商品管理系统是一项常见的实践任务,尤其对于学习和研究Java Web技术的学生来说,基于SSH(Struts2、Hibernate、Spring)框架加上MySQL...
SSH提供了一种安全的网络通信方式,可以让你通过加密的通道远程访问MySQL服务器,防止数据在传输过程中被窃取或篡改。下面将详细讲解如何进行MySQL教程中的SSH配置。 1. **SSH基础知识**: SSH是一种网络协议,...
在这个项目中,SSH框架与MySQL数据库结合,实现了用户登录注册、分页以及数据的增删改查功能,为初学者提供了一个很好的实践案例。 1. **Struts2**:Struts2作为MVC(模型-视图-控制器)框架,负责处理HTTP请求,...
对于需要远程访问MySQL数据库的情况,使用SSH(Secure Shell)协议进行加密连接是一种非常安全且高效的方式。本文将详细介绍如何设置MySQL通过SSH进行远程登录,帮助读者掌握这一实用技能。 #### 二、基础知识简介 ...
在这个SSH+MySQL整合用户信息实例中,我们将深入探讨如何使用这三个框架来处理用户登录信息的管理。 首先,让我们了解SSH框架的核心组件: 1. **Struts2**:这是一个MVC(Model-View-Controller)框架,负责处理...
在IT领域,SSH常用于管理员对服务器进行远程管理,因为它可以加密所有传输的数据,防止中间人攻击和数据泄露。SSH框架,如Spring、Struts和Hibernate的组合,是一种常用的Java企业级应用开发框架,它提供了丰富的...
《Java学生宿舍设备报修系统:SSH+MySQL的深度解析》 在信息技术高速发展的今天,学生宿舍设备报修系统的建设显得尤为重要,它不仅方便了学生的日常生活,也提升了学校后勤服务的效率。本系统采用SSH(Struts2、...
标题中的"ssh.zip_java web ssh_ssh mysql"表明这是一个与Java Web开发相关的项目,使用了SSH框架(Struts2、Hibernate、Spring)以及MySQL数据库。这个压缩包可能包含了整个项目的源代码和其他配置文件。 SSH框架...
【SSH+MySQL学生成绩管理系统】是一个典型的Java Web应用程序,主要使用了Struts2(S)、Spring(S)和Hibernate(H)这三个框架,以及MySQL作为后端数据库。这个项目对于初学者来说是一个很好的学习资源,它涵盖了...
【学生成绩管理系统(SSH+MYSQL)】是一个基于三大开源框架——Spring、Struts和Hibernate(简称SSH)以及MySQL数据库构建的应用程序。SSH是Java Web开发中常用的MVC(Model-View-Controller)架构模式的实现,而MySQL...
SSH隧道是一种利用SSH协议的安全特性,为网络通信建立加密通道的技术。这里我们需要设置一个端口转发,使得可以从当前服务器通过SSH隧道访问MySQL服务器上的3306端口。命令如下: ```bash ssh -NCPf root@192.168....
根据给定的文件信息,该文档主要讨论了如何设计和开发一个基于权限审计的人事管理系统,该项目采用了Java平台SSH框架、MySQL数据库和JSP+HTML5前端技术进行构建。以下是对文档中提到的知识点进行的详细说明: ### 1...
SSH可以提供加密的网络通信,确保数据传输的安全性,尤其是当数据库不在本地时。开发人员可能需要使用SSH客户端库来建立隧道,然后通过这个隧道进行数据库查询和操作。在Action!中,这可能需要集成如Jsch这样的Java ...
SSH2是SSH协议的第二版本,它提供了更强的安全性和加密性能。这个jar包可能包含了实现SSH2功能所需的各种类库,允许Java应用程序在不安全的网络环境中进行安全通信。 描述中提到了"Mysql,oracle和验证码的jar包",...