加大MySql的最大连接数

 更新时间:2016年11月25日 16:44  点击:1579
MAX QUERIES PER HOUR --- 每小时的最大查询次数
MAX UPDATES PER HOUR  --- 每小时的最大更新次数
MAX CONNECTIONS PER HOUR --- 每小时最多连接次数
在Win下可以修改my.ini:
4.0及一下版本在[mysqld]所属下插入
set-variable=max_connections=1000(或更多) 即可。
4.1以上修改max_connections的属性
max_connections=1000(或更多) 即可。
在Unix/Linux下:
mysql的最大连接数默认是100, 这个数值对于并发连接很多的数据库应用是远远不够的,可以把它适当调大
whereis safe_mysqld
找到safe_mysqld的位置,然后编辑它,找到mysqld启动的那两行,在后面加上参数
-O max_connections=1000
例如
--- safe_mysqld.orig Mon Sep 25 09:34:01 2000
+++ safe_mysqld Sun Sep 24 16:56:46 2000
@@ -109,10 +109,10 @@
if test "$#" -eq 0
then
nohup $ledir/mysqld --basedir=$MY_BASEDIR_VERSION --datadir=$DATADIR
- --skip-locking >> $err_log 2>&1
+ --skip-locking -O max_connections=1000 >> $err_log 2>&1
else
nohup $ledir/mysqld --basedir=$MY_BASEDIR_VERSION --datadir=$DATADIR
- --skip-locking "$@" >> $err_log 2>&1
+ --skip-locking "$@" -O max_connections=1000 >> $err_log 2>&1
fi
if test ! -f $pid_file # This is removed if normal shutdown
then
然后关闭mysql重启它,用
/mysqladmin所在路径/mysqladmin -uroot -p variables
输入root数据库账号的密码后可看到
| max_connections | 1000 |
即新改动已经生效。
注:
在mysql 4.07版本中,在safe_mysqld文件的第274和276行
 


基本知识
1. SQL Server7 的 DeskTop 版中没有全文本检索。
2. 一个表只能有一个全文本检索。
3. 被检索的表必须有单列的唯一索引。
4. 全文本的索引存储在文件系统中,而非数据库中。
5. 更新全文本索引的过程比常规索引要耗时,而且也不象常规索引那样可以由数据库系统立即更新。
6. 全文本索引包含在全文本目录( Full-Text Catalog )中,每个数据库可以包含一个或多个目录,但一个目录不能属于多个数据库。
7. 全文本检索只能在真正的表上创建,不能是视图,系统表,临时表。
8. 全文本检索会忽略某些噪音字( noise words),比如英文的 a,the,and,中文的'和','是'等等。
9. 如果在查询中包含 noise words ,就会引发错误,在应用程序中应去除这些 noise words。
启动全文本检索服务。
方法A:在企业管理器中打开 Support Services 文件夹,在 Full-Text Search 的右键菜单中选择 Start。
方法B:在 SQL Server Service Manager 的 Services 下拉列表中选择 Microsoft Search,并单击 Start/Continue 按钮。
方法C:使用 net start mssearch 的命令行方式。
使用全文本检索向导( Full-Text Indexing Wizard )。
step1. 选择被检索的数据库,在 Tools 的菜单中,选择 Full-text Indexing,进入欢迎( Welcome )的屏幕,单击 next。
step2. 选择被检索的表,单击 next。
step3. 选择唯一索引,单击 next。
step4. 选择被索引的列,单击 Add,该列显示在右栏中。单击 next。
step5. 选择目录(选择已存在的目录,或创建新的目录),单击 next。
step6. 选择或创建 population schedule(可选项),单击 next。
step7. 单击 finish。
使用 SQL-DMO (以 VB 为例)
step1. 在工程的引用中选择 Microsoft SQLDMO Object Library。
step2. 创建 SQLServer 对象。
Dim objSQL As New SQLDMO.SQLServer
objSQL.Connect "localhost", "sa", ""
step3. 创建新的目录,并加入到被索引的数据库目录中。
Dim objCatalog As New SQLDMO.FullTextCatalog
'使 pubs 为全文本检索的数据库
objSQL.Databases("pubs").EnableFullTextCatalogs
'创建新的目录
objCatalog.Name = "ftcPubsTest"
'将新目录加入到目录集合中
objSQL.Databases("pubs").FullTextCatalogs.Add objCatalog
1. 分号的例外

 对于 MySQL ,第一件你必须牢记的是它的每一行命令都是用分号 (;) 作为结束的,但……没有完全绝对的事,在这儿也是一样,当一行 MySQL 被插入在 PHP 代码中时,最好把后面的分号省略掉,例如:
mysql_query ("INSERT INTO tablename (first_name, last_name)
VALUES ('$first_name', '$last_name')
");
 这是因为 PHP 也是以分号作为一行的结束的,额外的分号有时会让 PHP 的语法分析器搞不明白,所以还是省略掉的好。在这种情况下,虽然省略了分号,但是 PHP 在执行 MySQL 命令时会自动的帮你加上的。
 
 另外还有一个不要加分号的情况。当你想把要字段的竖者排列显示下来,而不是像通常的那样横着排列时,你可以用 G 来结束一行 SQL 语句,这时就用不上分号了,例如:
SELECT * FROM PENPALS WHERE USER_ID = 1G
2. TEXT、DATE、和 SET 数据类型
 MySQL 数据表的字段必须有定义一个数据类型。这有大约 25 种选择,大部分都是直接明了的,就不多费口舌了。但有几个有必要提一下。
 
 TEXT 不是一种数据类型,虽然可能有些书上是这么说的。它实际上应该是“ LONG VARCHAR ”或者“ MEDIUMTEXT ”。
 
 DATE 数据类型的格式是 YYYY-MM-DD ,比如: 1999-12-08 。你可以很容易的用 date 函数来得到这种格式的当前系统时间:
date("Y-m-d")
 并且,在 DATA 数据类型之间可以作减法,得到相差的时间天数:
$age = ($current_date - $birthdate);
 集合 SET 是一个有用的数据类型,它和枚举 ENUM 有点相似,只不过是 SET 能够保存多个值而 ENUM 只能保存一个值而已。而且, SET 类型最多只能够有 64 个预定的值,而 ENUM 类型却能够处理最多 65,535 个预定义的值。而如果需要有大于 64 个值的集合,该怎么办呢?这时就需要定义多个集合来一起解决这个问题了。
 
3. 通配符
 SQL 的通配符有两种:“ * ”和“ % ”。分别用在不同的情况下。例如:如果你想看到数据库的所有内容,可以像这样来查询:
SELECT * FROM dbname WHERE USER_ID LIKE '%';
 这儿,两个通配符都被用上了。他们表示相同的意思 ?? 都是用来匹配任何的字符串,但是他们用在不同的上下文中。“ * ”用来匹配字段名,而“ % ”用来匹配字段值。另外一个不容易引起注意的地方是“ % ”通配符需要和 LIKE 关键字一起使用。
导出要用到MySQL的mysqldump工具,基本用法是:
shell> mysqldump [OPTIONS] database [tables]
如果你不给定任何表,整个数据库将被导出。
 
通过执行mysqldump --help,你能得到你mysqldump的版本支持的选项表。
 
注意,如果你运行mysqldump没有--quick或--opt选项,mysqldump将在导出结果前装载整个结果集到内存中,如果你正在导出一个大的数据库,这将可能是一个问题。
 
mysqldump支持下列选项:
--add-locks
在每个表导出之前增加LOCK TABLES并且之后UNLOCK TABLE。(为了使得更快地插入到MySQL)。
 
--add-drop-table
在每个create语句之前增加一个drop table。
 
--allow-keywords
允许创建是关键词的列名字。这由表名前缀于每个列名做到。
 
-c, --complete-insert
使用完整的insert语句(用列名字)。
 
-C, --compress
如果客户和服务器均支持压缩,压缩两者间所有的信息。
 
--delayed
用INSERT DELAYED命令插入行。
 
-e, --extended-insert
使用全新多行INSERT语法。(给出更紧缩并且更快的插入语句)
-#, --debug[=option_string]
跟踪程序的使用(为了调试)。
 
--help
显示一条帮助消息并且退出。
 
--fields-terminated-by=...
 
--fields-enclosed-by=...
 
--fields-optionally-enclosed-by=...
 
--fields-escaped-by=...
 
--fields-terminated-by=...
这些选择与-T选择一起使用,并且有相应的LOAD DATA INFILE子句相同的含义。
 
LOAD DATA INFILE语法。
 
-F, --flush-logs
在开始导出前,洗掉在MySQL服务器中的日志文件。
 
-f, --force,
即使我们在一个表导出期间得到一个SQL错误,继续。
 
-h, --host=..
从命名的主机上的MySQL服务器导出数据。缺省主机是localhost。
 
-l, --lock-tables.
为开始导出锁定所有表。
 
-t, --no-create-info
不写入表创建信息(CREATE TABLE语句)
-d, --no-data
不写入表的任何行信息。如果你只想得到一个表的结构的导出,这是很有用的!
--opt
同--quick --add-drop-table --add-locks --extended-insert --lock-tables。
1. 下载并安装 Oracle 8i for linux.
完全安装,不要只安装客户端
下载地点:chat.hn.cninfo.net/soft的hot下载
2. 下载PHP3或PHP4源码
下载地点:www.php.net www.phpuser.com chat.hn.cninfo.net/soft
3. 配置PHP的安装参数
for php 4:
./configure --with-apxs=/usr/sbin/apxs
--prefix=/usr
--with-gd
--enable-versioning
--with-mysql=/usr
--with-oracle=/usr/local/oracle/8i/u01/app/oracle/product/8.1.5
--with-oci8=/usr/local/oracle/8i/u01/app/oracle/product/8.1.5
--with-zlib
--with-dbase
--with-filepro
--with-config-file-path=/etc/httpd/conf
--with-fdftk=no
--enable-debug=no
--enable-magic-quotes
--enable-debugger
--enable-bcmath
--enable-track-vars
--enable-safe-mode
--with-exec-dir=/usr/bin
--with-system-regex
--no-create
--no-recursion
--with-oracle 选项让php可以通过ORA_函数访问 Oracle 7.x 或8.x
--with-oci8 选项让php可以使用更多更好的 oci8函数
4. make
5. make install
6. cp ./php.ini-dist /wherever/your/conf/files/are/php.ini
将php.ini拷贝到适当的位置
7. 修改httpd.conf
修改如下这一行
LoadModule php4_module lib/apache/libphp4.so
改为:
LoadModule php4_module /usr/lib/apache/libphp4.so
8. 重新启动APACHE
9. 测试PHP4的安装是否成功
创建一个test.php3内容为:
<? phpinfo(); ?>
在浏览器中访问它,看是否有ORACLE和ORACLE8的信息。
 
如果有的话,那么就恭喜你了!
10. 现在开始使用ORACLE的函数吧
<?
// 设置ORACLE环境变量
putenv("ORACLE_SID=PROD");
putenv("ORACLE_HOME=/usr/local/oracle/8i/u01/app/oracle/product/8.1.5");
// 建立连接
// 修改现在的user_id,password,db以适应你的配置
if( = OCILogon("user_id","password","db"))
{
// 取得数据库的信息
printf("%s</P>", OCIServerVersion());
}
else
{
printf("Conncetion Failed");
}
?>
这段程序会显示出你所连接到的ORACLE的一些信息
12. 其它
如果你需要连接到远程的ORACLE服务器,你就还需要设置你的sqlnet.ora 和 tnsnames.ora 来指定远程数据库的位置。
 
向数据库管理员要求,拷贝一些文件放到
/network/admin/ 目录下
[!--infotagslink--]

相关文章