溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

MySQL如何管理與配置

發(fā)布時(shí)間:2021-11-06 13:54:39 來(lái)源:億速云 閱讀:115 作者:小新 欄目:MySQL數(shù)據(jù)庫(kù)

這篇文章主要介紹MySQL如何管理與配置,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

mysqladmin [OPTIONS] command command....

   下面是一些比較有用的命令:

status        返回服務(wù)器狀態(tài)信息
password    修改用戶(hù)口令
shutdown    關(guān)閉MySQL服務(wù)器
reload        重載MySQL授權(quán)表
refresh        重置所有高速緩存和日志
variables    返回所有服務(wù)器變量值
version        返回服務(wù)器版本
processlist    返回服務(wù)器上所有進(jìn)程的列表
kill        取消一個(gè)服務(wù)器進(jìn)程
ping        測(cè)試服務(wù)器是否在活動(dòng)狀態(tài)

[@more@]
1.啟動(dòng)和關(guān)閉服務(wù)器

   Windows環(huán)境中,MySQL可以在后臺(tái)作為一個(gè)服務(wù)來(lái)啟動(dòng):

D:Program FilesMySQLMySQL Server 5.1bin>net start mysql
MySQL 服務(wù)正在啟動(dòng) .
MySQL 服務(wù)已經(jīng)啟動(dòng)成功。


D:Program FilesMySQLMySQL Server 5.1bin>mysqladmin -u root -p ping
Enter password: ****
mysqld is alive

   而關(guān)閉服務(wù)器,可以使用mysqladmin的shutdown命令:

D:Program FilesMySQLMySQL Server 5.1bin>mysqladmin -u root -p shutdown
Enter password: ****

D:Program FilesMySQLMySQL Server 5.1bin>mysqladmin -u root -p ping
Enter password: ****
mysqladmin: connect to server at 'localhost' failed
error: 'Can't connect to MySQL server on 'localhost' (10061)'
Check that mysqld is running on localhost and that the port is 3306.
You can check this by doing 'telnet localhost 3306'


2.檢查MySQL服務(wù)器狀態(tài)

   使用mysqladmin的status命令可以查看服務(wù)器的當(dāng)前狀態(tài):

D:Program FilesMySQLMySQL Server 5.1bin>mysqladmin -u root -p status
Enter password: ****
Uptime: 770  Threads: 1  Questions: 8  Slow queries: 0  Opens: 15  Flush tables: 1  Open tables: 8
Queries per second avg: 0.10

   輸出結(jié)果各列的含義如下:

Uptime                   MySQL服務(wù)器已經(jīng)運(yùn)行的秒數(shù)
Threads                  活躍線(xiàn)程(客戶(hù))的數(shù)量  
Questions                從mysqld啟動(dòng)起來(lái)自客戶(hù)問(wèn)題的數(shù)量  
Slow queries             已經(jīng)超過(guò)long_query_time秒的查詢(xún)數(shù)量  
Opens                    mysqld已經(jīng)打開(kāi)了多少表  
Flush tables             flush ..., refresh和reload命令數(shù)量  
Open tables              現(xiàn)在被打開(kāi)的表數(shù)量

   而version命令,可以輸出服務(wù)器版本等更為詳細(xì)的信息:

D:Program FilesMySQLMySQL Server 5.1bin>mysqladmin -u root -p version
Enter password: ****
mysqladmin  Ver 8.42 Distrib 5.1.34, for Win32 on ia32
Copyright 2000-2008 MySQL AB, 2008 Sun Microsystems, Inc.
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL license

Server version          5.1.34-community
Protocol version        10
Connection              localhost via TCP/IP
TCP port                3306
Uptime:                 17 min 42 sec

Threads: 1  Questions: 9  Slow queries: 0  Opens: 15  Flush tables: 1  Open tables: 8  Queries per s
econd avg: 0.8

   還可以使用extended-status命令或mysql命令行的show status命令得到擴(kuò)展的狀態(tài)信息。


3.管理MySQL客戶(hù)機(jī)進(jìn)程

   使用mysqladmin的processlist命令,或mysql命令行的show processlist命令,可以獲得連接到服務(wù)器上所有客戶(hù)機(jī)進(jìn)程的列表:

D:Program FilesMySQLMySQL Server 5.1bin>mysqladmin -u root -p processlist
Enter password: ****
+----+------+----------------+----+---------+------+-------+------------------+
| Id | User | Host           | db | Command | Time | State | Info             |
+----+------+----------------+----+---------+------+-------+------------------+
| 6  | root | localhost:1612 |    | Query   | 0    |       | show processlist |
+----+------+----------------+----+---------+------+-------+------------------+

   然后可以用mysqladmin的kill命令,或mysql命令行的kill命令中止進(jìn)程。

D:Program FilesMySQLMySQL Server 5.1bin>mysqladmin -u root -p processlist
Enter password: ****
+----+------+----------------+----+---------+------+-------+------------------+
| Id | User | Host           | db | Command | Time | State | Info             |
+----+------+----------------+----+---------+------+-------+------------------+
| 7  | root | localhost:1616 |    | Sleep   | 7    |       |                  |
| 8  | root | localhost:1617 |    | Query   | 0    |       | show processlist |
+----+------+----------------+----+---------+------+-------+------------------+

D:Program FilesMySQLMySQL Server 5.1bin>mysqladmin -u root -p kill 7
Enter password: ****

D:Program FilesMySQLMySQL Server 5.1bin>


4.修改服務(wù)器配置

 1)使用選項(xiàng)文件

   選項(xiàng)文件的名稱(chēng)和位置:

   Windows下,選項(xiàng)文件名為my.cnf或my.ini。位置為,%WINDIR%;C:;MySQL安裝目錄,如D:Program FilesMySQLMySQL Server 5.1;用--defaults-extra-file=path指定的文件。
   Unix下,選項(xiàng)文件名為my.cnf。位置為,/etc;$MYSQL_HOME/;用--defaults-extra-file=path指定的文件;~/.my.cnf。
   詳細(xì)說(shuō)明可查閱MySQL參考手冊(cè)。

   MySQL的各種程序可以從相同的選項(xiàng)文件讀取選項(xiàng),文件中選項(xiàng)劃分成不同的組,如[client]、[mysql]、[mysqld]等等。例如,進(jìn)行如下修改:

[client]

port=3306

# Added by yuegao Jul 7, 2009
user=root
password=pccw

   那么客戶(hù)機(jī)連接服務(wù)器時(shí),就可以使用默認(rèn)的用戶(hù)名和口令:

D:Program FilesMySQLMySQL Server 5.1bin>mysql
Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 13
Server version: 5.1.34-community MySQL Community Server (GPL)

Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.

mysql> select user();
+----------------+
| user()         |
+----------------+
| root@localhost |
+----------------+
1 row in set (0.03 sec)

mysql> exit
Bye

D:Program FilesMySQLMySQL Server 5.1bin>mysqladmin status
Uptime: 3044  Threads: 1  Questions: 24  Slow queries: 0  Opens: 15  Flush tables: 1  Open tables:
 Queries per second avg: 0.7

   類(lèi)似地,可以通過(guò)設(shè)置[mysql]和[mysqld]中的選項(xiàng),修改服務(wù)器進(jìn)程的配置。
   下面是一些配置MySQL比較常用的選項(xiàng):

ansi            使用標(biāo)準(zhǔn)(ANSI)SQL語(yǔ)法代替MySQL語(yǔ)法。
basedir            MySQL安裝目錄的路徑。通常所有路徑根據(jù)該路徑來(lái)解析。
datadir            數(shù)據(jù)目錄的路徑。
debug            如果MySQL配置了--with-debug,你可以使用該選項(xiàng)來(lái)獲得一個(gè)跟蹤文件,跟蹤mysqld正進(jìn)行的操作。
default-character-set    設(shè)置默認(rèn)字符集。
default-table-type    設(shè)置表的默認(rèn)類(lèi)型。
flush            執(zhí)行SQL語(yǔ)句后向硬盤(pán)上寫(xiě)更改。
init-file        啟動(dòng)時(shí)從該文件讀SQL語(yǔ)句。每個(gè)語(yǔ)句必須在同一行中并且不應(yīng)包括注釋。
language        用給定語(yǔ)言給出客戶(hù)端錯(cuò)誤消息。
log            指定記錄MySQL信息的日志文件。
log-error        指定記錄錯(cuò)誤信息的日志文件。
log-warnings        在記錄錯(cuò)誤信息的日志文件中記錄警告信息。
log-slow-queries    將所有執(zhí)行時(shí)間超過(guò)long_query_time 秒的查詢(xún)記入日志文件。
log-bin            指定二進(jìn)制日志文件。將更改數(shù)據(jù)的所有查詢(xún)記入該文件。
port            偵聽(tīng)TCP/IP連接時(shí)使用的端口號(hào)。
skip-bdb        禁用BDB存儲(chǔ)引擎。這樣可以節(jié)省內(nèi)存,并可能加速某些操作。
skip-innodb        禁用InnoDB存儲(chǔ)引擎。這樣可以節(jié)省內(nèi)存,并可能加速某些操作。
skip-grant-tables    該選項(xiàng)使服務(wù)器不使用權(quán)限系統(tǒng)。該權(quán)限允許訪(fǎng)問(wèn)服務(wù)器的用戶(hù)不受限制地訪(fǎng)問(wèn)所有數(shù)據(jù)庫(kù)。
skip-networking        不幀聽(tīng)TCP/IP連接。必須通過(guò)命名管道或共享內(nèi)存(在Windows中)或Unix套接字文件(在Unix中)完成mysqld的相互操作。
socket            Windows中,該選項(xiàng)指定本地連接所使用的管道名,默認(rèn)值是MySQL;Unix中,該選項(xiàng)指定用于本地連接的Unix套接字文件,默認(rèn)值是/tmp/mysql.sock。
transaction-isolation    設(shè)置默認(rèn)事務(wù)隔離級(jí)別。
user            運(yùn)行服務(wù)器的用戶(hù),可以通過(guò)用戶(hù)名或者用戶(hù)ID指定。
tmpdir            創(chuàng)建臨時(shí)文件的目錄路徑。

   所有的選項(xiàng)都可以在服務(wù)器進(jìn)程啟動(dòng)時(shí)指定(在前面加上“--”),這樣指定的選項(xiàng)優(yōu)先級(jí)高于選項(xiàng)文件中選項(xiàng),更多選項(xiàng)及詳細(xì)說(shuō)明可查閱MySQL參考手冊(cè)。

 2)使用SET命令

   服務(wù)器運(yùn)行時(shí),可以使用SET命令設(shè)置環(huán)境變量。例如:

mysql> set table_type = innodb;
Query OK, 0 rows affected, 1 warning (0.05 sec)

   可以使用GLOBAL或SESSION關(guān)鍵字,指定進(jìn)行全局設(shè)置(所有會(huì)話(huà))或會(huì)話(huà)級(jí)設(shè)置(當(dāng)前會(huì)話(huà))。

mysql> set global table_type = innodb;
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> set session table_type = innodb;
Query OK, 0 rows affected, 1 warning (0.00 sec)

   使用GLOBAL關(guān)鍵字需要具有SUPER權(quán)限。
   下面是一些比較重要的服務(wù)器變量:

autocommit        SESSION            是否打開(kāi)自動(dòng)提交模式。
key_buffer_size        GLOBAL            MyISAM表的索引塊分配了緩沖區(qū),由所有線(xiàn)程共享。key_buffer_size是索引塊緩沖區(qū)的大小。鍵值緩沖區(qū)即為鍵值緩存。
table_cache        GLOBAL            所有線(xiàn)程打開(kāi)的表的數(shù)目。
table_type        GLOBAL | SESSION    默認(rèn)表類(lèi)型(存儲(chǔ)引擎)。
concurrent_insert    GLOBAL            是否允許INSERT和SELECT語(yǔ)句在中間沒(méi)有空數(shù)據(jù)塊的MyISAM表中并行運(yùn)行。
interactive_timeout    GLOBAL | SESSION    服務(wù)器關(guān)閉交互式連接前等待活動(dòng)的秒數(shù)。
lower_case_table_names    GLOBAL | SESSION    是否將表名保存為小寫(xiě)形式。
sort_buffer_size    GLOBAL | SESSION    每個(gè)排序線(xiàn)程分配的緩沖區(qū)的大小。
read_buffer_size    GLOBAL | SESSION    每個(gè)線(xiàn)程連續(xù)掃描時(shí)為掃描的每個(gè)表分配的緩沖區(qū)的大小(字節(jié))。
max_binlog_size        GLOBAL            如果二進(jìn)制日志寫(xiě)入的內(nèi)容超出給定值,日志就會(huì)發(fā)生滾動(dòng)。不能將該變量設(shè)置為大于1GB或小于4096字節(jié)。默認(rèn)值是1GB。
max_connections        GLOBAL            允許的并行客戶(hù)端連接數(shù)目。增大該值則增加mysqld 需要的文件描述符的數(shù)量。
max_user_connections    GLOBAL            任何給定的MySQL賬戶(hù)允許的最大同時(shí)連接數(shù)。0值表示“沒(méi)有限制”。
max_tmp_tables        GLOBAL | SESSION    客戶(hù)端可以同時(shí)打開(kāi)的臨時(shí)表的最大數(shù)。(但該選項(xiàng)還未生效。)
query_cache_type    GLOBAL | SESSION    設(shè)置查詢(xún)緩存類(lèi)型。
query_cache_size    GLOBAL            為緩存查詢(xún)結(jié)果分配的內(nèi)存的數(shù)量。默認(rèn)值是0,即禁用查詢(xún)緩存。即使query_cache_type設(shè)置為0也將分配此數(shù)量的內(nèi)存。
tx_isolation        GLOBAL | SESSION    默認(rèn)事務(wù)隔離級(jí)別。默認(rèn)值為REPEATABLE-READ。

 3)檢索變量值

   可以使用mysqladmin的variables命令,或mysql命令行的show variables命令查看服務(wù)器變量的值。
   LIKE關(guān)鍵字可以對(duì)show variables的輸出進(jìn)行限制:

mysql> show variables like '%cache_size%';
+-----------------------+------------+
| Variable_name         | Value      |
+-----------------------+------------+
| binlog_cache_size     | 32768      |
| max_binlog_cache_size | 4294963200 |
| query_cache_size      | 15728640   |
| thread_cache_size     | 8          |
+-----------------------+------------+
4 rows in set (0.00 sec)

   而mysqladmin variables的輸出則可以用操作系統(tǒng)命令find(Windows)、grep(Unix)等達(dá)到類(lèi)似的效果:

D:Program FilesMySQLMySQL Server 5.1bin>mysqladmin variables | find "cache_size"
| binlog_cache_size               | 32768
                         |
| max_binlog_cache_size           | 4294963200
                         |
| query_cache_size                | 15728640
                         |
| thread_cache_size               | 8
                         |

   此外,還可以SELECT @@variable語(yǔ)句獲取單個(gè)變量的值。

mysql> select @@log_error;
+------------------------------------+
| @@log_error                        |
+------------------------------------+
| E:MySQL DatafilesDatayuegao.err |
+------------------------------------+
1 row in set (0.00 sec)

5.使用錯(cuò)誤日志排錯(cuò)

   錯(cuò)誤日志里保存了服務(wù)器啟動(dòng)和關(guān)閉過(guò)程的記錄,關(guān)鍵的錯(cuò)誤和受損表的警告等重要信息。
   可以通過(guò)上面的例子中的方法確定錯(cuò)誤日志的位置。

以上是“MySQL如何管理與配置”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI