11 MySQL服務(wù)器和服務(wù)器啟動(dòng)腳本

MySQL服務(wù)器序厉,即mysqld矫户,是在MySQL安裝中負(fù)責(zé)大部分工作的主程序离斩。服務(wù)器隨附了幾個(gè)相關(guān)腳本,當(dāng)你安裝MySQL時(shí)它們可以執(zhí)行設(shè)置操作抽高,或者是幫助你啟動(dòng)和停止服務(wù)器的幫助程序判耕。

本篇文章提供了服務(wù)器和相關(guān)程序的概述,以及服務(wù)器啟動(dòng)腳本相關(guān)信息翘骂。

服務(wù)器端腳本和實(shí)用工具概述

MySQL程序采用各種不同的選項(xiàng)壁熄。但每個(gè)MySQL程序提供一個(gè)--help選項(xiàng),你可以用來(lái)查閱程序選項(xiàng)相關(guān)說(shuō)明帚豪。例如,你可以試試mysqld --help草丧。

你可以在命令行中或在選項(xiàng)文件中指定選項(xiàng)來(lái)替換所有標(biāo)準(zhǔn)程序中的默認(rèn)選項(xiàng)志鞍。

下面簡(jiǎn)單描述了MySQL服務(wù)器和服務(wù)器相關(guān)程序:

  • mysqld

SQL后臺(tái)程序(即MySQL服務(wù)器)。要想使用客戶(hù)端程序方仿,該程序必須運(yùn)行固棚,因?yàn)榭蛻?hù)端通過(guò)連接服務(wù)器來(lái)訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)。

  •     mysqld-max
    

包括更多特性的一個(gè)服務(wù)器版本仙蚜。

  •     mysqld_safe
    

服務(wù)器啟動(dòng)腳本此洲。如果mysqld-max存在,mysqld_safe試圖啟動(dòng)它,否則啟動(dòng)mysqld委粉。

  •     mysql.server
    

服務(wù)器啟動(dòng)腳本呜师。該腳本用于使用包含為特定級(jí)別的運(yùn)行啟動(dòng)服務(wù)的腳本的運(yùn)行目錄的系統(tǒng)。它調(diào)用mysqld_safe來(lái)啟動(dòng)MySQL服務(wù)器贾节。

  •    mysqld_multi
    

服務(wù)器啟動(dòng)腳本汁汗,可以啟動(dòng)或停止系統(tǒng)上安裝的多個(gè)服務(wù)器。

  •     mysql_install_db
    

該腳本用默認(rèn)權(quán)限創(chuàng)建MySQL授權(quán)表栗涂。通常只是在系統(tǒng)上首次安裝MySQL時(shí)執(zhí)行一次

  •     mysql_fix_ privilege_tables
    

在升級(jí)安裝后知牌,如果新版本MySQL中的 授權(quán)表有更改,則使用該腳本來(lái)更改授權(quán)表斤程。

服務(wù)器主機(jī)上還運(yùn)行其它幾個(gè)程序:

  •     myisamchk
    

用來(lái)描述角寸、檢查、優(yōu)化和維護(hù)MyISAM表的實(shí)用工具

  •     make_binary_distribution
    

該程序可以生成編譯過(guò)的MySQL的二進(jìn)制版本忿墅”馀海可以通過(guò)FTP上傳到ftp.mysql.com的/pub/mysql/upload/,供其它MySQL用戶(hù)使用疚脐。

  •     mysqlbug
    

MySQL 缺陷報(bào)告腳本亿柑。它可以用來(lái)向MySQL郵件系統(tǒng)發(fā)送缺陷報(bào)告。

mysqld-max擴(kuò)展MySQL服務(wù)器

MySQL-Max服務(wù)器是mysqld MySQL服務(wù)器的一個(gè)版本棍弄,包含了更多的特性望薄。

該分發(fā)版的使用取決于你的平臺(tái):

  •   對(duì)于Windows,MySQL二進(jìn)制分發(fā)版包括標(biāo)準(zhǔn)服務(wù)器 (mysqld.exe)和MySQL-Max服務(wù)器(mysqld-max.exe)照卦,因此你不再需要專(zhuān)用分發(fā)版式矫。
    
  •     對(duì)于Linux乡摹,如果你使用RPM分發(fā)版安裝MySQL役耕,首先使用常規(guī)MySQL-server RPM來(lái)安裝標(biāo)準(zhǔn)mysqld服務(wù)器。然后使用MySQL-Max RPM來(lái)安裝mysqld-max服務(wù)器聪廉。MySQL-Max RPM假定你已經(jīng)安裝了常規(guī)服務(wù)器RPM瞬痘。
    

MySQL AB使用下面的configure選項(xiàng)構(gòu)建MySQL-Max服務(wù)器:

· --with-server-suffix=-max

該選項(xiàng)為mysqld版本字符串添加一個(gè)-max后綴故慈。

· --with-innodb

該選項(xiàng)啟用InnoDB存儲(chǔ)引擎支持。MySQL-Max服務(wù)器包括InnoDB支持框全。在MySQL 4.0及以上版本中察绷,默認(rèn)InnoDB包括在所有二進(jìn)制分發(fā)版中,因此你不需要用MySQL-Max服務(wù)器只是用來(lái)獲取InnoDB支持津辩。

· --with-bdb

該選項(xiàng)啟用Berkeley DB (BDB)存儲(chǔ)引擎支持拆撼。

· --with-blackhole-storage-engine

該選項(xiàng)啟用BLACKHOLE存儲(chǔ)引擎支持。

· USE_SYMDIR

啟用該定義來(lái)為Windows打開(kāi)數(shù)據(jù)庫(kù)符號(hào)鏈接支持喘沿。符號(hào)鏈接支持適用于所有Windows服務(wù)器闸度,因此Max服務(wù)器不需要支持該特性。

· --with-ndbcluster

該選項(xiàng)啟用NDB Cluster存儲(chǔ)引擎支持蚜印。目前(5.1.2-alpha)只有Linux莺禁、Solaris和Mac OS X支持Cluster。已有一些用戶(hù)報(bào)告在BSD 操作系統(tǒng)上成功使用了從源碼構(gòu)建的MySQL Cluster窄赋,但目前還沒(méi)有得到官方支持哟冬。

MySQL-Max二進(jìn)制分發(fā)版對(duì)于想要安裝預(yù)編譯程序的用戶(hù)很方便。如果你使用源碼分發(fā)版構(gòu)建MySQL忆绰,你可以通過(guò)在配置時(shí)啟用MySQL-Max二進(jìn)制分發(fā)版構(gòu)建所用的相同的特性來(lái)構(gòu)建你自己的Max-like服務(wù)器浩峡。

MySQL-Max服務(wù)器包括BerkeleyDB (BDB)存儲(chǔ)引擎,但并非所有平臺(tái)支持BDB错敢。

Solaris红符、Mac OS X和Linux(在大多數(shù)平臺(tái)上)的MySQL-Max服務(wù)器包括NDB CLUSTER存儲(chǔ)引擎支持。請(qǐng)注意必須用ndbcluster選項(xiàng)啟動(dòng)服務(wù)器伐债,以便使服務(wù)器做為MySQL Cluster的一部分來(lái)運(yùn)行预侯。

下面的表顯示了MySQL-Max二進(jìn)制在哪個(gè)平臺(tái)上包括BDB和/或NDB CLUSTER支持:

系統(tǒng) BDB支持 NDB支持
AIX 4.3 N N
HP-UX 11.0 N N
Linux-Alpha N Y
Linux-IA-64 N N
Linux-Intel Y Y
Mac OS X N N
NetWare N N
SCO OSR5 Y N
Solaris-SPARC Y Y
Solaris-Intel N Y
UnixWare Y N
Windows NT/2000/XP Y N
  • 要想找出你的服務(wù)器支持哪個(gè)存儲(chǔ)引擎,執(zhí)行下面的語(yǔ)句:
mysql> show engines;
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine             | Support | Comment                                                        | Transactions | XA   | Savepoints |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| PERFORMANCE_SCHEMA | YES     | Performance Schema                                             | NO           | NO   | NO         |
| MRG_MYISAM         | YES     | Collection of identical MyISAM tables                          | NO           | NO   | NO         |
| CSV                | YES     | CSV storage engine                                             | NO           | NO   | NO         |
| BLACKHOLE          | YES     | /dev/null storage engine (anything you write to it disappears) | NO           | NO   | NO         |
| MyISAM             | YES     | MyISAM storage engine                                          | NO           | NO   | NO         |
| MEMORY             | YES     | Hash based, stored in memory, useful for temporary tables      | NO           | NO   | NO         |
| ARCHIVE            | YES     | Archive storage engine                                         | NO           | NO   | NO         |
| InnoDB             | DEFAULT | Supports transactions, row-level locking, and foreign keys     | YES          | YES  | YES        |
| FEDERATED          | NO      | Federated MySQL storage engine                                 | NULL         | NULL | NULL       |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
9 rows in set

  • 你還可以使用下面的語(yǔ)句代替SHOW ENGINES峰锁,并檢查你感興趣的存儲(chǔ)引擎的變量值:
mysql> SHOW VARIABLES LIKE 'have%';
+----------------------+----------+
| Variable_name        | Value    |
+----------------------+----------+
| have_compress        | YES      |
| have_crypt           | YES      |
| have_dynamic_loading | YES      |
| have_geometry        | YES      |
| have_openssl         | DISABLED |
| have_profiling       | YES      |
| have_query_cache     | YES      |
| have_rtree_keys      | YES      |
| have_ssl             | DISABLED |
| have_symlink         | YES      |
+----------------------+----------+
10 rows in set

  • SHOW命令的精確輸出隨使用的MySQL版本(和啟用的特性)的不同而有變化萎馅。第2列的值表示各特性支持的服務(wù)器級(jí)別,如下所示:
含義
YES 支持該特性并已經(jīng)激活虹蒋。
NO 不支持該特性糜芳。
DISABLED 支持該特性但被禁用。

NO值表示編譯的服務(wù)器不支持該特性魄衅,因此在運(yùn)行時(shí)不能激活峭竣。

出現(xiàn)DISABLED值是因?yàn)榉?wù)器啟動(dòng)時(shí)該特性被禁用,或沒(méi)有給出啟用它的所有選項(xiàng)晃虫。在后一種情況皆撩,host_名.err錯(cuò)誤日志文件應(yīng)包含該選項(xiàng)被禁用的原因。

如果服務(wù)器支持InnoDB或BDB存儲(chǔ)引擎,你還可以看見(jiàn)DISABLED扛吞,但在運(yùn)行啟動(dòng)時(shí)使用了--skip-innodb或--skip-bdb選項(xiàng)呻惕。對(duì)于NDB CLUSTER存儲(chǔ)引擎,DISABLED表示服務(wù)器支持MySQL Cluster滥比,但啟動(dòng)時(shí)未啟用--ndb-cluster選項(xiàng)亚脆。

所有MySQL服務(wù)器支持MyISAM表,因?yàn)镸yISAM是 默認(rèn)存儲(chǔ)引擎盲泛。

mysqld_safe:MySQL服務(wù)器啟動(dòng)腳本

在Unix和NetWare中推薦使用mysqld_safe來(lái)啟動(dòng)mysqld服務(wù)器濒持。mysqld_safe增加了一些安全特性,例如當(dāng)出現(xiàn)錯(cuò)誤時(shí)重啟服務(wù)器并向錯(cuò)誤日志文件寫(xiě)入運(yùn)行時(shí)間信息寺滚。本節(jié)后面列出了NetWare的特定行為弥喉。

注釋?zhuān)簽榱吮3滞f版本MySQL的向后兼容性,MySQL二進(jìn)制分發(fā)版仍然包括safe_mysqld作為mysqld_safe的符號(hào)鏈接玛迄。但是由境,你不應(yīng)再依賴(lài)它,因?yàn)樵賹?lái)將刪掉它蓖议。

默認(rèn)情況下虏杰,mysqld_safe嘗試啟動(dòng)可執(zhí)行mysqld-max(如果存在),否則啟動(dòng)mysqld勒虾。該行為的含義是:

  •     在Linux中纺阔,MySQL-Max RPM依賴(lài)該mysqld_safe的行為。RPM安裝可執(zhí)行mysqld-max修然,使mysqld_safe從該點(diǎn)起自動(dòng)使用可執(zhí)行命令笛钝。
    
  •     如果你安裝包括mysqld-max服務(wù)器的MySQL-Max分發(fā)版,后面升級(jí)到非-Max的MySQL版本愕宋,mysqld_safe仍然試圖運(yùn)行舊的 mysqld-max服務(wù)器玻靡。升級(jí)時(shí),你應(yīng)手動(dòng)刪除舊的mysqld-max服務(wù)器以確保mysqld_safe運(yùn)行新的mysqld服務(wù)器中贝。
    

要想越過(guò)默認(rèn)行為并顯式指定你想要運(yùn)行哪個(gè)服務(wù)器囤捻,為mysqld_safe指定--mysqld或--mysqld-version選項(xiàng)。

mysqld_safe的許多選項(xiàng)與mysqld的相同的邻寿。

所有在命令行中為mysqld_safe指定的選項(xiàng)被傳遞給mysqld蝎土。如果你想要使用mysqld不支持的mysqld_safe的選項(xiàng),不要在命令行中指定绣否。相反誊涯,在選項(xiàng)文件的[mysqld_safe]組內(nèi)將它們列出來(lái)

mysqld_safe從選項(xiàng)文件的[mysqld]、[server]和[mysqld_safe]部分讀取所有選項(xiàng)蒜撮。為了保證向后兼容性暴构,它還讀取 [safe_mysqld]部分,盡管在MySQL 5.1安裝中你應(yīng)將這部分重新命名為[mysqld_safe]。

mysqld_safe支持下面的選項(xiàng):

· --help

顯示幫助消息并退出丹壕。

· --autoclose

(只在NetWare中)在NetWare中,mysqld_safe可以保持窗口薇溃。當(dāng)你關(guān)掉mysqld_safe NLM時(shí)菌赖,窗口不按默認(rèn)設(shè)置消失。相反沐序,它提示用戶(hù)輸入:

<NLM has terminated; Press any key to close the screen>
如果你想讓NetWare自動(dòng)關(guān)閉窗口琉用,在mysqld_safe中使用--autoclose選項(xiàng)。

· --basedir=path

MySQL安裝目錄的路徑策幼。

· --core-file-size=size

mysqld能夠創(chuàng)建的內(nèi)核文件的大小邑时。選項(xiàng)值傳遞給ulimit -c。

· --datadir=path

數(shù)據(jù)目錄的路徑特姐。

· --defaults-extra-file=path

除了通用選項(xiàng)文件所讀取的選項(xiàng)文件名晶丘。如果給出,必須首選該選項(xiàng)唐含。

· --defaults-file=path

讀取的代替通用選項(xiàng)文件的選項(xiàng)文件名浅浮。如果給出,必須首選該選項(xiàng)捷枯。

· --ledir=path

包含mysqld程序的目錄的路徑滚秩。使用該選項(xiàng)來(lái)顯式表示服務(wù)器位置。

· --log-error=path

將錯(cuò)誤日志寫(xiě)入給定的文件淮捆。

· --mysqld=prog_name

想要啟動(dòng)的服務(wù)器程序名(在ledir目錄)郁油。如果你使用MySQL二進(jìn)制分發(fā)版但有二進(jìn)制分發(fā)版之外的數(shù)據(jù)目錄需要該選項(xiàng)。

· --mysqld-version =suffix

該選項(xiàng)類(lèi)似--mysqld選項(xiàng)攀痊,但你只指定服務(wù)器程序名的后綴桐腌。基本名假定為mysqld苟径。例如哩掺,如果你使用--mysqld-version =max,mysqld_safe啟動(dòng)ledir目錄中的mysqld-max程序涩笤。如果--mysqld-version的參數(shù)為空嚼吞,mysqld_safe使用目錄中的mysqld。

· --nice=priority

使用nice程序根據(jù)給定值來(lái)設(shè)置服務(wù)器的調(diào)度優(yōu)先級(jí)蹬碧。

· --no-defaults

不要讀任何選項(xiàng)文件舱禽。如果給出,必須首選該選項(xiàng)恩沽。

· --open-files-limit=count

mysqld能夠打開(kāi)的文件的數(shù)量誊稚。選項(xiàng)值傳遞給 ulimit -n。請(qǐng)注意你需要用root啟動(dòng)mysqld_safe來(lái)保證正確工作!

· --pid-file=path

進(jìn)程ID文件的路徑里伯。

· --port=port_num

用來(lái)幀聽(tīng)TCP/IP連接的端口號(hào)城瞎。端口號(hào)必須為1024或更大值,除非MySQL以root系統(tǒng)用戶(hù)運(yùn)行疾瓮。

· --skip-character-set-client-handshake

忽略客戶(hù)端發(fā)送的字符集信息脖镀,使用服務(wù)器的默認(rèn)字符集。(選擇該選項(xiàng)狼电,MySQL的動(dòng)作與MySQL 4.0相同)蜒灰。

· --socket=path

用于本地連接的Unix套接字文件。

· --timezone=zone

為給定的選項(xiàng)值設(shè)置TZ時(shí)區(qū)環(huán)境變量肩碟。從操作系統(tǒng)文檔查閱合法的時(shí)區(qū)規(guī)定格式强窖。

· --user={user_name | user_id}

以用戶(hù)名user_name或數(shù)字用戶(hù)ID user_id運(yùn)行mysqld服務(wù)器。(本文中的“用戶(hù)”指系統(tǒng)登錄賬戶(hù)削祈,而不是 授權(quán)表中的MySQL用戶(hù))翅溺。

執(zhí)行mysqld_safe時(shí),必須先給出--defaults-file或--defaults-extra-option髓抑,或不使用選項(xiàng)文件未巫。例如,該命令將不使用選項(xiàng)文件:

mysqld_safe --port=port_num --defaults-file=file_name
相反启昧,使用下面的命令:

mysqld_safe --defaults-file=file_name --port=port_num
一般情況mysqld_safe腳本可以啟動(dòng)從源碼或二進(jìn)制MySQL分發(fā)版安裝的服務(wù)器叙凡,即使這些分發(fā)版將服務(wù)器安裝到稍微不同的位置。 mysqld_safe期望下面的其中一個(gè)條件是真的:

· 可以根據(jù)調(diào)用mysqld_safe的目錄找到服務(wù)器和數(shù)據(jù)庫(kù)密末。在二進(jìn)制分發(fā)版中握爷,mysqld_safe看上去在bin和data目錄的工作目錄下。對(duì)于源碼分發(fā)版严里,為libexec和var目錄新啼。如果你從MySQL安裝目錄執(zhí)行mysqld_safe應(yīng)滿(mǎn)足該條件(例如,二進(jìn)制分發(fā)版為/usr/local/mysql)刹碾。

· 如果不能根據(jù)工作目錄找到服務(wù)器和數(shù)據(jù)庫(kù)燥撞,mysqld_safe試圖通過(guò)絕對(duì)路徑對(duì)它們定位。典型位置為/usr/local/libexec和/usr/local/var迷帜。實(shí)際位置由構(gòu)建分發(fā)版時(shí)配置的值確定如果MySQL安裝到配置時(shí)指定的位置物舒,它們應(yīng)該是正確的。

因?yàn)閙ysqld_safe試圖通過(guò)工作目錄找到服務(wù)器和數(shù)據(jù)庫(kù)戏锹,只要你從MySQL安裝目錄運(yùn)行mysqld_safe冠胯,可以將MySQL二進(jìn)制分發(fā)版安裝到其它位置:

shell> cd mysql_installation_directory
shell> bin/mysqld_safe &
如果mysqld_safe失敗,即使從MySQL安裝目錄調(diào)用仍然失敗锦针,你可以指定--ledir和--datadir選項(xiàng)來(lái)指示服務(wù)器和數(shù)據(jù)庫(kù)在你的系統(tǒng)中的安裝目錄荠察。

一般情況置蜀,你不應(yīng)編輯mysqld_safe腳本。相反悉盆,應(yīng)使用命令行選項(xiàng)或my.cnf選項(xiàng)文件的[mysqld_safe]部分的選項(xiàng)來(lái)配置mysqld_safe盯荤。一般不需要編輯mysqld_safe來(lái)正確啟動(dòng)服務(wù)器。但是焕盟,如果你編輯秋秤,將來(lái)升級(jí)MySQL后會(huì)覆蓋你修改的mysqld_safe版本,因此你應(yīng)對(duì)你修改的版本進(jìn)行備份以便將來(lái)重裝京髓。

在NetWare中航缀,mysqld_safe是一個(gè)NetWare Loadable Module (NLM)商架,從原Unix shell腳本移植堰怨。它執(zhí)行:

  1. 檢查系統(tǒng)和選項(xiàng)。

  2. 檢查MyISAM表蛇摸。

  3. 保持MySQL服務(wù)器窗口备图。

  4. 啟動(dòng)并監(jiān)視mysqld,如果因錯(cuò)誤終止則重啟赶袄。

  5. 將mysqld的錯(cuò)誤消息發(fā)送到數(shù)據(jù)目錄中的host_name.err 文件揽涮。

  6. 將mysqld_safe的屏幕輸出發(fā)送到數(shù)據(jù)目錄中的host_name.safe文件。

MySQL服務(wù)器啟動(dòng)腳本

在Unix中的MySQL分發(fā)版包括mysql.server腳本饿肺。它可以用于使用System V-style運(yùn)行目錄來(lái)啟動(dòng)和停止系統(tǒng)服務(wù)的系統(tǒng)蒋困,例如Linux和Solaris。它還用于MySQL的Mac OS X Startup Item敬辣。

mysql.server位于MySQL源碼樹(shù)MySQL安裝目錄下的support-files目錄中雪标。

如果你使用Linux 服務(wù)器RPM軟件包(MySQL-server-VERSION.rpm),mysql.server腳本將安裝到/etc/init.d目錄下溉跃,名為mysql村刨。你不需要 手動(dòng)安裝。

一些賣(mài)方提供的RPM軟件包安裝的啟動(dòng)腳本用其它名撰茎,例如mysqld嵌牺。

如果你從不自動(dòng)安裝mysql.server的源碼分發(fā)版或二進(jìn)制分發(fā)版格式安裝MySQL,也可以手動(dòng)安裝龄糊。

mysql.server從 [mysql.server]和選項(xiàng)文件的[mysqld]部分讀取選項(xiàng)逆粹。(為了保證向后兼容性,它還讀取 [safe_mysqld]部分炫惩,盡管在MySQL 5.1安裝中你應(yīng)將這部分重新命名為[mysqld_safe])枯饿。

mysqld_multi:管理多個(gè)MySQL服務(wù)器的程序

mysqld_multi可以管理多個(gè)幀聽(tīng)不同Unix套接字文件和TCP/IP端口的連接的mysqld 進(jìn)程。它可以啟動(dòng)或停止服務(wù)器诡必,或報(bào)告它們的當(dāng)前狀態(tài)奢方。

程序?qū)ふ襪y.cnf中的[mysqldN]組(或--config-file選項(xiàng)指定的文件)搔扁。N 可以為任何正整數(shù)。在下面的討論中該數(shù)字指選項(xiàng)組號(hào)蟋字,或GNR稿蹲。組號(hào)區(qū)別各選項(xiàng)組,并用作mysqld_multi的參數(shù)來(lái)指定想要啟動(dòng)鹊奖、停止哪個(gè)服務(wù)器或獲取哪個(gè)服務(wù)器的狀態(tài)報(bào)告苛聘。這些組中的選項(xiàng)與將用來(lái)啟動(dòng)mysqld的[mysqld]組中的相同。但是忠聚,當(dāng)使用多個(gè)服務(wù)器時(shí)设哗,需要每個(gè)服務(wù)器使用自己的選項(xiàng)值,例如Unix套接字文件和TCP/IP端口號(hào)两蟀。

要想調(diào)用mysqld_multi网梢,使用下面的語(yǔ)法:

shell> mysqld_multi [options] {start|stop|report} [GNR[,GNR] ...]
start、stop和report表示你想要執(zhí)行的操作赂毯。你可以在單個(gè)服務(wù)器或多個(gè)服務(wù)器上執(zhí)行指定的操作战虏,取決于選項(xiàng)名后面的GNR 列。如果沒(méi)有該列党涕,mysqld_multi為選項(xiàng)文件中的所有服務(wù)器執(zhí)行該操作烦感。

每個(gè)GNR值代表一個(gè)選項(xiàng)組號(hào)或組號(hào)范圍。GNR值應(yīng)為選項(xiàng)文件中組名末尾的號(hào)膛堤。例如手趣,組[mysqld17]的GNR為17。要想指定組號(hào)的范圍肥荔,用破折號(hào)間隔開(kāi)第1個(gè)和最后1個(gè)號(hào)绿渣。GNR值10-13代表組[mysqld10]到[mysqld13]〈纹螅可以在命令行中指定多個(gè)組或組范圍怯晕,用逗號(hào)間隔開(kāi)。GNR列不能有空格字符(空格或tab)缸棵;空格字符后面的內(nèi)容將被忽略掉舟茶。

該命令使用選項(xiàng)組[mysqld17]啟動(dòng)單個(gè)服務(wù)器:

shell> mysqld_multi start 17
該命令停止多個(gè)服務(wù)器,使用選項(xiàng)組[mysql8]和[mysqld10]至[mysqld13]:

shell> mysqld_multi stop 8,10-13
使用該命令列出設(shè)置選項(xiàng)文件的示例:

shell> mysqld_multi --example
mysqld_multi支持下面的選項(xiàng):

· --config-file=name

指定選項(xiàng)文件名堵第。這關(guān)系到mysqld_multi從哪里尋找[mysqldN]選項(xiàng)組吧凉。沒(méi)有該選項(xiàng),從通用my.cnf文件讀所有選項(xiàng)踏志。選項(xiàng)不影響 mysqld_multi從哪里讀取自己的選項(xiàng)阀捅,總是從通用my.cnf文件的[mysqld_multi]組讀取。

· --example

顯示示例選項(xiàng)文件针余。

· --help

顯示幫助消息并退出饲鄙。

· --log=name

指定日志文件名凄诞。如果該文件存在,后面為日志輸出忍级。

· --mysqladmin=prog_name

用來(lái)停止服務(wù)器的mysqladmin二進(jìn)制帆谍。

· --mysqld=prog_name

可用的mysqld二進(jìn)制。請(qǐng)注意你還可以將該選項(xiàng)的值指定為mysqld_safe轴咱。選項(xiàng)被傳遞給 mysqld汛蝙。確保在PATH環(huán)境變量設(shè)定值或mysqld_safe中有mysqld所在目錄。

· --no-log

按照標(biāo)準(zhǔn)輸出打印日志信息朴肺,不要寫(xiě)入日志文件窖剑。默認(rèn)情況下,輸出寫(xiě)入日志文件戈稿。

· --password=password

調(diào)用mysqladmin時(shí)使用的MySQL賬戶(hù)的密碼西土。請(qǐng)注意該密碼值不是可選項(xiàng),不象其它MySQL程序。

· --silent

禁用警告窍荧。

· --tcp-ip

通過(guò)TCP/IP端口而不是Unix套接字文件來(lái)連接每個(gè)MySQL服務(wù)器。(如果找不到套接字文件, 服務(wù)器仍然可以運(yùn)行快耿,但只能通過(guò) TCP/IP端口訪(fǎng)問(wèn))。默認(rèn)情況下猪半,使用Unix套接字文件進(jìn)行連接色冀。該選項(xiàng)影響stop和report操作。

· --user=user_name

調(diào)用mysqladmin時(shí)使用的MySQL賬戶(hù)的用戶(hù)名挪略。

· --verbose

更詳細(xì)历帚。

· --version

顯示版本信息并退出。

關(guān)于mysqld_multi的一些注解:

  •      確保停止mysqld服務(wù)器(用mysqladmin程序)的MySQL賬戶(hù)在各個(gè)服務(wù)器中的用戶(hù)名和密碼相同杠娱。并且應(yīng)確保賬戶(hù)具有SHUTDOWN權(quán)限挽牢。如果你想要管理的服務(wù)器的管理賬戶(hù)有許多不同的用戶(hù)名或密碼,你需要在每個(gè)服務(wù)器上創(chuàng)建一個(gè)賬戶(hù)摊求,并具有相同的用戶(hù)名和密碼禽拔。例如,你可以執(zhí)行下面的命令為每個(gè)服務(wù)器設(shè)置一個(gè)普通multi_admin賬戶(hù):
    
                shell> mysql -u root -S /tmp/mysql.sock -proot_password
                mysql> GRANT SHUTDOWN ON *.* TO 'multi_admin'@'localhost' IDENTIFIED BY 'multipass'室叉;

你必須為每個(gè)mysqld服務(wù)器執(zhí)行該操作睹栖。當(dāng)連接時(shí)適當(dāng)更改連接參數(shù)。請(qǐng)注意賬戶(hù)名的主機(jī)部分必須允許你用multi_admin從你想要運(yùn)行mysqld_multi的主機(jī)進(jìn)行連接茧痕。

  •     如果你使用mysqld_safe來(lái)啟動(dòng)mysqld(例如野来,--mysqld=mysqld_safe),--pid-file選項(xiàng)很重要踪旷。每個(gè)mysqld應(yīng)有自己的進(jìn)程ID文件曼氛。使用mysqld_safe而不使用mysqld的好處是mysqld_safe“守護(hù)”其mysqld進(jìn)程豁辉,如果用kill –9發(fā)送的信號(hào)或由于其它原因(例如分段故障)進(jìn)程終止,則重啟進(jìn)程舀患。請(qǐng)注意mysqld_safe腳本需要你從某個(gè)位置啟動(dòng)它秋忙。這說(shuō)明運(yùn)行mysqld_multi前你必須進(jìn)入某個(gè)目錄。如果啟動(dòng)時(shí)有問(wèn)題构舟,請(qǐng)參見(jiàn)mysqld_safe腳本灰追。特別是要檢查下列行:
    
·                ----------------------------------------------------------------
·                MY_PWD=`pwd`
·                # Check if we are starting this relative (for the binary release)
·                if test -d $MY_PWD/data/mysql -a -f ./share/mysql/english/errmsg.sys -a \
·                -x ./bin/mysqld
·                ----------------------------------------------------------------

上述行執(zhí)行的測(cè)試應(yīng)成功,否則你可能遇到了問(wèn)題狗超。

  •     每個(gè)mysqld的Unix套接字文件和TCP/IP端口號(hào)必須不同弹澎。
    
  •      你可能想要為mysqld使用--user選項(xiàng),但為此你需要用Unix root用戶(hù)運(yùn)行mysqld_multi腳本努咐。選項(xiàng)文件中有選項(xiàng)不要緊苦蒿;如果你不是超級(jí)用戶(hù),并且你用自己的Unix賬戶(hù)重啟mysqld進(jìn)程渗稍,你只會(huì)得到警告佩迟。
    
  •      重要:確保mysqld進(jìn)程啟動(dòng)所用Unix賬戶(hù)可以完全訪(fǎng)問(wèn)數(shù)據(jù)目錄。不要使用Unix root賬戶(hù)竿屹,除非你知道你在做什么报强。
    
  •      非常重要:使用mysqld_multi前,確保理解傳遞給mysqld服務(wù)器的選項(xiàng)的含義以及你為什么想要獨(dú)立的mysqld進(jìn)程拱燃。應(yīng)清楚 在相同的數(shù)據(jù)目錄下使用多個(gè)mysqld服務(wù)器的危險(xiǎn)秉溉。使用單獨(dú)的數(shù)據(jù)目錄,除非你知道你在做什么碗誉。在線(xiàn)程系統(tǒng)中召嘶,在相同的數(shù)據(jù)目錄下啟動(dòng)多個(gè)服務(wù)器不會(huì)得到超性能。
    

下面的示例顯示了你如何設(shè)置選項(xiàng)文件來(lái)使用mysqld_multi哮缺。專(zhuān)門(mén)省去第1個(gè)和第5個(gè)[mysqldN]組來(lái)說(shuō)明你的選項(xiàng)文件可以稍有不同弄跌。這樣給你更大的靈活性。mysqld程序重啟或停止的順序由它們?cè)谶x項(xiàng)文件中的順序決定尝苇。


# This file should probably be in your home dir (~/.my.cnf)
# or /etc/my.cnf
# Version 2.1 by Jani Tolonen
 
[mysqld_multi]
mysqld     = /usr/local/bin/mysqld_safe
mysqladmin = /usr/local/bin/mysqladmin
user       = multi_admin
password   = multipass
 
[mysqld2]
socket     = /tmp/mysql.sock2
port       = 3307
pid-file   = /usr/local/mysql/var2/hostname.pid2
datadir    = /usr/local/mysql/var2
language   = /usr/local/share/mysql/english
user       = john
 
[mysqld3]
socket     = /tmp/mysql.sock3
port       = 3308
pid-file   = /usr/local/mysql/var3/hostname.pid3
datadir    = /usr/local/mysql/var3
language   = /usr/local/share/mysql/swedish
user       = monty
 
[mysqld4]
socket     = /tmp/mysql.sock4
port       = 3309
pid-file   = /usr/local/mysql/var4/hostname.pid4
datadir    = /usr/local/mysql/var4
language   = /usr/local/share/mysql/estonia
user       = tonu
 
[mysqld6]
socket     = /tmp/mysql.sock6
port       = 3311
pid-file   = /usr/local/mysql/var6/hostname.pid6
datadir    = /usr/local/mysql/var6
language   = /usr/local/share/mysql/japanese
user       = jani

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末铛只,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子茎匠,更是在濱河造成了極大的恐慌格仲,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,682評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件诵冒,死亡現(xiàn)場(chǎng)離奇詭異凯肋,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)汽馋,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,277評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)侮东,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)圈盔,“玉大人,你說(shuō)我怎么就攤上這事悄雅∏茫” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,083評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵宽闲,是天一觀的道長(zhǎng)众眨。 經(jīng)常有香客問(wèn)我,道長(zhǎng)容诬,這世上最難降的妖魔是什么娩梨? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,763評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮览徒,結(jié)果婚禮上狈定,老公的妹妹穿的比我還像新娘。我一直安慰自己习蓬,他們只是感情好纽什,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,785評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著躲叼,像睡著了一般芦缰。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上押赊,一...
    開(kāi)封第一講書(shū)人閱讀 51,624評(píng)論 1 305
  • 那天饺藤,我揣著相機(jī)與錄音包斑,去河邊找鬼流礁。 笑死,一個(gè)胖子當(dāng)著我的面吹牛罗丰,可吹牛的內(nèi)容都是我干的神帅。 我是一名探鬼主播,決...
    沈念sama閱讀 40,358評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼萌抵,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼找御!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起绍填,我...
    開(kāi)封第一講書(shū)人閱讀 39,261評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤霎桅,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后讨永,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體滔驶,經(jīng)...
    沈念sama閱讀 45,722評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年卿闹,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了揭糕。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片萝快。...
    茶點(diǎn)故事閱讀 40,030評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖著角,靈堂內(nèi)的尸體忽然破棺而出揪漩,到底是詐尸還是另有隱情,我是刑警寧澤吏口,帶...
    沈念sama閱讀 35,737評(píng)論 5 346
  • 正文 年R本政府宣布奄容,位于F島的核電站,受9級(jí)特大地震影響产徊,放射性物質(zhì)發(fā)生泄漏嫩海。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,360評(píng)論 3 330
  • 文/蒙蒙 一囚痴、第九天 我趴在偏房一處隱蔽的房頂上張望叁怪。 院中可真熱鬧,春花似錦深滚、人聲如沸奕谭。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,941評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)血柳。三九已至,卻和暖如春生兆,著一層夾襖步出監(jiān)牢的瞬間难捌,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,057評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工鸦难, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留根吁,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,237評(píng)論 3 371
  • 正文 我出身青樓合蔽,卻偏偏與公主長(zhǎng)得像击敌,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子拴事,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,976評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容