Mysql安裝、配置、優化

參考:http://www.cnblogs.com/zhangan/

 

1、 環境準備

1. 下載軟件包

wget http://test.hexin.cn/software/mysql-5.7.9.tar.gz -P /usr/local/src/html

wget http://test.hexin.cn/software/cmake-3.4.0.tar.gz -P /usr/local/src/mysql

wget http://test.hexin.cn/software/boost_1_59_0.tar.gz -P /usr/local/src/c++

2. 安裝基礎軟件

yum -y install make gcc-c++ bison-devel ncurses-develsql

2、 安裝配置MySQL

1. 編譯安裝cmake

tar zxvf /usr/local/src/cmake-3.4.0.tar.gz數據庫

cd /usr/local/src/cmake-3.4.0bootstrap

./configure && make && make install安全

2. 編譯安裝boost(編譯時不加boost,能夠不用安裝此軟件)

tar zxvf /usr/local/src/boost_1_59_0.tar.gz -C /usr/local/boost/性能優化

cd /usr/local/boost/服務器

./bootstrap.shsocket

./b2

3. 新增用戶用戶組

groupadd mysql

useradd mysql -g mysql -M -s /sbin/nologin

4. 編譯安裝MySQL

tar zxvf /usr/local/src/mysql-5.7.9.tar.gz

cd /usr/local/src/mysql-5.7.9/

cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock  -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/boost -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DWITH_SSL=system -DWITH_ZLIB=system -DWITH_LIBWRAP=0 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci

make

make install

3、經常使用配置參數

● 「—prefix」 :設定安裝路徑,默認爲「 /usr/local」 ;
● 「—datadir」 :設定MySQL數據文件存放路徑;
● 「—with-charset」 :設定系統的默認字符集;
● 「—with-collation」 :系統默認的校驗規則;
● 「—with-extra-charsets」 :出了默認字符集以外須要編譯安裝的字符集;
● 「—with-unix-socket-path」 :設定socket文件地址;
● 「—with-tcp-port」 :指定特定監聽端口,默認爲3306;
● 「—with-mysqld-user」 :指定運行mysqld的os用戶,默認爲mysql;
● 「—without-query-cache」 :禁用Query Cache功能;
● 「—without-innodb」 :禁用Innodb存儲引擎;
● 「 --with-partition」 :在5.1版本中開啓partition支持特性;
● 「 --enable-thread-safe-client」 :以線程方式編譯客戶端;
● 「—with-pthread」 :強制使用pthread 線程庫編譯;
● 「—with-named-thread-libs」 :指定使用某個特定的線程庫編譯;
● 「—without-debug」 :使用非debug模式;
● 「—with-mysqld-ldflags」 : mysqld的額外link參數;
● 「—with-client-ldflags」 : client的額外link參數;

 

4、MySQL性能優化之max_connections配置參數

MySQL的max_connections參數用來設置最大鏈接(用戶)數。每一個鏈接MySQL的用戶均算做一個鏈接,max_connections的默認值爲100。本文將講解此參數的詳細做用與性能影響。

與max_connections有關的特性

MySQL不管如何都會保留一個用於管理員(SUPER)登錄的鏈接,用於管理員鏈接數據庫進行維護操做,即便當前鏈接數已經達到了max_connections。所以MySQL的實際最大可鏈接數爲max_connections+1;
這個參數實際起做用的最大值(實際最大可鏈接數)爲16384,即該參數最大值不能超過16384,即便超過也以16384爲準;
增長max_connections參數的值,不會佔用太多系統資源。系統資源(CPU、內存)的佔用主要取決於查詢的密度、效率等;
該參數設置太小的最明顯特徵是出現」Too many connections」錯誤;

咱們先來看下如何查看當前mysql的max_connections的值:

以下sql
複製代碼 代碼以下:

show variables like "max_connections";

顯示的結果以下格式

+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| max_connections | 100   |
+-----------------+-------+

能夠經過下面的sql語句將max_connections的值設置爲200,固然前提是當前登陸的用戶有足夠的權限:

set global max_connections = 200;

這個設置會立刻生效,可是當mysql重啓時這個設置會失效,更好的辦法是修改mysql的ini配置文件my.ini

找到mysqld塊,修改或者添加下面的設置:

max_connections=200

這樣修改以後,即使重啓mysql也會默認載入這個配置了

 不過爲了安全期間,建議你們直接到my.ini裏修改,麼有能夠加上。

調整max_connections參數的值

調整此參數的方法有幾種,既能夠在編譯的時候設置,也能夠在MySQL配置文件 my.cnf 中設置,也能夠直接使用命令調整並當即生效。

一、在編譯的時候設置默認最大鏈接數

打開MySQL的源碼,進入sql目錄,修改mysqld.cc文件:
複製代碼 代碼以下:

{"max_connections", OPT_MAX_CONNECTIONS,
"The number of simultaneous clients allowed.", (gptr*) &max_connections,
(gptr*) &max_connections, 0, GET_ULONG, REQUIRED_ARG, 100, 1, 16384, 0, 1,
0},

紅色的」100″即爲該參數的默認值,修改成想要的數值,存盤退出。而後執行
複製代碼 代碼以下:

./configure;make;make install

從新編譯安裝MySQL;注意,因爲編譯安裝且修改了MySQL源碼,此操做最好在安裝MySQL以前進行;

二、在配置文件my.cnf中設置max_connections的值

打開MySQL配置文件my.cnf
複製代碼 代碼以下:

[root@www ~]# vi /etc/my.cnf

找到max_connections一行,修改成(若是沒有,則本身添加),
複製代碼 代碼以下:

max_connections = 1000

上面的1000即該參數的值。

三、實時(臨時)修改此參數的值

首先登錄mysql,執行以下命令:
複製代碼 代碼以下:

[root@www ~]# mysql -uroot -p

而後輸入MySQL Root的密碼。

查看當前的Max_connections參數值:
複製代碼 代碼以下:

mysql> SELECT @@MAX_CONNECTIONS AS 'Max Connections';

設置該參數的值:
複製代碼 代碼以下:

mysql> set GLOBAL max_connections=1000;

(注意上面命令的大小寫)

修改完成後實時生效,無需重啓MySQL。

整體來講,該參數在服務器資源夠用的狀況下應該儘可能設置大,以知足多個客戶端同時鏈接的需求。不然將會出現相似」Too many connections」的錯誤。
通常狀況下根據同時在線人數設置一個比較綜合的數字,咱們設置的是10000.
相關文章
相關標籤/搜索