MySQL啟動和關閉命令總結
MySQL啟動和關閉命令總結
----啟動MySQL mysqld --defaults-file=/etc/my.cnf --user=mysql & mysqld_safe --defaults-file=/etc/my.cnf --user=mysql & service mysql start # systemctl start mysqld /etc/init.d/mysql start mysqld_multi start #多例項 net start mysql #Windows ----關閉MySQL mysqladmin -uroot -plhr -S/tmp/mysql3306.sock shutdown #版本對應 service mysql stop # systemctl stop mysqld /etc/init.d/mysql stop mysqld_multi stop #多例項 net stop mysql #Windows mysql> shutdown; # above MySQL 5.7.9 --殺死MySQL killall mysqld killall -9 mysqld pkill -9 mysqld
MySQL多例項管理(mysqld_multi): http://blog.itpub.net/26736162/viewspace-2144199/
MySQL資料庫伺服器通常指的的是mysqld,而命令列mysql則是mysql客戶端程式,這兩個概念通常容易混淆。通常啟動mysql伺服器即是啟動mysqld程式,mysqld啟動後,可以透過mysql連線到mysql伺服器。本文主要描述了mysql伺服器的幾種啟動方式以及如何關閉mysql伺服器。
1、直接使用mysqld啟動
mysqld 即是mysql伺服器,可以呼叫該命令直接啟動mysql伺服器
mysqld 從配置檔案中讀取[mysqld]以及[server]選項組的內容,也可以透過直接在命令列跟隨引數。
mysqld伺服器讀取配置檔案的順序,對於有多個配置檔案存在,且同一引數有多個值的情形,以最後一次讀取為準。
命令列跟隨引數具有最高優先順序
#當前mysql伺服器執行環境
[root@rhel64a ~]# cat /etc/issue
Red Hat Enterprise Linux Server release 6.4 (Santiago)
#檢視mysqld啟動時的預設選項
[root@rhel64a ~]# mysqld --print-defaults
mysqld would have been started with the following arguments:
--socket=/tmp/mysql3306.sock --port=3306 --pid-file=/var/lib/mysql/my3306.pid --user=mysql --server-id=3306 --federated
[root@rhel64a ~]# ps -ef|grep mysql
root 2963 2840 0 14:10 pts/0 00:00:00 grep mysql
# Author : Leshami
# Blog : http://blog.csdn.net/leshami
#檢視mysqld啟動配置檔案的優先順序
[root@rhel64a ~]# mysqld --verbose --help |grep -A 1 "Default options"
Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf /usr/etc/my.cnf ~/.my.cnf
#檢視當前的my.cnf配置檔案
[root@rhel64a ~]# grep -v ^# /etc/my.cnf|head -n 7
[mysqld]
socket = /tmp/mysql3306.sock
port = 3306
pid-file = /var/lib/mysql/my3306.pid
user = mysql
server-id=3306
federated
#清空當前mysql伺服器的錯誤日誌檔案
[root@rhel64a ~]# cat /dev/null>/var/lib/mysql/rhel64a.ycdata.net.err
[root@rhel64a ~]# mysqld & #啟動mysqld伺服器
[1] 3480
[root@rhel64a ~]# 2014-10-25 14:20:42 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated.
Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2014-10-25 14:20:42 3480 [Note] InnoDB: Using atomics to ref count buffer pool pages
2014-10-25 14:20:42 3480 [Note] InnoDB: The InnoDB memory heap is disabled
2014-10-25 14:20:42 3480 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2014-10-25 14:20:42 3480 [Note] InnoDB: Memory barrier is not used
2014-10-25 14:20:42 3480 [Note] InnoDB: Compressed tables use zlib 1.2.3
2014-10-25 14:20:42 3480 [Note] InnoDB: Using Linux native AIO
2014-10-25 14:20:42 3480 [Note] InnoDB: Using CPU crc32 instructions
2014-10-25 14:20:42 3480 [Note] InnoDB: Initializing buffer pool, size = 128.0M
2014-10-25 14:20:42 3480 [Note] InnoDB: Completed initialization of buffer pool
2014-10-25 14:20:42 3480 [Note] InnoDB: Highest supported file format is Barracuda.
2014-10-25 14:20:42 3480 [Note] InnoDB: 128 rollback segment(s) are active.
2014-10-25 14:20:42 3480 [Note] InnoDB: Waiting for purge to start
2014-10-25 14:20:42 3480 [Note] InnoDB: 5.6.21 started; log sequence number 1626087
2014-10-25 14:20:42 3480 [Note] Server hostname (bind-address): '*'; port: 3306
2014-10-25 14:20:42 3480 [Note] IPv6 is available.
2014-10-25 14:20:42 3480 [Note] - '::' resolves to '::';
2014-10-25 14:20:42 3480 [Note] Server socket created on IP: '::'.
2014-10-25 14:20:42 3480 [Note] Event Scheduler: Loaded 0 events
2014-10-25 14:20:42 3480 [Note] mysqld: ready for connections.
Version: '5.6.21' socket: '/tmp/mysql3306.sock' port: 3306 MySQL Community Server (GPL)l
#下面可以查詢到mysqld程式
[root@rhel64a ~]# ps -ef|grep mysql|grep -v grep
mysql 18240 2641 1 20:25 pts/2 00:00:00 mysqld
[root@rhel64a ~]# mysql -uroot -pxxx -P3306 --protocol=tcp
root@localhost[(none)]> show variables like 'version';
+---------------+--------+
| Variable_name | Value |
+---------------+--------+
| version | 5.6.21 |
+---------------+--------+
2、mysql安全啟動(mysqld_safe)
mysqld_safe是一個shell 指令碼,會呼叫mysqld啟動mysql伺服器,並監聽伺服器。
如果mysqld程式異常終止,mysqld_safe將自動重啟mysqld
mysql_safe 從配置檔案中讀取[mysqld],[server],[mysqld_safe]等選項,為保證向後相容,mysql_safe還讀取[safe_mysql]選項。
#下面使用mysqladmin來關閉之前啟動的mysql伺服器
[root@rhel64a ~]# mysqladmin -uroot -pxxx shutdown -S /tmp/mysql3306.sock
[root@rhel64a ~]# ps -ef|grep mysql
root 4262 3418 0 14:40 pts/4 00:00:00 grep mysql
#下面使用mysqld_safe來啟動例項
[root@rhel64a ~]# mysqld_safe --user=mysql &
[1] 4273
[root@rhel64a ~]# 141025 14:40:34 mysqld_safe Logging to '/var/lib/mysql/rhel64a.ycdata.net.err'.
141025 14:40:34 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
#檢視啟動後的後臺程式
[root@rhel64a ~]# ps -ef|grep mysql|grep -v grep #mysqld的程式為4438,其父程式為4273,即mysqld_safe
root 4273 3418 0 14:40 pts/4 00:00:00 /bin/sh /usr/bin/mysqld_safe --user=mysql
mysql 4438 4273 0 14:40 pts/4 00:00:00 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql
--plugin-dir=/usr/lib64/mysql/plugin --user=mysql --log-error=/var/lib/mysql/rhel64a.ycdata.net.err
--pid-file=/var/lib/mysql/my3306.pid --socket=/tmp/mysql3306.sock --port=3306
[root@rhel64a ~]# mysql -uroot -pxxx -P3306 --protocol=tcp
root@localhost[(none)]> system kill -9 4438 #強制kill mysqld程式
root@localhost[(none)]> /usr/bin/mysqld_safe: line 166: 4438 Killed #下面的nohup為mysql啟動程式
nohup /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin
--user=mysql --log-error=/var/lib/mysql/rhel64a.ycdata.net.err --pid-file=/var/lib/mysql/my3306.pid
--socket=/tmp/mysql3306.sock --port=3306 < /dev/null >> /var/lib/mysql/rhel64a.ycdata.net.err 2>&1
141025 14:42:29 mysqld_safe Number of processes running now: 0
141025 14:42:29 mysqld_safe mysqld restarted #提示該程式已經自動重新啟動
#校驗mysqld是否已經成功重啟
root@localhost[(none)]> system ps -ef|grep mysql|grep -v grep
root 4273 3418 0 14:40 pts/4 00:00:00 /bin/sh /usr/bin/mysqld_safe --user=mysql
root 4517 3418 0 14:41 pts/4 00:00:00 mysql -uroot -px x -P3306 --protocol=tcp
mysql 4553 4273 0 14:42 pts/4 00:00:00 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql
--plugin-dir=/usr/lib64/mysql/plugin --user=mysql --log-error=/var/lib/mysql/rhel64a.ycdata.net.err
--pid-file=/var/lib/mysql/my3306.pid --socket=/tmp/mysql3306.sock --port=3306
root@localhost[(none)]> select databases();
ERROR 2013 (HY000): Lost connection to MySQL server during query #由於mysqld程式被殺掉,所以連線已經被斷開
root@localhost[(none)]> connect #重新連線
Connection id: 1
Current database: *** NONE ***
root@localhost[(none)]> select database();
+------------+
| database() |
+------------+
| NULL |
+------------+
3、mysql(mysql.server)服務方式啟動
mysql.server為一個shell指令碼,他會呼叫mysqld_safe,該指令碼會讀取配置檔案的[mysql.server]以及[mysqld]選項。
為向後相容,也會讀取[mysql_server]選項
#首先使用mysqladmin關閉已存在的mysqld
root@localhost[(none)]> system mysqladmin -uroot -pxxx shutdown -S /tmp/mysql3306.sock
Warning: Using a password on the command line interface can be insecure.
141025 14:47:18 mysqld_safe mysqld from pid file /var/lib/mysql/my3306.pid ended
root@localhost[(none)]> exit
Bye
[1]+ Done mysqld_safe --user=mysql
[root@rhel64a ~]# ls -hltr /etc/init.d/mysql #/etc/init.d目錄下已經配置了mysql啟動指令碼,在安裝時新增
-rwxr-xr-x 1 root root 11K Sep 11 22:18 /etc/init.d/mysql #如果為rpm方式安裝會自動新增該啟動指令碼
[root@rhel64a ~]# /etc/init.d/mysql --help #獲取mysql啟動指令碼的使用幫助
Usage: mysql {start|stop|restart|reload|force-reload|status} [ MySQL server options ]
[root@rhel64a ~]# /etc/init.d/mysql start #啟動mysqld
Starting MySQL.[ OK ]
[root@rhel64a ~]# /etc/init.d/mysql stop #停止mysqld
Shutting down MySQL..[ OK ]
#預設情況下mysql已經作為一個服務新增到系統目錄已經配置了自啟動,如下
[root@rhel64a ~]# chkconfig --list |grep mysql
mysql 0:off 1:off 2:on 3:on 4:on 5:on 6:off
root@localhost[(none)]> system ps -ef|grep mysql |grep -v grep
root 5127 1 0 14:49 pts/4 00:00:00 /bin/sh /usr/bin/mysqld_safe
--datadir=/var/lib/mysql --pid-file=/var/lib/mysql/my3306.pid
mysql 5306 5127 0 14:49 pts/4 00:00:07 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql
--plugin-dir=/usr/lib64/mysql/plugin --user=mysql --log-error=/var/lib/mysql/rhel64a.ycdata.net.err
--pid-file=/var/lib/mysql/my3306.pid --socket=/tmp/mysql3306.sock --port=3306
root 5340 3418 0 14:49 pts/4 00:00:00 mysql -uroot -px x -P3306 --protocol=tcp
#透過服務的方式啟動mysql伺服器,mysql.server呼叫mysqld_safe,然後mysql_safe呼叫了mysqld
#從上面的方式可知,無論何種啟動方式,mysqld最終都會被呼叫。因為mysqld就是mysql伺服器。
4、關閉mysql伺服器
在前面的演示中,我們已經使用了mysqladmin以及service方式來關閉例項。即可以透過這2種方式來關閉資料庫。不再演示。
#獲取mysqladmin命令列的幫助資訊,如下包含shutdown
[root@rhel64a ~]# mysqladmin --help|grep shutdown |grep server
shutdown Take server down
5、 小結
a、注意理解mysqld與mysql。mysqld為mysql伺服器或者稱之為伺服器上的例項,用於提供客戶端訪問。mysql為客戶端訪問管理工具。
b、可以透過三種方式啟動mysql伺服器(mysqld,mysqld_safe,service mysql start)
c、對於mysqld_safe,service mysql start方式,總是透過呼叫mysqld_safe來啟動mysqld程式,以防止mysqld意外宕掉而提供重啟服務。
d、可以透過mysqladmin shutdown以及service mysql stop來終止mysql伺服器
About Me
........................................................................................................................ ● 本文作者:小麥苗,部分內容整理自網路,若有侵權請聯絡小麥苗刪除 ● 本文在itpub、部落格園、CSDN和個人微 信公眾號( xiaomaimiaolhr)上有同步更新 ● 本文itpub地址: http://blog.itpub.net/26736162 ● 本文部落格園地址: http://www.cnblogs.com/lhrbest ● 本文CSDN地址: https://blog.csdn.net/lihuarongaini ● 本文pdf版、個人簡介及小麥苗雲盤地址: http://blog.itpub.net/26736162/viewspace-1624453/ ● 資料庫筆試面試題庫及解答: http://blog.itpub.net/26736162/viewspace-2134706/ ● DBA寶典今日頭條號地址: ........................................................................................................................ ● QQ群號: 230161599 、618766405 ● 微 信群:可加我微 信,我拉大家進群,非誠勿擾 ● 聯絡我請加QQ好友 ( 646634621 ),註明新增緣由 ● 於 2019-08-01 06:00 ~ 2019-08-31 24:00 在西安完成 ● 最新修改時間:2019-08-01 06:00 ~ 2019-08-31 24:00 ● 文章內容來源於小麥苗的學習筆記,部分整理自網路,若有侵權或不當之處還請諒解 ● 版權所有,歡迎分享本文,轉載請保留出處 ........................................................................................................................ ● 小麥苗的微店: ● 小麥苗出版的資料庫類叢書: http://blog.itpub.net/26736162/viewspace-2142121/ ● 小麥苗OCP、OCM、高可用網路班: http://blog.itpub.net/26736162/viewspace-2148098/ ● 小麥苗騰訊課堂主頁: https://lhr.ke.qq.com/ ........................................................................................................................ 使用 微 信客戶端掃描下面的二維碼來關注小麥苗的微 信公眾號( xiaomaimiaolhr)及QQ群(DBA寶典)、新增小麥苗微 信, 學習最實用的資料庫技術。
........................................................................................................................ |
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26736162/viewspace-2655265/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- mysql的啟動和關閉MySql
- MySQL Windows下關閉和啟動MySqlWindows
- Mysql 5.5 資料庫啟動關閉命令MySql資料庫
- nginx啟動,重啟,關閉命令Nginx
- MySQL 多例項啟動和關閉指令碼MySql指令碼
- mysql啟動和關閉外來鍵約束MySql
- oracle資料庫不同啟動命令和關閉命令全面解析Oracle資料庫
- Oracle日常運維操作總結-資料庫的啟動和關閉Oracle運維資料庫
- mysql啟動與關閉(手動與自動)MySql
- linux關閉防火牆命令 linux防火牆關閉和開啟命令Linux防火牆
- Oracle11g RAC啟動關閉情況大概總結Oracle
- linux svn啟動和關閉Linux
- 資料庫啟動和關閉資料庫
- MYSQL5.7 MASTER-SLAVE 線上關閉和啟動GTIDMySqlAST
- 在Linux平臺下啟動和關閉MySQL服務LinuxMySql
- oracle自動啟動和關閉的方法Oracle
- mysql 開啟和關閉日誌記錄MySql
- oracle 11g RAC 啟動和關閉和一些維護命令Oracle
- ASM CRS 例項啟動和關閉ASM
- AIX上關閉和啟動X serverAIServer
- Oracle例項的啟動和關閉Oracle
- oracle結構梳理----checkpoint——啟動與關閉Oracle
- RAC常用開啟關閉命令 - CRSCTL和SRVCTL 用法
- Oracle 11g RAC的啟動、關閉及修改歸檔總結Oracle
- Oracle自動啟動和關閉的方法 (轉)Oracle
- MySQL 叢集的安全關閉和重啟方法MySql
- Oracle 11gR2 RAC叢集服務啟動與關閉總結Oracle
- Oracle 11gR2 RAC 叢集服務啟動與關閉總結Oracle
- Oracle DG主備啟動和關閉流程Oracle
- oracle 例項啟動和關閉解讀Oracle
- oracle啟動和關閉指令碼for LinuxOracle指令碼Linux
- Oracle資料庫的啟動和關閉Oracle資料庫
- ORACLE RAC 的啟動和關閉順序Oracle
- 2 Day DBA-管理Oracle例項-關於例項的啟動和關閉-管理啟動和關閉許可權Oracle
- windows下mysql的安裝於使用(啟動、關閉)WindowsMySql
- oracle啟動與關閉Oracle
- ORACLE DataGuard 關閉啟動Oracle
- 啟動/關閉 dynamic viewView