热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

远程使用MySQLGUI工具_MySQL

远程使用MySQLGUI工具
mysqlGUI

1.MySQL 5.1存储程序和函数对复制起作用吗?

是的,在存储程序和函数中被执行标准行为被从主MySQL服务器复制到从服务器。

2.在主服务器上创建的存储程序和函数可以被复制到从服务器上么?

是的,通过一般DDL语句执行的存储程序和函数,其在主服务器上的创建被复制到从服务器,所以目标将存在两个服务器上。对存储程序和函数的ALTER 和DROP语句也被复制。

3.行为如何在已复制的存储程序和函数里发生?

MySQL纪录每个发生在存储程序和函数里的DML事件,并复制这些单独的行为到从服务器。执行存储程序和函数的切实调用不被复制。

4.对一起使用存储程序,函数和复制有什么特别的安全要求么?

是的,因为一个从服务器有权限来执行任何读自主服务器的二进制日志的语句,指定的安全约束因与复制一起使用的存储程序和函数而存在。如果复制或二进制日志大体上是激活的(为point-in-time恢复的目的),那么MySQL DBA 有两个安全选项可选:
问:把数据从MySQL迁移到Oracle需要注意些什么?

答:以下是MySQL迁到Oracle需要掌握的注意事项,希望对你有所帮助。

1.自动增长的数据类型处理

MYSQL有自动增长的数据类型,插入记录时不用操作此字段,会自动获得数据值。ORACLE没有自动增长的数据类型,需要建立一个自动增长的序列号,插入记录时要把序列号的下一个值赋于此字段。

CREATE SEQUENCE 序列号的名称 (最好是表名+序列号标记) INCREMENT BY 1 START WITH 1 MAXVALUE 99999 CYCLE NOCACHE;

其中最大的值按字段的长度来定, 如果定义的自动增长的序列号 NUMBER(6) , 最大值为999999

INSERT 语句插入这个字段值为: 序列号的名称.NEXTVAL

2. 单引号的处理

MYSQL里可以用双引号包起字符串,ORACLE里只可以用单引号包起字符串。在插入和修改字符串前必须做单引号的替换:把所有出现的一个单引号替换成两个单引号。

3. 翻页的SQL语句的处理

MYSQL处理翻页的SQL语句比较简单,用LIMIT 开始位置, 记录个数;PHP里还可以用SEEK定位到结果集的位置。ORACLE处理翻页的SQL语句就比较繁琐了。每个结果集只有一个ROWNUM字段标明它的位 置, 并且只能用ROWNUM<100, 不能用ROWNUM>80。

以下是经过分析后较好的两种ORACLE翻页SQL语句( ID是唯一关键字的字段名 ):

语句一:

SELECT ID, [FIELD_NAME,...] FROM TABLE_NAME WHERE ID IN ( SELECT ID FROM (SELECT ROWNUM AS NUMROW, ID FROM TABLE_NAME WHERE 条件1 ORDER BY 条件2) WHERE NUMROW > 80 AND NUMROW <100 ) ORDER BY 条件3;

语句二:

SELECT * FROM (( SELECT ROWNUM AS NUMROW, c.* from (select [FIELD_NAME,...] FROM TABLE_NAME WHERE 条件1 ORDER BY 条件2) c) WHERE NUMROW > 80 AND NUMROW <100 ) ORDER BY 条件3;

4. 长字符串的处理

长字符串的处理ORACLE也有它特殊的地方。INSERT和UPDATE时最大可操作的字符串长度小于等于4000个单字节, 如果要插入更长的字符串, 请考虑字段用CLOB类型,方法借用ORACLE里自带的DBMS_LOB程序包。插入修改记录前一定要做进行非空和长度判断,不能为空的字段值和超出长 度字段值都应该提出警告,返回上次操作。

5. 日期字段的处理

MYSQL日期字段分DATE和TIME两种,ORACLE日期字段只有DATE,包含年月日时分秒信息,用当前数据库的系统时间为SYSDATE, 精确到秒,或者用字符串转换成日期型函数TO_DATE(‘2001-08-01’,’YYYY-MM-DD’)年-月-日 24小时:分钟:秒 的格式YYYY-MM-DD HH24:MI:SS TO_DATE()还有很多种日期格式, 可以参看ORACLE DOC.日期型字段转换成字符串函数TO_CHAR(‘2001-08-01’,’YYYY-MM-DD HH24:MI:SS’)

日期字段的数学运算公式有很大的不同。MYSQL找到离当前时间7天用 DATE_FIELD_NAME > SUBDATE(NOW(),INTERVAL 7 DAY)ORACLE找到离当前时间7天用 DATE_FIELD_NAME >SYSDATE - 7;

6. 空字符的处理

MYSQL的非空字段也有空的内容,ORACLE里定义了非空字段就不容许有空的内容。按MYSQL的NOT NULL来定义ORACLE表结构, 导数据的时候会产生错误。因此导数据时要对空字符进行判断,如果为NULL或空字符,需要把它改成一个空格的字符串。

7. 字符串的模糊比较

MYSQL里用 字段名 like &#39;%字符串%&#39;,ORACLE里也可以用 字段名 like &#39;%字符串%&#39; 但这种方法不能使用索引, 速度不快,用字符串比较函数 instr(字段名,&#39;字符串&#39;)>0 会得到更精确的查找结果。

8. 程序和函数里,操作数据库的工作完成后请注意结果集和指针的释放。
1.MySQL 5.1存储程序和函数对复制起作用吗?

是的,在存储程序和函数中被执行标准行为被从主MySQL服务器复制到从服务器。

2.在主服务器上创建的存储程序和函数可以被复制到从服务器上么?

是的,通过一般DDL语句执行的存储程序和函数,其在主服务器上的创建被复制到从服务器,所以目标将存在两个服务器上。对存储程序和函数的ALTER 和DROP语句也被复制。

3.行为如何在已复制的存储程序和函数里发生?

MySQL纪录每个发生在存储程序和函数里的DML事件,并复制这些单独的行为到从服务器。执行存储程序和函数的切实调用不被复制。

4.对一起使用存储程序,函数和复制有什么特别的安全要求么?

是的,因为一个从服务器有权限来执行任何读自主服务器的二进制日志的语句,指定的安全约束因与复制一起使用的存储程序和函数而存在。如果复制或二进制日志大体上是激活的(为point-in-time恢复的目的),那么MySQL DBA 有两个安全选项可选:
问:把数据从MySQL迁移到Oracle需要注意些什么?

答:以下是MySQL迁到Oracle需要掌握的注意事项,希望对你有所帮助。

1.自动增长的数据类型处理

MYSQL有自动增长的数据类型,插入记录时不用操作此字段,会自动获得数据值。ORACLE没有自动增长的数据类型,需要建立一个自动增长的序列号,插入记录时要把序列号的下一个值赋于此字段。

CREATE SEQUENCE 序列号的名称 (最好是表名+序列号标记) INCREMENT BY 1 START WITH 1 MAXVALUE 99999 CYCLE NOCACHE;

其中最大的值按字段的长度来定, 如果定义的自动增长的序列号 NUMBER(6) , 最大值为999999

INSERT 语句插入这个字段值为: 序列号的名称.NEXTVAL

2. 单引号的处理

MYSQL里可以用双引号包起字符串,ORACLE里只可以用单引号包起字符串。在插入和修改字符串前必须做单引号的替换:把所有出现的一个单引号替换成两个单引号。

3. 翻页的SQL语句的处理

MYSQL处理翻页的SQL语句比较简单,用LIMIT 开始位置, 记录个数;PHP里还可以用SEEK定位到结果集的位置。ORACLE处理翻页的SQL语句就比较繁琐了。每个结果集只有一个ROWNUM字段标明它的位 置, 并且只能用ROWNUM<100, 不能用ROWNUM>80。

以下是经过分析后较好的两种ORACLE翻页SQL语句( ID是唯一关键字的字段名 ):

语句一:

SELECT ID, [FIELD_NAME,...] FROM TABLE_NAME WHERE ID IN ( SELECT ID FROM (SELECT ROWNUM AS NUMROW, ID FROM TABLE_NAME WHERE 条件1 ORDER BY 条件2) WHERE NUMROW > 80 AND NUMROW <100 ) ORDER BY 条件3;

语句二:

SELECT * FROM (( SELECT ROWNUM AS NUMROW, c.* from (select [FIELD_NAME,...] FROM TABLE_NAME WHERE 条件1 ORDER BY 条件2) c) WHERE NUMROW > 80 AND NUMROW <100 ) ORDER BY 条件3;

4. 长字符串的处理

长字符串的处理ORACLE也有它特殊的地方。INSERT和UPDATE时最大可操作的字符串长度小于等于4000个单字节, 如果要插入更长的字符串, 请考虑字段用CLOB类型,方法借用ORACLE里自带的DBMS_LOB程序包。插入修改记录前一定要做进行非空和长度判断,不能为空的字段值和超出长 度字段值都应该提出警告,返回上次操作。

5. 日期字段的处理

MYSQL日期字段分DATE和TIME两种,ORACLE日期字段只有DATE,包含年月日时分秒信息,用当前数据库的系统时间为SYSDATE, 精确到秒,或者用字符串转换成日期型函数TO_DATE(‘2001-08-01’,’YYYY-MM-DD’)年-月-日 24小时:分钟:秒 的格式YYYY-MM-DD HH24:MI:SS TO_DATE()还有很多种日期格式, 可以参看ORACLE DOC.日期型字段转换成字符串函数TO_CHAR(‘2001-08-01’,’YYYY-MM-DD HH24:MI:SS’)

日期字段的数学运算公式有很大的不同。MYSQL找到离当前时间7天用 DATE_FIELD_NAME > SUBDATE(NOW(),INTERVAL 7 DAY)ORACLE找到离当前时间7天用 DATE_FIELD_NAME >SYSDATE - 7;

6. 空字符的处理

MYSQL的非空字段也有空的内容,ORACLE里定义了非空字段就不容许有空的内容。按MYSQL的NOT NULL来定义ORACLE表结构, 导数据的时候会产生错误。因此导数据时要对空字符进行判断,如果为NULL或空字符,需要把它改成一个空格的字符串。

7. 字符串的模糊比较

MYSQL里用 字段名 like &#39;%字符串%&#39;,ORACLE里也可以用 字段名 like &#39;%字符串%&#39; 但这种方法不能使用索引, 速度不快,用字符串比较函数 instr(字段名,&#39;字符串&#39;)>0 会得到更精确的查找结果。

8. 程序和函数里,操作数据库的工作完成后请注意结果集和指针的释放。

任何想创建存储程序的用户必须被赋予SUPER权限。

作为选择,一个DBA可以设置log_bin_trust_routine_creators系统变量为1,它将会允许有标准CREATE ROUTINE权限的人来创建一个存储程序和函数。

5.对复制存储程序和函数的行为有什么限制?

嵌入到存储程序中的不确定(随机)或时基行不能适当地复制。随机产生的结果,仅因其本性,是你可预测的和不能被确实克隆的。因此,复制到从服务器的随机行为将不会镜像那些产生在主服务器上的。注意, 声明存储程序或函数为DETERMINISTIC或者在log_bin_trust_routine_creators中设置系统变量为0 将会允许随即值操作被调用。

此外,时基行为不能在从服务器上重新产生,因为在存储程序中通过对复制使用的二进制日志来计时这样的时基行为是不可重新产生的,因为该二进制日志仅纪录DML事件且不包括计时约束。

最后,在大型DML行为(如大批插入)中非交互表发生错误,该非交互表可能经历复制,在复制版的非交互表中主服务器可以被部分地从DML行为更新。但是因为发生的那个错误,对从服务器没有更新。 对函数的DML行为,工作区将被用IGNORE关键词来执行,以便于在主服务器上导致错误的更新被忽略,并且不会导致错误的更新被复制到从服务器。(
WebjxCom提示:目前大部分数据库驱动的网络应用都把MySQL做为首选数据库,所以MySQL在很多网络服务器上都有应用。尽管MySQL命令语句工具非常有用,但是如果你没有熟练的掌握SQL语法,工作起来就会耗费相当多的时间。于是phpMyAdmin这样的工具应运而生。 MySQL开发者们自行开发出了能


目前大部分数据库驱动的网络应用都把MySQL做为首选数据库,所以MySQL在很多网络服务器上都有应用。尽管MySQL命令语句工具非常有用,但是如果你没有熟练的掌握SQL语法,工作起来就会耗费相当多的时间。于是phpMyAdmin这样的工具应运而生。

MySQL开发者们自行开发出了能够连接本地或者远程MySQL数据库的GUI工具。这些工具包括MySQL管理员(MySQL Administrator),MySQL Query浏览器(MySQL Query Browser)以及MySQL 工作台(MySQL Workbench)等,都是相当出色的能够轻松操作和创建MySQL数据库的图形化工具。

使用这些工具操作远程数据库时有一个问题,它们经常要求MySQL 在网络界面进行响应;大部分MySQL管理员只允许MySQL对localhost或socket进行响应,而拒绝远程连接。这是一种非常有效的安全措施;但是在这种情况下,如果不施展一些手段就无法远程使用这些GUI工具。在这种情况下,使用ssh来暗中进行连接是一个非常不错的方法。因为这样做不仅能够进行很严格的认证和加密,同时还不会破坏只允许MySQL相应本地连接的规则。

首先,要使MySQL只响应localhost(在默认情况下,MySQL只响应对连接本地socket的要求),需要调整设置让MySQL允许网络连接,然后重启服务器。MySQL应该只响应loopback上的连接,或者本地及网络界面上的连接。然后,编辑发出连接要求的主机上的~/.ssh/config文件,然后插入以下内容:

Host remotesql
?Hostname webserver.domain.com
?User joe
?LocalForward *:13306 localhost:3306

这样就会以用户joe的身份连接到webserver.domain.com,并将本地系统上13306端口推送到webserver.domain.com上的3306端口(标准MySQL端口)。请注意,我们并没有将推送端口限制在本地设备的本地界面上,而是针对全部界面;也就是说我们能够连接到me.domain.com端口13306(假设me.domain.com是本地工作站的名称),除了连接本地主机端口13306(这点非常重要,因为GUI工具将会尝试通过socket连接localhost,而这是我们所不希望发生的)。现在可以执行以下命令来启动连接。

$ ssh -f -N remotesql

最后,启动MySQL管理器,让其使用你的信用状与13306端口上的me.domain.com进行连接。如果出现"访问被拒绝“的错误,请检查远程数据库上的许可信息。为了进行正确的连接,可能必须对user@localhost.localdomain进行许可。

此时就可以实现通过本地网络上的任一系统(除非防火墙的规则禁止使用本地设备)跨过互联网进行安全的连接,至此,我们就可以通过本地MySQL命令语句对远程数据库进行具体的操作了。

$ mysql -u root -p -h me.domain.com -P 13306

任何想创建存储程序的用户必须被赋予SUPER权限。

作为选择,一个DBA可以设置log_bin_trust_routine_creators系统变量为1,它将会允许有标准CREATE ROUTINE权限的人来创建一个存储程序和函数。

5.对复制存储程序和函数的行为有什么限制?

嵌入到存储程序中的不确定(随机)或时基行不能适当地复制。随机产生的结果,仅因其本性,是你可预测的和不能被确实克隆的。因此,复制到从服务器的随机行为将不会镜像那些产生在主服务器上的。注意, 声明存储程序或函数为DETERMINISTIC或者在log_bin_trust_routine_creators中设置系统变量为0 将会允许随即值操作被调用。

此外,时基行为不能在从服务器上重新产生,因为在存储程序中通过对复制使用的二进制日志来计时这样的时基行为是不可重新产生的,因为该二进制日志仅纪录DML事件且不包括计时约束。

最后,在大型DML行为(如大批插入)中非交互表发生错误,该非交互表可能经历复制,在复制版的非交互表中主服务器可以被部分地从DML行为更新。但是因为发生的那个错误,对从服务器没有更新。 对函数的DML行为,工作区将被用IGNORE关键词来执行,以便于在主服务器上导致错误的更新被忽略,并且不会导致错误的更新被复制到从服务器。(

推荐阅读
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • PHP设置MySQL字符集的方法及使用mysqli_set_charset函数
    本文介绍了PHP设置MySQL字符集的方法,详细介绍了使用mysqli_set_charset函数来规定与数据库服务器进行数据传送时要使用的字符集。通过示例代码演示了如何设置默认客户端字符集。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文由编程笔记小编整理,介绍了PHP中的MySQL函数库及其常用函数,包括mysql_connect、mysql_error、mysql_select_db、mysql_query、mysql_affected_row、mysql_close等。希望对读者有一定的参考价值。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • 众筹商城与传统商城的区别及php众筹网站的程序源码
    本文介绍了众筹商城与传统商城的区别,包括所售产品和玩法不同以及运营方式不同。同时还提到了php众筹网站的程序源码和方维众筹的安装和环境问题。 ... [详细]
  • 如何在php中将mysql查询结果赋值给变量
    本文介绍了在php中将mysql查询结果赋值给变量的方法,包括从mysql表中查询count(学号)并赋值给一个变量,以及如何将sql中查询单条结果赋值给php页面的一个变量。同时还讨论了php调用mysql查询结果到变量的方法,并提供了示例代码。 ... [详细]
  • Java学习笔记之使用反射+泛型构建通用DAO
    本文介绍了使用反射和泛型构建通用DAO的方法,通过减少代码冗余度来提高开发效率。通过示例说明了如何使用反射和泛型来实现对不同表的相同操作,从而避免重复编写相似的代码。该方法可以在Java学习中起到较大的帮助作用。 ... [详细]
  • 恶意软件分析的最佳编程语言及其应用
    本文介绍了学习恶意软件分析和逆向工程领域时最适合的编程语言,并重点讨论了Python的优点。Python是一种解释型、多用途的语言,具有可读性高、可快速开发、易于学习的特点。作者分享了在本地恶意软件分析中使用Python的经验,包括快速复制恶意软件组件以更好地理解其工作。此外,作者还提到了Python的跨平台优势,使得在不同操作系统上运行代码变得更加方便。 ... [详细]
  • LVS实现负载均衡的原理LVS负载均衡负载均衡集群是LoadBalance集群。是一种将网络上的访问流量分布于各个节点,以降低服务器压力,更好的向客户端 ... [详细]
  • Django + Ansible 主机管理(有源码)
    本文给大家介绍如何利用DjangoAnsible进行Web项目管理。Django介绍一个可以使Web开发工作愉快并且高效的Web开发框架,能够以最小的代价构建和维护高 ... [详细]
author-avatar
日本化妆品专卖_703
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有