一、 規範
MySQL資料庫,安裝在Linux平台,安裝源碼包(Source Package)。
1、 作業系統
作業系統為Red Hat Enterprise Linux 6.5 64位,建議glibc-2.3及以上版本。
2、 資料庫版本
資料庫統一使用mysql-5.5.30源碼包進行安裝。
3、 字元集
服務端、用戶端統一為utf8字元集。
二、 媒體及環境準備
1、 媒體準備
Mysql源碼:mysql-5.5.30.tar.gz
依賴系統環境:
Make 3.75以上
GCC 4.2.1以上
cmake 使用最新版本
2、 安裝cmake編譯環境
tar xzvf cmake-2.8.10.2.tar.gz
cd cmake-2.8.10.2
./bootstrap; make; make install
(詳細看日志可能會缺少依賴包,用yum安裝)
三、 安裝MySQL
1、 建立mysql使用者和使用者組
用root使用者進入Linux作業系統。建立mysql組,建立mysql使用者并加入到mysql組中,設定mysql使用者密碼。
#groupadd -g 550 mysql
#useradd -u 550 -g mysql mysql
#passwd mysql
2、 解壓安裝檔案
#cd /usr/local
#tar xzvf mysql-5.5.30.tar.gz
cd mysql-5.5.30
3、 配置編譯安裝
軟體安裝在/usr/local/mysql,資料檔案存放于/data/mysql/data,預設字元集為utf8,且支援所有字元集,且支援innodb存儲引擎
編譯配置參數詳細參照:
http://dev.mysql.com/doc/refman/5.5/en/source-configuration-options.html
#cd mysql-5.5.30
#cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/data/mysql \
-DDEFAULT_CHARSET=utf8 \
-DWITH_EXTRA_CHARSETS=all \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 .
#make
#make install
(需要重新配置需要重新解壓或者删除CMakeCache.txt)
4、 建立資料庫配置檔案
使用MySQL自帶的large配置檔案模闆建立資料庫配置檔案。
#mkdir /etc/my.cnf
#cp support-files/my-large.cnf /etc/my.cnf
#cp support-files/mysql.server /usr/local/mysql/bin
#chmod a+x /usr/local/mysql/bin/mysql.server
5、 建立資料目錄
#mkdir -p /data/mysql/data
#mkdir -p /data/mysql/logs
#mkdir -p /data/mysql/tmp
6. 修改目錄權限
# chown -R mysql:mysql /usr/local/mysql
# chown -R mysql:mysql /data/mysql
6、 初始化資料庫
#/usr/local/mysql/scripts/mysql_install_db --user=mysql --datadir=/data/mysql/data --basedir=/usr/local/mysql
出現下面兩行即為初始化成功
installing mysql system tables... OK
filling help table... OK
7、 設定環境變量
編輯/etc/profile的PATH變量,在檔案尾添加
#PATH=/usr/local/mysql/bin:$PATH
#export PATH=/usr/local/mysql/bin:$PATH
8、 運作mysql
使用root或mysql使用者登入Linux啟動mysql服務
#/usr/local/mysql/bin/mysql.server start
關閉mysql服務:
#/usr/local/mysql/bin/mysql.server stop
9、 使用者配置及密碼修改
使用root登入mysql,修改root密碼。指令語句中标記為紅色即為要修改的root密碼。
# mysql –uroot
mysql>delete from mysql.user where user='' or host!='localhost';
mysql>update mysql.user set password=password('rootpassword') Where user='root';
mysql>flush privileges;
增加管理使用者
mysql>grant all on *.* to admin@’xxx.xxx.xxx.xxx’ identified by ‘adminpassword’;
四、 配置及優化
在配置檔案/usr/local/mysql/my.cnf的[mysqld]下加入
//去掉反向域名解析功能
skip-name-resolve
//為邏輯CPU的數量*2
thread_concurrency=32
//允許最大連接配接數
max_connections = 1024
//索引緩沖區
key_buffer_size = 256M
//打開慢查詢配置
slow_query_log=1
long_query_time=5
//每個innodb表建立相應的資料和索引空間
innodb_file_per_table = 1
//innodb 讀寫線程優化參數,最大64根據io性能動态調整
innodb_write_io_threads=12
innodb_read_io_threads=12
//innodb 資料和索引緩沖塊
innodb_buffer_pool_size = 1024M
本文轉自 emma_cql 51CTO部落格,原文連結:http://blog.51cto.com/chenql/1669801