为啥mysqld占用大量内存在不同的机子上运行内存不一样

mysqld(服务器)命令行选项 - javaeye - ITeye博客
博客分类:
· --help,-?显示简短的帮助消息并退出。使用--verbose和--help选项来看全部内容。· --allow-suspicious-udfs该选项控制是否用户定义的函数只有一个xxx符,用作可载入的主函数。默认情况下,该选项被关闭,只有至少有一个附属符的UDF 可以载入。这样可以防止从未包含合法UDF的共享文件装载函数。· --ansi使用标准(ANSI)SQL语法代替MySQL语法。参见1.8.3节,“在ANSI模式下运行MySQL”。使用--sql-mode选项可以更精确控制服务器SQL模式。· --basedir=path, -b pathMySQL安装目录的路径。通常所有路径根据该路径来解析。· --bind-address=IP待绑定的IP地址。· --bootstrapmysql_install_db脚本使用该选项来创建MySQL授权表,不需要启动MySQL服务器。· --console将错误日志消息写入stderr和stdout,即使指定了--log-error。在Windows中,如果使用该选项,mysqld不关闭控制台窗口。· --character-sets-dir=path字符集安装的目录。· --chroot=path通过chroot()系统调用在启动过程中将mysqld服务器放入一个封闭环境中。这是推荐的一个安全措施。请注意使用该选项可以 限制LOAD DATAINFILE和SELECT ... INTO OUTFILE。· --character-set-server=charset使用charset作为 默认服务器字符集。
· --core-file如果mysqld终止,写内核文件。在某些系统中,你还必须为mysqld_safe指定--core-file-size 选项。本”。请注意对于一些系统,例如Solaris,如果你使用--user选项不会获得内核文件。· --collation-server=collation使用collation作为 默认服务器校对规则。· --datadir=path, -h path数据目录的路径。· --debug[=debug_options], -# [debug_options]如果MySQL配置了--with-debug,你可以使用该选项来获得一个跟踪文件,跟踪mysqld正进行的操作。debug_options字符串通常为'd:t:o,file_name'。
· (DEPRECATED) --default-character-set=charset使用char设置作为 默认字符集。由于--character-set-server,反对使用该选项。
· --default-collation=collation使用collation 作为默认校对规则。由于--collation-server,反对使用该选项。
· --default-storage-engine=type该选项为--default-table-type的同义词。· --default-table-type=type设置表的默认类型。· --default-time-zone=type设置默认服务器时区。该选项设置全局time_zone系统变量。如果未给出该选项, 默认时区与系统时区相同(用system_time_zone系统变量值给定)。· --delay-key-write[= OFF | ON | ALL]如何使用DELAYED KEYS选项。键写入延迟会造成再次写MyISAM表时键缓冲区不能被清空。OFF禁用延迟的键写入。ON启用用DELAYED KEYS选项创建的表的延迟的键写入。ALL延迟所有MyISAM表的键写入。
注释:如果你将该变量设置为ALL,你不应从另一个正使用MyISAM表的程序中使用MyISAM表(例如从另一个MySQL服务器或用myisamchk)。这样操作会导致索引破坏。· --des-key-file=file_name从该文件读DES_ENCRYPT()和DES_DECRYPT()使用的 默认键。· --enable-named-pipe启用命名管道支持。该选项只适用Windows NT、2000、XP和2003系统,并且只适用支持命名管道连接的mysqld-nt和mysqld-max-nt服务器。· --exit-info[=flags], -T [flags]这是不同标志的一个位掩码,你可以用来调试mysqld服务器。不要使用该选项,除非你确切知道它在做什么!· --external-locking启用系统锁定。请注意如果你在lockd不能完全工作的系统上使用该选项(例如在Linux中),mysqld容易死锁。该选项以前叫--enable-locking。注释:如果你在许多MySQL进程中使用该选项来更新MyISAM表,你必须确保满足下述条件:o 使用正被另一个进程更新的表的查询的缓存不可使用。o 不应在共享表中使用--delay-key-write=ALL或DELAY_KEY_WRITE=1。最简单的方法是结合使用--external-locking和--delay-key-write=OFF --query-cache-size=0。(默认不能实现,因为在许多设置中,结合使用上述选项很有用)。· --flush执行SQL语句后向硬盘上清空更改。一般情况执行SQL语句后 MySQL向硬盘写入所有更改,让操作系统处理与硬盘的同步。
· --init-file=file启动时从该文件读SQL语句。每个语句必须在同一行中并且不应包括注释。· --language=lang_name, -L lang_name用给定语言给出客户端错误消息。lang_name可以为语言名或语言文件安装目录的全路径名。
· --large-pages一些硬件/操作系统架构支持大于 默认值(通常4 KB)的内存页。实际支持取决于使用的硬件和OS。大量访问内存的应用程序通过使用较大的页,降低了Translation Lookaside Buffer (TLB)损失,可以改善性能。目前,MySQL只在Linux中支持大页面(在Linux中被称作HugeTLB)。我们已经计划将该支持扩展到FreeBSD、Solaris和其它可能的平台。在Linux中可以使用大页面前,需要配置HugeTLB内存池。参考Linux内核源码中的hugetlbpage.txt文件。默认情况下该选项被禁用。· ---log[=file], -l [file]日志连接和对文件的查询。如果你不指定文件名,MySQL使用host_name.log作为文件名。· --log-bin=[file]二进制日志文件。将更改数据的所有查询记入该文件。用于备份和复制。建议指定一个文件名,否则MySQL使用host_name-bin作为日志文件基本名。· --log-bin-index[=file]二进制日志文件名的索引文件。如果你不指定文件名,并且如果你没有在--log-bin中指定,MySQL使用host_namebin.index作为文件名。· --log-bin-trust-routine-creators[={0|1}]没有参数或参数为1,该选项将系统变量log_bin_trust_routine_creators设置为1。为参数 0时,该选项将系统变量设置为0。log_bin_trust_routine_creators影响MySQL如何对保存的程序的创建强加限制。· --log-error[=file]该文件的日志错误和启动消息。如果你不指定文件名,MySQL使用host_name.err作为文件名。如果文件名没有扩展名,则加上.err扩展名。· --log-isam[=file]将所有MyISAM更改记入该文件(只有调试MyISAM时才使用)。· (DEPRECATED) --log-long-format记录激活的更新日志、二进制更新日志、和慢查询日志的大量信息。例如,所有查询的用户名和时间戳将记录下来。不赞成选用该选项,因为它现在代表 默认记录行为。(参见--log-short-format描述)。--log-queries-not-using-indexes选项适合将未使用索引的查询记录到慢查询日志中。· --log-queries-not-using-indexes如果你结合--log-slow-queries使用该选项,未使用索引的查询也被记录到慢查询日志中。· --log-short-format记录激活的更新日志、二进制更新日志、和慢查询日志的少量信息。例如,用户名和时间戳不记录下来。· ---log-slow-admin-statements将慢管理语句例如OPTIMIZE TABLE、ANALYZE TABLE和ALTER TABLE记入慢查询日志。· --log-slow-queries[=file]将所有执行时间超过long_query_time 秒的查询记入该文件。参见5.11.4节,“慢速查询日志”。详细信息参见--log-long-format和--log-short-format选项描述。· --log-warnings, -W将警告例如Aborted connection...打印到错误日志。建议启用该选项,例如,如果你使用复制 (你可以得到关于所发生事情的详细信息,例如关于网络故障和重新连接的消息)。默认情况下启用该选项;要想禁用它,使用--skip-log-warnings。中断的连接不会记入错误日志,除非值大于1。
· --low-priority-updates表修改(INSERT, REPLACE, DELETE, UPDATE)比选择的优先级要低。也可以通过{INSERT | REPLACE | DELETE | UPDATE} LOW_PRIORITY ... 来降低某个查询的优先级来实现,或通过SET LOW_PRIORITY_UPDATES=1来更改一个线程的优先级。
· --memlock将mysqld 进程锁定在内存中。在支持mlockall()系统调用的系统上有效,例如Solaris。如果操作系统使mysqld在硬盘上交换时出现问题,可以为你提供帮助。请注意使用该选项时需要以root运行服务器,但从安全考虑并不是一个好注意。· --myisam-recover [=option[,option...]]]将存储引擎MyISAM设置为恢复模式。该选项值是DEFAULT、BACKUP、FORCE或QUICK值的任何组合。如果你指定多个值,用逗号间隔开。你还可以使用""值来禁用该选项。使用如果该选项,当mysqld打开MyISAM表时,检查是否表标记为崩溃或没有正确关闭。(只有用--skip-externallockingare运行时,最后的选项才工作)。 如果是这种情况,mysqld则检查 表。如果表被破坏,mysqld试图维护它。下面的选项影响维护工作:选项描述DEFAULT 与没有使用--myisam-recover选项相同。BACKUP 如果在恢复过程中,数据文件被更改了,将tbl_name.MYD文件备份为tbl_name-datetime.BAK。FORCE 即使.MYD文件将丢掉多个行也进行恢复。QUICK 如果没有删除块,不要检查表中的行。在表自动修复前,MySQL错误日志添加一条注解。如果你不想用户干涉干涉大多数问题,你应使用BACKUP,FORCE选项。该选项强制维护表,即使一些行将会被删除也不例外,但它保持旧的数据文件做为备份,以便你可以在后来进行检查。· --ndb-connectstring=connect_string当使用NDB存储引擎时,可以指出通过设置连接字符串选项来分发群集配置的管理服务器。
· --ndbcluster如果二进制支持NDB CLUSTER存储引擎,使用该选项可以代替禁用MySQL Cluster支持的 默认设置。· --old-passwords强制服务器为新密码生成短(4.1前)密码哈希。如果服务器必须支持旧客户端程序,为保证兼容性这很有用。
· --one-thread只使用一个线程(用于在Linux中调试)。只有服务器启用了调试,该选项才可用。
· --open-files-limit=count用来更改mysqld文件描述符的数量。如果没有设置或设置为0,则mysqld通过setrlimit()使用该值来保存文件描述符。如果该值为0,则mysqld 保存max_connections*5或max_connections + table_cache*2(取较大者)个文件。如果mysqld给出你错误"打开的文件太多。",你应试试增加该值。· --pid-file=pathmysqld_safe使用的进程ID文件的路径。· --port=port_num, -P port_num帧听TCP/IP连接时使用的端口号。· --safe-mode跳过一些优化阶段。· (DEPRECATED) --safe-show-database· --safe-user-create启用后如果用户没有mysql.user表或表中列的INSERT权限,则用户不能用GRANT语句创建新用户。· --secure-auth不允许使用旧(4.1之前)密码的账户进行鉴定。· --shared-memory启用本地客户端的共享内存连接。该选项只用于Windows。· --shared-memory-base-name=name共享内存连接名。该选项只用于Windows。· --skip-bdb禁用BDB存储引擎。这样可以节省内存,并可能加速某些操作。如果你需要BDB表则不要使用该选项。· --skip-concurrent-insert关闭在同一时间在MyISAM表中选择和插入的能力。(只有你发现缺陷时才使用该选项)。· --skip-external-locking不要使用系统锁定。要想使用myisamchk,你必须关闭服务器。要避免该需求,使用MySQL Monitor中的CHECK TABLE和REPAIR TABLE来检查并维护MyISAM表。· --skip-grant-tables该选项使服务器不使用权限系统。该权限允许访问服务器的用户不受限制地访问所有数据库。你可以从系统外壳命令行执行mysqladmin flushprivileges或mysqladmin reload命令,或执行MySQL FLUSH PRIVILEGES语句让运行的服务器重新开始使用 授权表。· --skip-host-cache为了更快地在名称-IP之间进行解析,不要使用内部主机名缓存。相反,每次客户端连接时查询DNS服务器。
· --skip-innodb禁用InnoDB存储引擎。这样可以节省内存,并可能加速某些操作。如果你需要BDB表则不要使用该选项。· --skip-name-resolve不要解析正检查客户端连接的主机名。只使用IP号。如果你使用该项, 授权表中的所有Host列值必须为IP号或localhost。
· --skip-ndbcluster禁用NDB CLUSTER存储引擎。这是支持NDB CLUSTER存储引擎的二进制的默认设置,说明只有用--ndbcluster选项显式覆盖--skip-ndbcluster选项时,系统才为该存储引擎分配内存和其它资源。· --skip-networking不帧听TCP/IP连接。必须通过命名管道或共享内存(在Windows中)或Unix套接字文件(在Unix中)完成mysqld的相互操作。对于只允许本地客户端的系统,大力推荐该选项。· --standalone只适合基于Windows-NT的系统;指导MySQL服务器不做为服务来运行。· --symbolic-links, --skip-symbolic-links启用或禁用符号链接支持。在Windows和Unix中,该选项的作用是不同的:o 在Windows中,启用符号链接,你可以通过创建包含实际目录路径的directory.sym文件来建立数据库目录的符号链接。节,“在Windows平台上使用关于数据库的符号链接”。在Unix中,启用符号链接表示你可以用CREATE TABLE语句的INDEX DIRECTORY或DATA DIRECTORY选项将MyISAM索引文件或数据文件链接到另一个目录。如果你删除或重新命名表,符号链接所指的文件也被删除或重新命名。
· --skip-safemalloc如果MySQL配置了--with-debug=full,所有MySQL程序在内存分配和释放时检查内存是否溢出。检查很慢,因此如果你不需要你可以用--skipsafemalloc选项来避免。· --skip-show-database使用该选项,只允许具有SHOW DATABASES权限的用户执行SHOW DATABASES语句,该语句显示所有数据库名。不使用该选项,允许所有用户执行SHOW DATABASES,但只向具有SHOW DATABASES权限或部分数据库权限的用户显示每个数据库名。请注意全局权限为数据库的一种权限。· --skip-stack-trace不跟踪写堆栈。当调试运行mysqld时该选项有用。在一些系统中,你还必须使用该选项来获得内核文件。· --skip-thread-priority在快速响应中禁用线程优先级。· --socket=path在Unix中,该选项指定用于本地连接的Unix套接字文件。 默认值是/tmp/mysql.sock。在Windows中,该选项指定本地连接所使用的管道名。 默认值是MySQL。· --sql-mode=value[,value[,value...]]将MySQL设置为SQL模式。· --temp-pool该选项使服务器创建的大多数临时文件使用一系列文件名,而不是每个新文件使用唯一的文件名。这样解决了在Linux内核中用 不同的名创建许多新文件的问题。在以前,Linux似乎“泄漏”内存,因为它被直接分配到directory entry缓存而不是硬盘缓存。· --transaction-isolation=level设置默认事务隔离级别,可以READ-UNCOMMITTED、READ-COMMITTEE、REPEATABLE-READ或SERIALIZABLE。
· --tmpdir=path, -t path创建临时文件的目录路径。默认/tmp目录在太小不能容纳临时表的分区时该选项很有用。该选项接受round-robin模式的几个路径。在Unix中路径应用冒号(‘:’) 间隔开,在Windows、NetWare和OS/2中用分号(‘;’) 间隔开。如果MySQL服务器为复制从机,你不应让--tmpdir指向基于内存的文件系统中的目录或服务器主机重启时会清除的目录。复制从机需要临时文件,机器重启时可以复制临时表或执行LOAD DATA INFILE操作。如果服务器重启时临时文件目录中的文件丢失,复制失败。· --user={user_name | user_id}, -u {user_name | user_id}用user_name或数字用户ID user_id运行mysqld服务器。(“用户”指系统登录账户,而不是 授权表中所列的MySQL用户)。用root启动mysqld时强制使用该选项。服务器在启动序列中更改用户ID,让它做为具体用户而不是root运行。要避免用户在my.cnf文件中添加--user=root选项(使服务器用root运行)时可能出现的安全漏洞,mysqld只使用指定的第1个--user选项,如果有多个--user选项则会出现警告。在命令行选项前处理/f和$MYSQL_f中的选项,因此建议你在/f中放一个--user选项,并指定root之外的其它值。在其它--user选项前先找到/f中的选项,确保服务器用其它用户运行,如果找到其它--user选项则会出现警告。· --version, -V显示版本信息并退出。
浏览: 1086844 次
来自: 北京
标示对java很陌生!
Java中\是转意字符, 可是你的这句话我没看懂,只要把得到的 ...
可以参考最新的文档:如何在eclipse jee中检出项目并转 ...
,非常好。【解决】MySql 5.6 运行崩溃错误
【解决】MySql 5.6 运行崩溃错误
最近弄了一台云主机,配置是20G磁盘空间,1G运行内存的服务器。在上面安装了LAMP(RHEL7.2+Apache2.4+MySql5.6+5.6),然后搭建wordpress网站,可是网站运行没多久,就出现了连接不上。到服务器上使用:ps -aux |grep ,发现MySql服务并没有运行,很纳闷怎么运行好好的,就自己停止了。查看了下日志有如下错误提示:
0:11:032762[Note]InnoDB:Initializingbufferpool,size=128.0M
InnoDB:mmap(bytes)errno12
0:11:032762[ERROR]InnoDB:Cannotallocatememoryforthebufferpool
0:11:032762[ERROR]Plugin'InnoDB'initfunctionreturnederror.
0:11:032762[ERROR]Plugin'InnoDB'registrationasaSTORAGEENGINEfailed.
0:11:032762[ERROR]Unknown/unsupportedstorageengine:InnoDB
0:11:032762[ERROR]Aborting
从日志的信息看,是说缓冲区的内存不足导致服务终止,我使用: free -m 查看了服务器的内存情况:
totalusedfreesharedbuff/cacheavailable
内存是足够的,尝试再次启动MySql服务 :/etc/init.d/mysqld start结果有如下的错误:
StartingMySQL..ERROR!TheserverquitwithoutupdatingPIDfile(/data/mysql/mysql.pid).
尝试了好几次,都无法启动,很纳闷。
尝试调整:innodb_buffer_pool_size 参数的大小,可是还是启动不了。记得之前在上也是同样的环境也没有出现过这样的问题,唯一不同的是,这台云主机上没有分配交换分区,是不是这个问题导致?那就增加2G的交换分区试一试。
ddif=/dev/zeroof=/udata/men.swapbs=1kcount=2048000
mkswap/udata/men.swap
swapon/udata/men.swap
将交换分区加入的/etc/fstab
vim /etc/fstab
UUID=a1--e4swapswapdefaults00
一切都ok了,再次尝试启动MySQL服务。
/etc/init.d/mysqldstart
Starting MySQL.... SUCCESS!
成功了。。。。难道还真是这样原因。。。。观察了一段时间,暂时未出现故障。
MySQL 5.6还需要做优化。。。。还很吃内存啊。。。
totalusedfreesharedbuff/cacheavailable
后来在国外的网站上找到了一篇解决同样问题的文章,方法都一样,地址如下:
/solved-mysql-crash-fatal-error-cannot-allocate-memory-buffer-poold.exe每次运行都占用400多M内存,但人家的都是几M的,何解呢?
用360的360任务管理器优化内存可以让它减少到几M,但每次都这样太烦了,求大牛解救!!!
还有我安装的时候在Config Type的选项里选了Developer Machine(我装的是5.6版),我的机子内存是4G的,这样会多占一些吗?
--------------------------------------
的360任务管理器优化内存可以让它减少到几M这是什么道理 不明白
--------------------------------------
我以前也遇到过,找了很久,未果,故而只能重装系统。
--------------------------------------
这个得具体实际访问量。
--------------------------------------
当时下的是32位安装版,没有64位的安装版,官网说支持64位系统的。现在安装版卸了,在研究64位免安装版的
--------------------------------------
Server引用 楼主 elong4321 的回复:mysqld.exe每次运行都占用400多M内存,但人家的都是几M的,何解呢?
用360的360任务管理器优化内存可以让它减少到几M,但每次都这样太烦了,求大牛解救!!!
还有我安装的时候在Config Type的选项里选了Developer Machine(我装的是5.6版),我的机子内存是4G的,这样会多占一些吗? 优化
--------------------------------------
我的是mysql.exe 占有用712k
--------------------------------------
引用 楼主 elong4321 的回复:mysqld.exe每次运行都占用400多M内存,但人家的都是几M的,何解呢?
用360的360任务管理器优化内存可以让它减少到几M,但每次都这样太烦了,求大牛解救!!!
还有我安装的时候在Config Type的选项里选了Developer Machine(我装的是5.6版),我的机子内存是4G的,这样会多占一些吗? 优化可能是你的MySQL.ini文件配置的有问题# MySQL Server Instance Configuration File# ----------------------------------------------------------------------# Generated by the MySQL Server Instance Configuration Wizard### Installation Instructions# ----------------------------------------------------------------------#### To install the server as a Windows service manually, execute this in a #
line , e.g.# mysqld --install MySQLXY --defaults-file="C:\Program Files\MySQL\MySQL Server X.Y\my.ini"## And then execute this in a command line
to start the server, e.g.# net start MySQLXY### Guildlines
editing this file# ----------------------------------------------------------------------## In this file, you can use all long options that the program supports.# If you want to know the options a program supports, start the program# with the "--help" option.## More detailed inmation about the individual options can also be# found in the manual.### CLIENT SECTION# ----------------------------------------------------------------------## The following options will be read by MySQL client applications.# Note that#Path to the
datadir="D:/ProgramData/MySQL/MySQL Server/Data/"[WinMySQLAdmin]server="D:\Program Files\MySQL\MySQL Server\\mysqladmin.exe"# The default character set that will be used when a new schema or table is# created and no character set is definedcharacter-set-server=utf8# The default storage engine that will be used when create new tables whendefault-storage-engine=INNODB# Set the SQL mode to strictsql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"# The maximum amount of concurrent sessions the MySQL server will# allow.# Use this option if you have a MySQL server with InnoDB support enabled# but you do not plan to use it. This will save memory and disk space# and speed up some things.#skip-innodb# Additional memory pool that is used by InnoDB to store metadata# information.
If InnoDB requires more memory for this purpose it will# start to allocate it from the OS.
As this is fast enough>
--------------------------------------
我的mysqld.exe占88M内存,mysql.exe占3M内存
--------------------------------------
请问神仙姐姐,那个mysql免安装版有图形化界面设计的吗?是要通过my.ini设置吗?
--------------------------------------
引用 9 楼 elong4321 的回复:请问神仙姐姐,那个mysql免安装版有图形化界面设计的吗?是要通过my.ini设置吗?没有图形界面,只能通过my.ini修改,或者说我只能通过my.ini设置
--------------------------------------
图形界面选择的时候就是在那5个ini文档中选择一个,旧版本里有那五个文档,新版本没了
无相关信息}

我要回帖

更多关于 mysqld 占用内存 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信