您好,登錄后才能下訂單哦!
這篇文章主要介紹MySQL如何管理與配置,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
mysqladmin [OPTIONS] command command....
下面是一些比較有用的命令:
status 返回服務器狀態信息
password 修改用戶口令
shutdown 關閉MySQL服務器
reload 重載MySQL授權表
refresh 重置所有高速緩存和日志
variables 返回所有服務器變量值
version 返回服務器版本
processlist 返回服務器上所有進程的列表
kill 取消一個服務器進程
ping 測試服務器是否在活動狀態
[@more@]
1.啟動和關閉服務器
Windows環境中,MySQL可以在后臺作為一個服務來啟動:
D:Program FilesMySQLMySQL Server 5.1bin>net start mysql
MySQL 服務正在啟動 .
MySQL 服務已經啟動成功。
D:Program FilesMySQLMySQL Server 5.1bin>mysqladmin -u root -p ping
Enter password: ****
mysqld is alive
而關閉服務器,可以使用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服務器狀態
使用mysqladmin的status命令可以查看服務器的當前狀態:
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
輸出結果各列的含義如下:
Uptime MySQL服務器已經運行的秒數
Threads 活躍線程(客戶)的數量
Questions 從mysqld啟動起來自客戶問題的數量
Slow queries 已經超過long_query_time秒的查詢數量
Opens mysqld已經打開了多少表
Flush tables flush ..., refresh和reload命令數量
Open tables 現在被打開的表數量
而version命令,可以輸出服務器版本等更為詳細的信息:
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命令得到擴展的狀態信息。
3.管理MySQL客戶機進程
使用mysqladmin的processlist命令,或mysql命令行的show processlist命令,可以獲得連接到服務器上所有客戶機進程的列表:
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命令中止進程。
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.修改服務器配置
1)使用選項文件
選項文件的名稱和位置:
Windows下,選項文件名為my.cnf或my.ini。位置為,%WINDIR%;C:;MySQL安裝目錄,如D:Program FilesMySQLMySQL Server 5.1;用--defaults-extra-file=path指定的文件。
Unix下,選項文件名為my.cnf。位置為,/etc;$MYSQL_HOME/;用--defaults-extra-file=path指定的文件;~/.my.cnf。
詳細說明可查閱MySQL參考手冊。
MySQL的各種程序可以從相同的選項文件讀取選項,文件中選項劃分成不同的組,如[client]、[mysql]、[mysqld]等等。例如,進行如下修改:
[client]
port=3306
# Added by yuegao Jul 7, 2009
user=root
password=pccw
那么客戶機連接服務器時,就可以使用默認的用戶名和口令:
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
類似地,可以通過設置[mysql]和[mysqld]中的選項,修改服務器進程的配置。
下面是一些配置MySQL比較常用的選項:
ansi 使用標準(ANSI)SQL語法代替MySQL語法。
basedir MySQL安裝目錄的路徑。通常所有路徑根據該路徑來解析。
datadir 數據目錄的路徑。
debug 如果MySQL配置了--with-debug,你可以使用該選項來獲得一個跟蹤文件,跟蹤mysqld正進行的操作。
default-character-set 設置默認字符集。
default-table-type 設置表的默認類型。
flush 執行SQL語句后向硬盤上寫更改。
init-file 啟動時從該文件讀SQL語句。每個語句必須在同一行中并且不應包括注釋。
language 用給定語言給出客戶端錯誤消息。
log 指定記錄MySQL信息的日志文件。
log-error 指定記錄錯誤信息的日志文件。
log-warnings 在記錄錯誤信息的日志文件中記錄警告信息。
log-slow-queries 將所有執行時間超過long_query_time 秒的查詢記入日志文件。
log-bin 指定二進制日志文件。將更改數據的所有查詢記入該文件。
port 偵聽TCP/IP連接時使用的端口號。
skip-bdb 禁用BDB存儲引擎。這樣可以節省內存,并可能加速某些操作。
skip-innodb 禁用InnoDB存儲引擎。這樣可以節省內存,并可能加速某些操作。
skip-grant-tables 該選項使服務器不使用權限系統。該權限允許訪問服務器的用戶不受限制地訪問所有數據庫。
skip-networking 不幀聽TCP/IP連接。必須通過命名管道或共享內存(在Windows中)或Unix套接字文件(在Unix中)完成mysqld的相互操作。
socket Windows中,該選項指定本地連接所使用的管道名,默認值是MySQL;Unix中,該選項指定用于本地連接的Unix套接字文件,默認值是/tmp/mysql.sock。
transaction-isolation 設置默認事務隔離級別。
user 運行服務器的用戶,可以通過用戶名或者用戶ID指定。
tmpdir 創建臨時文件的目錄路徑。
所有的選項都可以在服務器進程啟動時指定(在前面加上“--”),這樣指定的選項優先級高于選項文件中選項,更多選項及詳細說明可查閱MySQL參考手冊。
2)使用SET命令
服務器運行時,可以使用SET命令設置環境變量。例如:
mysql> set table_type = innodb;
Query OK, 0 rows affected, 1 warning (0.05 sec)
可以使用GLOBAL或SESSION關鍵字,指定進行全局設置(所有會話)或會話級設置(當前會話)。
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關鍵字需要具有SUPER權限。
下面是一些比較重要的服務器變量:
autocommit SESSION 是否打開自動提交模式。
key_buffer_size GLOBAL MyISAM表的索引塊分配了緩沖區,由所有線程共享。key_buffer_size是索引塊緩沖區的大小。鍵值緩沖區即為鍵值緩存。
table_cache GLOBAL 所有線程打開的表的數目。
table_type GLOBAL | SESSION 默認表類型(存儲引擎)。
concurrent_insert GLOBAL 是否允許INSERT和SELECT語句在中間沒有空數據塊的MyISAM表中并行運行。
interactive_timeout GLOBAL | SESSION 服務器關閉交互式連接前等待活動的秒數。
lower_case_table_names GLOBAL | SESSION 是否將表名保存為小寫形式。
sort_buffer_size GLOBAL | SESSION 每個排序線程分配的緩沖區的大小。
read_buffer_size GLOBAL | SESSION 每個線程連續掃描時為掃描的每個表分配的緩沖區的大小(字節)。
max_binlog_size GLOBAL 如果二進制日志寫入的內容超出給定值,日志就會發生滾動。不能將該變量設置為大于1GB或小于4096字節。默認值是1GB。
max_connections GLOBAL 允許的并行客戶端連接數目。增大該值則增加mysqld 需要的文件描述符的數量。
max_user_connections GLOBAL 任何給定的MySQL賬戶允許的最大同時連接數。0值表示“沒有限制”。
max_tmp_tables GLOBAL | SESSION 客戶端可以同時打開的臨時表的最大數。(但該選項還未生效。)
query_cache_type GLOBAL | SESSION 設置查詢緩存類型。
query_cache_size GLOBAL 為緩存查詢結果分配的內存的數量。默認值是0,即禁用查詢緩存。即使query_cache_type設置為0也將分配此數量的內存。
tx_isolation GLOBAL | SESSION 默認事務隔離級別。默認值為REPEATABLE-READ。
3)檢索變量值
可以使用mysqladmin的variables命令,或mysql命令行的show variables命令查看服務器變量的值。
LIKE關鍵字可以對show variables的輸出進行限制:
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的輸出則可以用操作系統命令find(Windows)、grep(Unix)等達到類似的效果:
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語句獲取單個變量的值。
mysql> select @@log_error;
+------------------------------------+
| @@log_error |
+------------------------------------+
| E:MySQL DatafilesDatayuegao.err |
+------------------------------------+
1 row in set (0.00 sec)
5.使用錯誤日志排錯
錯誤日志里保存了服務器啟動和關閉過程的記錄,關鍵的錯誤和受損表的警告等重要信息。
可以通過上面的例子中的方法確定錯誤日志的位置。
以上是“MySQL如何管理與配置”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。