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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- linux關閉防火牆命令 linux防火牆關閉和開啟命令Linux防火牆
- 3 啟動和關閉
- Oracle11g RAC啟動關閉情況大概總結Oracle
- mysql 開啟和關閉日誌記錄MySql
- Oracle 11gR2 RAC 叢集服務啟動與關閉總結Oracle
- mysql學習3:第二章:mysql安裝啟動和關閉——mysql5.6安裝MySql
- mysql學習4:第二章:mysql安裝啟動和關閉——mysql5.7安裝MySql
- 4.2.1.11 學習如何啟動和關閉CDB
- Android 書本開啟和關閉動畫Android動畫
- Linux啟動mysql命令LinuxMySql
- mysql階段04 連線工具, 連線方式, 啟動關閉mysqlMySql
- 開啟/關閉子系統的命令
- mysql學習2:第二章:mysql安裝啟動和關閉——安裝前檢查MySql
- 重啟和關閉 Linux 系統的 6 個終端命令Linux
- win10系統快速啟動怎麼關閉 關閉Windows快速啟動Win10Windows
- MySQL基礎知識和常用命令總結MySql
- 01啟動(關閉)套接字
- 9. 啟動、關閉tomcatTomcat
- 啟動與關閉服務
- centos下nginx啟動、重啟、關閉CentOSNginx
- MySQL 線上開啟&關閉GTID模式MySql模式
- Ubuntu關閉(重啟)網路服務命令Ubuntu
- db2資料庫的啟動和關閉DB2資料庫
- win10快速啟動怎麼關閉_win10如何關閉快速啟動Win10
- nginx啟動命令和停止命令。Nginx
- windows10怎麼關閉快速啟動_windows10關閉快速啟動的方法Windows
- 訂單超時自動關閉的實現方案總結
- Linux下命令列開啟關閉觸控板Linux命令列
- ubuntu下開啟/關閉防火牆 及埠 - 命令Ubuntu防火牆
- mysql關於mysql.server的總結MySqlServer
- win10 自動重啟關閉方法_win10自動重啟怎麼關閉Win10
- 如何關閉win10快速啟動_win10系統快速啟動怎麼關閉Win10
- mysql學習5:第二章:mysql安裝啟動和關閉——密碼重置及許可權管理MySql密碼
- mysql相關問題總結MySql
- mysql關於variable的總結MySql
- firewall-cmd 相關命令總結
- MySQL檢視錶和清空表的常用命令總結MySql
- nginx關閉/重啟/啟動的操作方法Nginx