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

Category Archives: Database

mysql c# Unable to convert MySQL date/time value to System.DateTime 错误

C#读取MySQL时,如果存在字段类型为date/datetime时的可能会出现以下问题 “Unable to convert MySQL date/time value to System.DateTime” 原因:可能是该字段(date/datetime)的值默认缺省值为:0000-00-00/0000-00-00 00:00:00,这样的数据读出来转换成System.DateTime时就会有问题; 解决办法: 1、将该字段的缺省值设置为null,而不是0000-00-00/0000-00-00 00:00:00的情况; 2、在链接MySQL的字符串中添加:Convert Zero Datetime=True 和 Allow Zero Datetime=True两个属性; 3、将该字段设置成字符串类型; 建议采用方法2,这样可以不用该数据库,也不用该c#代码 转自http://www.cnblogs.com/aeron/archive/2012/08/30/2663908.html

龙生   15 May 2017
View Details

Redis集群搭建与简单使用

介绍安装环境与版本 用两台虚拟机模拟6个节点,一台机器3个节点,创建出3 master、3 salve 环境。 redis 采用 redis-3.2.4 版本。 两台虚拟机都是 CentOS ,一台 CentOS6.5 (IP:192.168.31.245),一台 CentOS7(IP:192.168.31.210) 。 安装过程 1. 下载并解压 1 cd /root/software wget http://download.redis.io/releases/redis-3.2.4.tar.gz tar -zxvf redis-3.2.4.tar.gz 2. 编译安装 1 2 cd redis–3.2.4 make && make install 3. 将 redis-trib.rb 复制到 /usr/local/bin 目录下 1 2 cd src cp redis–trib.rb /usr/local/bin/ 4. 创建 Redis 节点 首先在 192.168.31.245 机器上 /root/software/redis-3.2.4 目录下创建 redis_cluster 目录; 1 mkdir redis_cluster 在 redis_cluster 目录下,创建名为7000、7001、7002的目录,并将 redis.conf 拷贝到这三个目录中 1 2 3 mkdir 7000 7001 7002<br>cp redis.conf redis_cluster/7000 cp redis.conf redis_cluster/7001 cp redis.conf redis_cluster/7002 分别修改这三个配置文件,修改如下内容 1 2 3 4 5 6 7 […]

龙生   15 May 2017
View Details

超强、超详细Redis数据库入门教程

这篇文章主要介绍了超强、超详细Redis入门教程,本文详细介绍了Redis数据库各个方面的知识,需要的朋友可以参考下 1、【redis是什么】 redis是一个开源的、使用C语言编写的、支持网络交互的、可基于内存也可持久化的Key-Value数据库。 redis的官网地址,非常好记,是redis.io。(特意查了一下,域名后缀io属于国家域名,是british Indian Ocean territory,即英属印度洋领地) 目前,Vmware在资助着redis项目的开发和维护。 2、【redis的作者何许人也】 开门见山,先看照片: 是不是出乎了你的意料,嗯,高手总会有些地方与众不同的。 这位便是redis的作者,他叫Salvatore Sanfilippo,来自意大利的西西里岛,现在居住在卡塔尼亚。目前供职于Pivotal公司。 他使用的网名是antirez,如果你有兴趣,可以去他的博客逛逛,地址是antirez.com,当然也可以去follow他的github,地址是http://github.com/antirez。 3、【谁在使用redis】 Blizzard、digg、stackoverflow、github、flickr … 4、【学会安装redis】 Redis可以到官方网站:http://www.redis.io/download下载 Win版下载地址:https://github.com/dmajkic/redis/downloads 从redis.io下载最新版redis-X.Y.Z.tar.gz后解压 解压Redis的tar包很简单: tar -zxvf redis-x.y.z.tar.gz 这样就在当前目录下新建了一个包含发行版源代码的目录,必须cd进入这个目录以继续服务器的编译。 然后进入redis-X.Y.Z文件夹后直接make即可,安装非常简单。 如果make失败,可能是没装装GCC,使用yum install gcc进行安装后再make 如果报错:error: jemalloc/jemalloc.h: No such file or directory,则需要指定MALLOC,如:make MALLOC=libc,这在README 有这个说明,说关于分配器allocator, 如果有MALLOC  这个 环境变量, 会用这个环境变量去建立Redis。而libc 并不是默认的 分配器, 默认的是 jemalloc, 但是如果你没有jemalloc 而只有 libc 当然 make 出错。 所以加这么一个参数,make MALLOC=libc make成功后会在src文件夹下生成几个可执行文件,分别是redis-server、redis-cli、redis-benchmark、redis-check-aof、redis-check-dump等: 复制代码代码如下: $ find . -type f -executable ./redis-benchmark //用于进行redis性能测试的工具 ./redis-check-dump //用于修复出问题的dump.rdb文件 ./redis-cli //redis的客户端 ./redis-server //redis的服务端 ./redis-check-aof //用于修复出问题的AOF文件 ./redis-sentinel //用于集群管理 然后可以使用make install进行安装,会将redis的指令添加到环境变量中,可在任何目录调用 4、【学会启动redis】 启动redis非常简单,直接./redis-server就可以启动服务端了,还可以用下面的方法指定要加载的配置文件,不指定时会加载默认配置文件: 复制代码代码如下: ./redis-server ../redis.conf 默认情况下,redis-server会以非daemon的方式来运行,且默认服务端口为6379。有关作者为什么选择6379作为默认端口,还有一段有趣的典故,英语好的同学可以看看作者这篇博文中的解释。 有关于配置文件的配置说明,详见下文。 一般修改的是:IP,端口,访问密码,日志存放路径,数据库存放路径,日志级别这些 测试启动 redis-cli ping […]

龙生   15 May 2017
View Details

Windows 环境下配置 MySQL Cluster

关于MySql Cluster的详细介绍就不多说了、因为官方网站上有提供下载。本人一度英语文盲、所以看的是中文的文档、下面提供MySql Cluster白皮书的中文文档下载地址 官方提供:http://www.mysql.com/why-mysql/white-papers/mysql-cluster-scaling-web-databases-zh/ 如果官方下载不了:请点击这里 一、准备工作 OK、首先得准备好硬件设施、我这里是3台机器在做群集、结构如下: 管理节点(MGM) 172.16.0.162(db1) SQL节点1(SQL1) 172.16.0.161(db2) SQL节点2(SQL2) 172.16.0.202(db3) 数据节点1(NDBD1) 172.16.0.161(db4) 数据节点2(NDBD2)     172.16.0.202(db4) 这个硬件搞定了、现在搞软件,MySql Cluster的下载地址:http://www.mysql.com/downloads/cluster/ 最好下载7以上的版本、因为性能好嘛,7.2这个版本的新特性上介绍说是:自适应查询本地化(AQL) 复杂连接速度提高70多倍。当然到底是不是这样我没有测试过不清楚。 二、安装软件 解压mysql-cluster-gpl-7.2.9-win32.zip包 Management node的安装配置。 Management node一定要安装在C盘下,并且是以下的目录(这是在运行此节点时报错,说找不到相对应的目录)。在IP为172.16.0.162的机子上 生成c:/mysql/bin、C:/mysql/mysql-cluster(第一次启动后在这个文件夹会生成类似ndb_1_config.bin.1的文件,好像是为了以后启动加载的配置) 和c:/mysql/bin/cluster-logs目录,在下载解压的文件目录mysql/bin中将ndb_mgmd.exe和ndb_mgm.exe复制到172.16.0.162的c:/mysql/bin目录下。 在172.16.0.162的c:/mysql/bin下生成两个文件,my.ini和config.ini。 my.ini的内容为: [plain] view plain copy [mysql_cluster] # Options for management node process config-file=C:/mysql/bin/config.ini config.ini的内容:(注:ID不能从0开始,必须大于0) [html] view plain copy [NDBD DEFAULT] NoOfReplicas=2 DataDir=D:/Program Files/mysqlcluster/datanode/mysql/bin/cluster-data DataMemory=80M IndexMemory=18M [MYSQLD DEFAULT] [NDB_MGMD DEFAULT] [TCP DEFAULT] [NDB_MGMD] ID=1 HostName=172.16.0.162 #管理节点服务器 # Storage Engines DataDir=C:/mysql/bin/cluster-logs [NDBD] ID=2 HostName=172.16.0.161 #MySQL集群db1的IP地址 #DataDir= D:/Program Files/mysqlcluster/datanode/mysql/bin/cluster-data #如果不存在就创建一个 [NDBD] ID=3 HostName=172.16.0.202 #MySQL集群db2的IP地址 #DataDir= D:/Program Files/mysqlcluster/datanode/mysql/bin/cluster-data  #如果不存在就创建一个 [MYSQLD] ID=4 HostName=172.16.0.161 [MYSQLD] ID=5 HostName=172.16.0.202 Data nodes的安装配置 在IP为172.16.0.161 的机子上生成D:/Program Files/mysqlcluster/datanode/mysql/bin、D:/Program Files/mysqlcluster/datanode/mysql/cluster-data、 D:/Program Files/mysqlcluster/datanode/mysql/bin/cluster-data.在下载的的解压文件夹/bin中将ndbd.exe复制到 172.16.0.161 机子的D:/Program Files/mysqlcluster/datanode/mysql /bin目录下, 并在D:/Program Files/mysqlcluster/datanode/mysql/bin目录下生成my.ini文件,文件的内容为: [html] view plain […]

龙生   20 Oct 2016
View Details

如何在Windows系统中配置Mysql群集(Mysql Cluster)

MySQL群集技术在分布式系统中为MySQL数据提供了冗余特性,增强了安全性,使得单个MySQL服务器故障不会对系统产生巨大的负面效应,系统的稳定性得到保障。 Mysql群集(Cluster)简介 MySQL群集需要有一组计算机,每台计算机的角色可能是不一样的。MySQL群集中有三种节点:管理节点、数据节点和SQL节点。群集中的某计算机可能是某一种节点,也可能是两种或三种节点的集合。这三种节点只是在逻辑上的划分,所以它们不一定和物理计算机是一一对应的关系。 管理节点(也可以称管理服务器)主要负责管理数据节点和SQL节点,还有群集配置文件和群集日志文件。它监控其他节点的工作状态,能够启动、关闭或重启某个节点。其他节点从管理节点检索配置数据,当数据节点有新事件时就把事件信息发送给管理节点并写入群集日志。 数据节点用于存储数据。 SQL节点跟一般的MySQL服务器是一样的,我们可以通过它进行SQL操作。 下图中画出了三种群集节点及应用程序间的关系: MySQL Cluster的下载 我们使用的Mysql Server已经不能满足群集的要求,配置群集需要使用MySQL Cluster。 MySQL Cluster支持Linux、Mac OS X、Solaris和Windows操作系统。鸡啄米以Windows系统下的MySQL Cluster版本MySQL Cluster 7.2.5为例说明MySQL Cluster的配置和启动。 MySQL Cluster的下载地址是http://dev.mysql.com/downloads/cluster。如果你的操作系统是32位的,就选择Windows (x86, 32-bit), ZIP Archive下载,大小为228.9M,如果是64位的,就下载Windows (x86, 64-bit), ZIP Archive,大小为232.7M。它们都是免安装的二进制版本。 MySQL Cluster的配置 首先找三台电脑,或者是开三个虚拟机,管理节点部署在一台机子上,其他两台每台都部署一个数据节点和一个SQL节点。鸡啄米这里以两台机子举例,其中一台(IP为192.168.1.10)部署管理节点、数据节点和SQL节点,另一台(IP为192.168.1.20)部署数据节点和SQL节点。 其实最好不要将管理节点跟数据节点部署到一台机子上,因为如果数据节点宕机会导致管理节点也不可用,整个MySQL群集就都不可用了。所以一个MySQL群集理想情况下至少有三台服务器,将管理节点单独放到一台服务器上。鸡啄米暂以两台举例,只是为了说明三种节点的配置启动方法。 1.将上面下载的安装包解压,并改文件夹名为mysql,因为需要多次在命令行中操作,所以名字改短后更容易输入。 2.配置管理节点 在IP为192.168.1.10的主机的C盘中新建文件夹mysql,然后在此文件夹下新建子目录bin和mysql-cluster,再将安装包解压后的mysql\bin中的ndb_mgm.exe和ndb_mgmd.exe拷贝到C:\mysql\bin下。在目录C:\mysql\bin下新建cluster-logs目录、config.ini文件和my.ini文件。 config.ini文件的内容如下: [ndbd default] # Options affecting ndbd processes on all data nodes: NoOfReplicas=2                      # Number of replicas DataDir=c:/mysqlcluster/datanode/mysql/bin/cluster-data     # Directory for each data node’s data files DataMemory=80M    # Memory allocated to data storage IndexMemory=18M   # Memory allocated to index storage # For DataMemory and IndexMemory, we have used the # default […]

龙生   20 Oct 2016
View Details

Windows Server 2003 下配置 MySQL 集群(Cluster)教程

MySQL 群集是 MySQL 适合于分布式计算环境的高可用、高冗余版本。它采用了 NDB Cluster 存储引擎,允许在 1 个群集中运行多个 MySQL 服务器。在 MySQL 5.0 及以上的二进制版本中,以及与最新的 Linux 版本兼容的 RPM 包中提供了该存储引擎。 MySQL 群集是一种技术,该技术允许在无共享的系统中部署“内存中”和“磁盘中”数据库的 Cluster 。通过无共享体系结构,系统能够使用廉价的硬件,而且对软硬件无特殊要求。此外,由于每个组件有自己的内存和磁盘,不存在单点故障。MySQL Cluster 由一组计算机构成,每台计算机上均运行着多种进程,包括 MySQL 服务器,NDB Cluster 的数据节点,管理服务器,以及(可能存在的)专门的数据访问程序。 管理服务器(MGM节点)负责管理 Cluster 配置文件和 Cluster 日志。Cluster 中的每个节点从管理服务器检索配置数据。当数据节点内出现新的事件时,节点将关于这类事件的信息传输到管理服务器,然后,将这类信息写入 Cluster 日志。 目前能够运行 MySQL Cluster 的操作系统有 Linux、Mac OS X 和 Solaris,最新的版本已经支持 Windows 操作系统。 MySQL 群集的数据节点之间的通信是不加密的,并且需要高速的带宽,所以建议把群集建立在一个高速局域网内,不建议跨网段、跨公网的部署这种系统体系。 MySQL 群集分为三种节点:管理节点,数据节点和SQL节点。 管理节点:主要用于管理各个节点,能够通过命令对某个节点进行重启、关闭、启动等操作。也能够监视全部节点的工作状态。 数据节点:主要是对数据的存储,不提供其他的服务。 SQL节点:主要是对外提供SQL功能,类似一台普通的 MySQL Server。 而SQL节点和数据节点可以是同一台机器,也就是说这台机器即是SQL节点也是数据节点。它们只是逻辑关系上的划分,实际部署时,甚至所有的阶段都可以位于同一台物理机器上,只是配置较复杂些。 一、软件下载机器操作环境 配置 MySQL 群集必需使用其群集版本,注意和 MySQL Server 版本的区别。本文以 Windows 平台下的 MySQL 群集版本 MySQL Cluster 7.1.3 为例(截至2010年6月初的最高版本),这是 MySQL Server 5.1 系列版本之一,添加了群集的功能。下载地址为:http://dev.mysql.com/downloads/cluster,选择 mysql-cluster-gpl-noinstall-7.1.3-win32.zip 文件,这是一个 for Windows 32位版本的、免安装的二进制版本。 根据自己的操作系统的位数,也可以选择 64 位版本的。还有一个 27.2M 的 Windows(x86, 32-bit) […]

龙生   20 Oct 2016
View Details

mysql的sql_mode 模式修改 my.cnf

1. sql_mode模式 mysql数据库的中有一个环境变量sql_mode,定义了mysql应该支持的sql语法,数据校验等!我们可以通过以下方式查看当前数据库使用的sql_mode: mysql> select @@sql_mode; +—————————————————————-+ | @@sql_mode                                                     | +—————————————————————-+ | STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION | +—————————————————————-+ 或者通过查看系统变量方式: mysql> show variables like 'sql_mode%'\G; *************************** 1. row *************************** Variable_name: sql_mode         Value: STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION mysql5.0以上版本支持三种sql_mode模式:ANSI、TRADITIONAL和STRICT_TRANS_TABLES。 ANSI模式:宽松模式,对插入数据进行校验,如果不符合定义类型或长度,对数据类型调整或截断保存,报warning警告。 TRADITIONAL模式:严格模式,当向mysql数据库插入数据时,进行数据的严格校验,保证错误数据不能插入,报error错误。用于事物时,会进行事物的回滚。 STRICT_TRANS_TABLES模式:严格模式,进行数据的严格校验,错误数据不能插入,报error错误。 1.2 ANSI模式 mysql> set @@sql_mode=ANSI; Query OK, 0 rows affected (0.00 sec) mysql> create table test(name varchar(4), pass varchar(4)); Query OK, 0 rows affected (0.03 sec) mysql> insert into test values('aaaaa','aaaaa'),('bbbb','bbbb'); Query OK, 2 rows affected, 2 warnings (0.02 sec) Records: 2  Duplicates: 0  Warnings: 2 mysql> show warnings; +———+——+——————————————-+ | Level   | Code | Message                                   | +———+——+——————————————-+ | Warning | 1265 | Data truncated for column 'name' at row 1 | | Warning | 1265 | Data truncated for column 'pass' at row 1 | +———+——+——————————————-+ 2 rows in set (0.00 sec) mysql> select * from test; +——+——+ | name | pass | +——+——+ | aaaa | aaaa | | bbbb | bbbb | +——+——+ 2 rows in set (0.00 sec) 我们可以看到,在ANSI模式下,当我们插入数据时,未满足列长度要求时,数据同样会插入成功,但是对超出列长度的字段进行截断,同时报告warning警告。 1.3 STRICT_TRANS_TABLES模式 mysql> set @@sql_mode=STRICT_TRANS_TABLES; Query OK, 0 rows affected (0.00 sec) mysql> create table test(name varchar(4), pass varchar(4)); Query OK, 0 rows affected (0.02 sec) mysql> insert into test values('aaaaa','aaaaa'),('bbbb','bbbb'); ERROR 1406 (22001): Data too long for column 'name' at row 1 mysql> show errors; +——-+——+——————————————+ | Level | Code | Message                                  | +——-+——+——————————————+ | Error | 1406 | Data too long for column 'name' at row 1 | +——-+——+——————————————+ 1 row in set (0.00 sec) mysql> select * from test; Empty set (0.00 sec) 我们可以看到,在STRICT_TRANS_TABLES模式下,当我们插入数据时,mysql会严格的进行数据的校验,当发现插入列值未满足要求,直接报告error错误,保证了错误数据无法插入到数据库中。 1.3 TRADITIONAL模式 mysql> set @@sql_mode=TRADITIONAL; Query OK, 0 rows affected (0.00 sec) mysql> create table test(name varchar(4), pass varchar(4)); Query OK, 0 rows affected (0.02 sec) mysql> insert into test values('aaaaa','aaaaa'),('bbbb','bbbb'); ERROR 1406 (22001): Data too long for column 'name' at row 1 mysql> show errors; +——-+——+——————————————+ | Level | Code | Message                                  | +——-+——+——————————————+ | Error | 1406 | Data too long for column 'name' at row 1 | +——-+——+——————————————+ 1 row in set (0.00 sec) mysql> select * from test; Empty set (0.00 sec) TRADITIONAL模式与STRICT_TRANS_TABLES模式执行的结果,在这种情况下一致。 mysql> select @@sql_mode\G; *************************** 1. row *************************** @@sql_mode: STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,E RROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER 1 row in set (0.00 sec) 看一下TRADITIONAL模式,我们发现在TRADITIONAL模式下,对所有的事务存储引擎,非事务存储引擎检查,日期类型中的月和日部分不能包含0,不能有0这样的日期(0000-00-00),数据不能除0,禁止grant自动创建新用户等一些校验。 注意:我们这里设置的sql_mode都是session级别的。另外,可以直接修改my.ini文件,找到sql_mode,然后设置新的模式即可! 例如: […]

龙生   19 Oct 2016
View Details

MySQL数据库高并发优化配置

在Apache, PHP, mysql的体系架构中,MySQL对于性能的影响最大,也是关键的核心部分。对于Discuz!论坛程序也是如此,MySQL的设置是否合理优化,直接 影响到论坛的速度和承载量!同时,MySQL也是优化难度最大的一个部分,不但需要理解一些MySQL专业知识,同时还需要长时间的观察统计并且根据经验 进行判断,然后设置合理的参数。 下面我们了解一下MySQL优化的一些基础,MySQL的优化我分为两个部分,一是服务器物理硬件的优化,二是MySQL自身(my.cnf)的优化。 一、服务器硬件对MySQL性能的影响 ① 磁盘寻道能力(磁盘I/O),以目前高转速SCSI硬盘(7200转/秒)为例,这种硬盘理论上每秒寻道7200次,这是物理特性决定的,没有办法改变。 MySQL每秒钟都在进行大量、复杂的查询操作,对磁盘的读写量可想而知。所以,通常认为磁盘I/O是制约MySQL性能的最大因素之一,对于日均访问量 在100万PV以上的Discuz!论坛,由于磁盘I/O的制约,MySQL的性能会非常低下!解决这一制约因素可以考虑以下几种解决方案:  使用RAID-0+1磁盘阵列,注意不要尝试使用RAID-5,MySQL在RAID-5磁盘阵列上的效率不会像你期待的那样快。 ②CPU 对于MySQL应用,推荐使用S.M.P.架构的多路对称CPU,例如:可以使用两颗Intel Xeon 3.6GHz的CPU,现在我较推荐用4U的服务器来专门做数据库服务器,不仅仅是针对于mysql。 ③物理内存对于一台使用MySQL的Database Server来说,服务器内存建议不要小于2GB,推荐使用4GB以上的物理内存,不过内存对于现在的服务器而言可以说是一个可以忽略的问题,工作中遇到了高端服务器基本上内存都超过了16G。 二、 MySQL自身因素 当解决了上述服务器硬件制约因素后,让我们看看MySQL自身的优化是如何操作的。对MySQL自身的优化主要是对其配置文件 my.cnf中的各项参数进行优化调整。下面我们介绍一些对性能影响较大的参数。  由于my.cnf文件的优化设置是与服务器硬件配置息息相关的,因而我们指定一个假想的服务器硬件环境: 下面,我们根据以上硬件配置结合一份已经优化好的my.cnf进行说明: #vim /etc/my.cnf以下只列出my.cnf文件中[mysqld]段落中的内容,其他段落内容对MySQL运行性能影响甚微,因而姑且忽略。  代码如下 [mysqld] port = 3306 serverid = 1 socket = /tmp/mysql.sock skip-locking #避免MySQL的外部锁定,减少出错几率增强稳定性。 skip-name-resolve #禁止MySQL对外部连接进行DNS解析,使用这一选项可以消除MySQL进行DNS解析的时间。但需要注意,如果开启该选项,则所有远程主机连接授权都要使用IP地址方式,否则MySQL将无法正常处理连接请求! back_log = 384 #back_log 参数的值指出在MySQL暂时停止响应新请求之前的短时间内多少个请求可以被存在堆栈中。  如果系统在一个短时间内有很多连接,则需要增大该参数的值,该参数值指定到来的TCP/IP连接的侦听队列的大小。不同的操作系统在这个队列大小上有它自 己的限制。 试图设定back_log高于你的操作系统的限制将是无效的。默认值为50。对于Linux系统推荐设置为小于512的整数。 key_buffer_size = 256M #key_buffer_size指定用于索引的缓冲区大小,增加它可得到更好的索引处理性能。对于内存在4GB左右的服务器该参数可设置为256M或384M。注意:该参数值设置的过大反而会是服务器整体效率降低! max_allowed_packet = 4M thread_stack = 256K table_cache = 128K sort_buffer_size = 6M #查询排序时所能使用的缓冲区大小。注意:该参数对应的分配内存是每连接独占,如果有100个连接,那么实际分配的总共排序缓冲区大小为100 × 6 = 600MB。所以,对于内存在4GB左右的服务器推荐设置为6-8M。 read_buffer_size = 4M #读查询操作所能使用的缓冲区大小。和sort_buffer_size一样,该参数对应的分配内存也是每连接独享。 join_buffer_size = 8M #联合查询操作所能使用的缓冲区大小,和sort_buffer_size一样,该参数对应的分配内存也是每连接独享。 myisam_sort_buffer_size = 64M table_cache = 512 thread_cache_size = 64 query_cache_size […]

龙生   19 Oct 2016
View Details

MySql 申明变量以及赋值

sql server中变量要先申明后赋值: 局部变量用一个@标识,全局变量用两个@(常用的全局变量一般都是已经定义好的); 申明局部变量语法:declare @变量名 数据类型;例如:declare @num int; 赋值:有两种方法式(@num为变量名,value为值) set @num=value;   或   select @num=value; 如果想获取查询语句中的一个字段值可以用select给变量赋值,如下: select @num=字段名 from 表名 where …… mysql中变量不用事前申明,在用的时候直接用“@变量名”使用就可以了。 第一种用法:set @num=1; 或set @num:=1; //这里要使用变量来保存数据,直接使用@num变量 第二种用法:select @num:=1; 或 select @num:=字段名 from 表名 where …… 注意上面两种赋值符号,使用set时可以用“=”或“:=”,但是使用select时必须用“:=赋值”   from:http://www.cnblogs.com/qixuejia/archive/2010/12/21/1913203.html

龙生   11 Oct 2016
View Details
1 23 24 25 44