一切福田,不離方寸,從心而覓,感無不通。

Category Archives: Database

MySQL存储过程中游标循环的跳出和继续操作示例

最近遇到这样的问题,在MySQL的存储过程中,游标操作时,需要执行一个conitnue的操作.众所周知,MySQL中的游标循环操作常用的有三种,LOOP,REPEAT,WHILE.三种循环,方式大同小异.以前从没用过,所以记下来,方便以后查阅. 1.REPEAT 复制代码代码如下: REPEAT Statements; UNTIL expression END REPEAT demo DECLARE num INT; DECLARE my_string  VARCHAR(255); REPEAT SET  my_string =CONCAT(my_string,num, , ); SET  num = num +1; UNTIL num <5 END REPEAT; 2.WHILE  复制代码代码如下: WHILE expression DO Statements; END WHILE demo DECLARE num INT; DECLARE my_string  VARCHAR(255); SET num =1; SET str = ; WHILE num  < span>10DO SET  my_string =CONCAT(my_string,num, , ); SET  num = num +1; END WHILE; 3.LOOP(这里面有非常重要的ITERATE,LEAVE) 复制代码代码如下: DECLARE num  INT; DECLARE str  VARCHAR(255); SET num =1; SET my_string = ; loop_label:  LOOP IF  […]

龙生   15 May 2017
View Details

MySQL字符串连接函数

MySQL中 concat 函数 使用方法: CONCAT(str1,str2,…) 返回结果为连接参数产生的字符串。如有任何一个参数为NULL ,则返回值为 NULL。 注意: 如果所有参数均为非二进制字符串,则结果为非二进制字符串。 如果自变量中含有任一二进制字符串,则结果为一个二进制字符串。 一个数字参数被转化为与之相等的二进制字符串格式;若要避免这种情况,可使用显式类型 cast, 例如: SELECT CONCAT(CAST(int_col AS CHAR), char_col) MySQL的concat函数可以连接一个或者多个字符串,如 mysql> select concat( 10 ); + + | concat( 10 ) | + + | 10   | + + 1 row in set (0.00 sec) mysql> select concat( 11 , 22 , 33 ); + + | concat( 11 , 22 , 33 ) | + + | 112233 | + + 1 row in set (0.00 sec) MySQL的concat函数在连接字符串的时候,只要其中一个是NULL,那么将返回NULL mysql> select concat( 11 , 22 ,null); + + […]

龙生   15 May 2017
View Details

MySQL 数据库操作,将查询结果插入新表

做项目,需要测试数据,而现成的其他表有类似数据,为了方便,就将想将查询结果直接放到新表里。具体操作如下: INSERT INTO TableA(c1,c2,c3) SELECT TableB.c1,TableB.c2,TableB.c3 FROM TableB 参考:http://wenda.so.com/q/1372470880061763 如果表存在: insert into tab1 select * from tab2; 如果表不存在: create table tab1 as select * from tab2; from:http://blog.csdn.net/chark_leo/article/details/39525633

龙生   15 May 2017
View Details

MySQL各版本的区别

MySQL 的官网下载地址:http://www.mysql.com/downloads/ 在这个下载界面会有几个版本的选择。 1. MySQL Community Server 社区版本,开源免费,但不提供官方技术支持。 2. MySQL Enterprise Edition 企业版本,需付费,可以试用30天。 3. MySQL Cluster 集群版,开源免费。可将几个MySQL Server封装成一个Server。 4. MySQL Cluster CGE 高级集群版,需付费。 5. MySQL Workbench(GUITOOL)一款专为MySQL设计的ER/数据库建模工具。它是著名的数据库设计工具DBDesigner4的继任者。MySQLWorkbench又分为两个版本,分别是社区版(MySQL Workbench OSS)、商用版(MySQL WorkbenchSE)。 MySQL Community Server是开源免费的,这也是我们通常用的MySQL的版本。根据不同的操作系统平台细分为多个版本,下面我们以windows平台为例来说明。 例如下载mysql5.5.19的界面如下: 说明: 我们选择Generally Available(GA)Release 去下载。GA是指软件的通用版本,一般指正式发布的版本。 mysql-5.5.19-win32.msi,windows安装包,msi安装包是用msiexec安装完成的。windows下双击根据向导安装即可,简单方便。 mysql-5.5.19.zip,这个是windows源文件,需要编译。 mysql-5.5.19-win32.zip,这个文件解包后即可使用,是编译好的windows32位MySQL。需要手工配置。 带 "winx64" 的则是对应的64位版本,在64位操作系统下使用。 一般做后台开发,我们就下载mysql-5.5.19-win32.msi。 例如下载mysql5.1.60的界面如下: 说明: 选择Generally Available(GA)Release 去下载。GA 是指软件的通用版本,一般指正式发布的版本。 “essentials” 是指精简版,不包含 embedded server and benchmarksuite,有自动安装程序和配置向导,没有MySQL文档。 “noinstall” 是指非安装的压缩包的。包含 embedded server and benchmarksuite,没有自动安装程序和配置向导,需手动安装配置,有MySQL文档。 mysql-essential-5.1.60-win32.msi 是精简版,如果只需要mysql服务,就选择此版本。 mysql-5.1.60-win32.msi 是完整版,包含安装程序和配置向导,有MySQL文档。 mysql-noinstall-5.1.60-win32.zip是非安装的zip压缩包,没有自动安装程序和配置向导,需手动安装配置,有MySQL文档。 mysql-5.1.60.zip 是用于windows的Mysql源码压缩包 带 "winx64" 的则是对应的64位版本,在64位操作系统下使用。 一般做后台开发,我们就下载mysql-essential-5.1.60-win32.msi 即可。   什么是MySQL企业版(MySQL Enterprise)? MySQL企业版是一个已被证明和值得信赖的平台,这个平台包含了MySQL企业级数据库软件,、监控与咨询服务,以及确保您的业务达到最高水平的可靠性、安全性和实时性的技术支持。 MySQL企业版包括: MySQL企业级服务器,这是全球最流行的开源数据库最可靠、最安全的最新版本。 MySQL企业级系统监控工具,它可以提供监控和自动顾问服务,以此来帮助您消除安全上的隐患、改进复制、优化性能等。 MySQL技术支持,可以使您最棘手的技术问题得到快速解答。 MySQL咨询支持,只有购买了MySQL企业级银质或金质服务的客户才能得到此项支持。MySQL技术支持团队将为您的系统提供针对性的建议,告诉您如何恰当地设计和调整您的MySQL服务器、计划、查询和复制设定,以获得更好的性能。 什么是MySQL社 区版(MySQL Community Server)? MySQL公司一直专注于向开源社区发布全球最流行的开源数据库——MySQL […]

龙生   15 May 2017
View Details

查看binlog文件的2种方式

1.使用show binlog events 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 a.获取binlog文件列表 mysql> show binary logs; +—————————+—————–+ | Log_name         | File_size | +—————————+—————–+ | mysql–bin.000005 |      1288 | | mysql–bin.000006 |       120 | +—————————+—————–+ mysql> b.查看当前正在写入的binlog文件 mysql> show master status\G; *************************** […]

龙生   15 May 2017
View Details

Mysql初始化root密码和允许远程访问

mysql默认root用户没有密码,输入mysql –u root 进入mysql 1、初始化root密码 进入mysql数据库 1 mysql>update user set password=PASSWORD(‘123456’) where User=’root'; 2、允许mysql远程访问,可以使用以下三种方式: a、改表。 1 2 3 4 mysql -u root –p mysql>use mysql; mysql>update user set host = '%' where user = 'root'; mysql>select host, user from user; b、授权。 例如,你想root使用123456从任何主机连接到mysql服务器。 1 mysql>GRANT ALL PRIVILEGES ON *.* TO 'root’@’%' IDENTIFIED BY '123456' WITH GRANT OPTION; 如果你想允许用户jack从ip为10.10.50.127的主机连接到mysql服务器,并使用654321作为密码 1 2 mysql>GRANT ALL PRIVILEGES ON *.* TO 'jack’@’10.10.50.127’ IDENTIFIED BY '654321'WITH GRANT OPTION; mysql>FLUSH RIVILEGES c:在安装mysql的机器上运行: 1 2 3 4 5 6 7 8 //进入MySQL服务器 d:\mysql\bin\>mysql -h localhost -u root […]

龙生   15 May 2017
View Details

Mysql Cluster水平扩展-添加数据节点

一:实验环境   已搭建好MySQL cluster(一个管理节点,2个sql节点及2个数据节点),搭建步骤请参考:http://blog.csdn.net/yabingshi_tech/article/details/47952135,现要在此基础上添加 192.168.6.70,192.168.6.71作为数据节点。(由于副本集参数已经配置成了2,所以必须一次添加2个数据节点) 二:实验步骤 2.1:解压cluster安装包 tar -xvf mysql-cluster-gpl-7.2.15-linux2.6-x86_64.tar.gz mv mysql-cluster-gpl-7.2.15-linux2.6-x86_64 /usr/local/mysql   2.2:修改管理节点配置文件 cd /data/mysql/mysql-cluster   修改全局配置文件vi mgmd.cnf,修改后的配置文件如下: [plain] view plain copy [ndbd default] NoOfReplicas=2 DataMemory=80M IndexMemory=18M [ndb_mgmd] hostname=192.168.6.66 datadir=/data/mysql/mysql-cluster [ndbd] hostname=192.168.6.68 datadir=/usr/local/mysql/data [ndbd] hostname=192.168.6.69 datadir=/usr/local/mysql/data [ndbd] hostname=192.168.6.70 datadir=/usr/local/mysql/data [ndbd] hostname=192.168.6.71 datadir=/usr/local/mysql/data [mysqld] hostname=192.168.6.66 [mysqld] hostname=192.168.6.67     2.3:重新启动管理节点服务   2.3.1 停止管理节点   ndb_mgm> 1 stop Node 1 has shutdown. Disconnecting to allow Management Server to shutdown   停止管理节点不影响sql节点的正常访问。   2.3.2 重新加载配置文件 [root@ser6-66 mysql-cluster]# ndb_mgmd -f mgmd.cnf  initial MySQL Cluster Management Server mysql-5.5.35 ndb-7.2.15 /* 用initial或者reload参数重新加载 如果只在配置文件中新增一个数据节点,会报错: [root@ser6-66 mysql-cluster]#  ndb_mgmd -f mgmd.cnf  initial MySQL Cluster Management Server mysql-5.5.35 ndb-7.2.15 2015-08-18 16:18:37 [MgmtSrvr] ERROR      at line 38: Nodegroup 1 has 1 members, NoOfReplicas=2 2015-08-18 16:18:37 [MgmtSrvr] ERROR      Could not load configuration from  mgmd.cnf */   2.3.4 查看集群状态   [plain] view plain copy [root@ser6-66 mysql-cluster]# ndb_mgm 192.168.6.66  NDB Cluster   Management Client ndb_mgm> show Connected to Management Server at: 192.168.6.66:1186 Cluster Configuration [ndbd(NDB)]4 node(s) id=2@192.168.6.68  (mysql-5.5.35 ndb-7.2.15, Nodegroup: 0) id=3@192.168.6.69  (mysql-5.5.35 ndb-7.2.15, Nodegroup: 0, *) id=4 (not connected, accepting connect from 192.168.6.70) id=5 (not connected, accepting connect from 192.168.6.71) [ndb_mgmd(MGM)]1 node(s) id=1@192.168.6.66  (mysql-5.5.35 ndb-7.2.15) […]

龙生   15 May 2017
View Details

详解MySQL Cluster管理结点的config.ini配置文件

一、定义MySQL Cluster的TCP/IP连接 TCP/IP是MySQL集群用于建立连接的默认传输协议,正常情况下不需要定义连接。可使用“[TCP DEFAULT]”或“[TCP]”进行定义。 1. SendBufferMemory TCP传输缓存。默认值为 256KB。 2. SendSignalId 通过网络传输消息ID。默认禁止该特性(取值: Y/N或1/0)。 3. Checksum 启用该参数将在所有消息置于发送缓冲之前,为所有参数计算校验和。默认禁止该特性(取值: Y/N或1/0)。 4. ReceiveBufferMemory 指定从TCP/IP Socket接收数据时所使用的缓冲大小。几乎不需要更改该参数的默认值,默认值为64KB。 二、定义数据结点默认行为 NoOfReplicas为必要参数,使用“[NDBD DEFAULT]”进行定义。 1. NoOfReplicas 定义集群中每个表保存的拷贝数,另外还指定结点组的大小。结点组指保存相同信息的结点集合。通常情况下不需要为该参数指定值。NoOfReplicas没有默认值,最大的可能值为 4。 三、定义管理服务器(MGM) 用于配置管理服务器的行为。下面的参数均可以被忽略,如果是这样,将使用其默认值。如果没有定义ExecuteOnComputer或HostName,则会指定为localhost。可使用“[NDB_MGMD]”定义单个管理结点的行为,也可使用“[NDB_MGMD DEFAULT]”定义多个管理结点的默认行为。 1. NodeId 集群中结点的唯一标识,取值 1~63。 2. HostName 指定结点主机名或IP。 3. ExecuteOnComputer 引用在“[COMPUTER]”部分中定义的计算机之一。 4. PortNumber 管理服务器监听端口(默认值: 2202)。 5. LogDestination 结点日志出处理方式,可取下述值: 5.1. CONSOLE 将日志输出到标准输出设备(stdout)。 5.2. SYSLOG:facility=syslog 将日志发送到syslog(系统日志)软设备,可能值: auth, authpriv, cron, daemon, ftp, kern, lpr, mail, news, syslog , user, uucp, local0, local12~7 5.3. FILE:filename=/var/log/mgmd.log,maxsize=1000000,maxfiles=6 讲日志输出到文件,可指定一下值: filename:日志文件名称。 maxsize:日志文件最大尺寸,大于该尺寸时自动创建新日志文件。 maxfiles:日志文件最大数量。 6. ArbitrationRank 指定哪个结点扮演决策角色,只有MGM结点和SQL结点可以使用(默认值:1)。通常情况下,应将值设为 1,并将所有SQL结点设为 0,以MGM服务器作为决策程序。可取下述值之一: 0:该结点永远不用作决策。 1:该结点具有高优先级。 2:该结点具有低有限级。 7. ArbitrationDelay 指定管理服务器对决策请求的延迟时间,毫秒为单位,默认为 0。通常情况下不需要改变它。 8. DataDir […]

龙生   15 May 2017
View Details

MySQL Cluster 详细配置文件(config.ini)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 […]

龙生   15 May 2017
View Details
1 22 23 24 44