系統環境:Linux 2.6.32-642.el6.x86_64html
需求爲在linux系統上採用源碼安裝的方式安裝mysqlmysql
版本:MySQL 5.6.20linux
1. 下載源碼文件,進入mysql官網:http://dev.mysql.com/,依次點擊Downloads--->Archives--->MySQL Community Server,或在地址欄直接輸入http://downloads.mysql.com/archives/community/進入下載頁面,根據系統版本選擇相應下載按鈕。也可在首頁下載最新版本,本教程以5.6.20爲例。sql
2. 安裝源碼以前linux可能須要的環境:vim
[root@Vmware22 Downloads]# yum install cmake .... [root@Vmware22 Downloads]# yum groupinstall "Development tools" .... [root@Vmware22 Downloads]# yum install openssl openssl-devel zlib zlib-devel ncurses-devel ncurses readline readline-devel ....
3. 安裝以前還須要把硬盤作成lvm進行管理方便之後進行磁盤擴容(這裏假設新添加了一塊硬盤)bash
3.1 查看磁盤信息:fdisk -l服務器
3.2 對新添加的磁盤sdb分區及格式化:socket
[root@Vmware22 ~]# fdisk /dev/sdb .... Command (m for help):m ----使用m查看幫助信息 .... Command (m for help):n ----新建分區 Command action e extended p primary partition (1-4) p Partition number (1-4):1 First cylinder (1-2610, default 1): ----直接回車 Using default value 1 Last cylinder, +cylinders or +size{K,M,G} (1-2610, default 2610):+10G ----因爲後面進行動態磁盤配額,故只分配10G Command (m for help): w ----寫入磁盤並退出 The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks. [root@Vmware22 ~]# fdisk -l 再次檢查磁盤信息 ...
3.3 依次輸入下面命令:rest
[root@Vmware22 ~]# pvscan ----檢查有無PV在系統上。PV用於將物理硬盤分區初始化爲物理卷,以便LVM使用 No matching physical volumes found [root@Vmware22 ~]# pvcreate /dev/sdb1 ----將sdb1分區轉成pv。若是有多個分區,可用pvcreate /dev/sdb{1,2,3,4} Physical volume "/dev/sdb1" successfully created [root@Vmware22 ~]# vgcreate myvg /dev/sdb1 ----建立卷組"myvg",而且將/dev/sdb1添加到卷組中。 Volume group "myvg" successfully created [root@Vmware22 ~]# lvcreate -L 10G -n mydata myvg ----在卷組"myvg"上建立一個10G的邏輯卷。 Logical volume "mydata" created. [root@Vmware22 ~]# mke2fs -j /dev/myvg/mydata .... [root@Vmware22 ~]# mkdir /mydata [root@Vmware22 ~]# vim /etc/fstab ----實現開機自動掛載/dev/sdb1,在打開的文件中添加以下信息: /dev/myvg/mydata /mydata ext4 defaults 0 0 -------------注意格式與原文件一致,保存退出 [root@Vmware22 ~]# mount -a ----檢測配置信息,如無任何輸出信息則證實掛載正確,不然可能會致使下次開機時沒法正確開機 [root@Vmware22 ~]#
3.4 準備用戶:code
[root@Vmware22 ~]# groupadd -r mysql groupadd: group 'mysql' already exists [root@Vmware22 ~]# useradd -r -g mysql -s /sbin/nologin mysql useradd: user 'mysql' already exists [root@Vmware22 ~]# mkdir /mydata/data ----建立保存mysql數據的目錄 [root@Vmware22 ~]# chown mysql.mysql /mydata/data/ -R ----修改權限讓mysql用戶和用戶組對其擁有權限 [root@Vmware22 ~]#
4. 開始安裝:
此處爲cmake編譯參數設置,因爲過長粘貼在此,可在下圖中查看信息:
[root@Vmware22 ~]# cmake . -DCMAKE_INSTALL_PREFIX=/data/program/mysql -DMYSQL_DATADIR=/mydata/data -DSYSCONFDIR=/etc -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_SSL=system -DWITH_ZLIB=system -DWITH_LIBWRAP=0 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci
[root@Vmware22 Downloads]# ls mysql-5.6.20.tar.gz [root@Vmware22 Downloads]# tar -xvf mysql-5.6.20.tar.gz .... [root@Vmware22 Downloads]# cd mysql-5.6.20 [root@Vmware22 mysql-5.6.20]# cmake . -DCMAKE_INSTALL_PREFIX=/data/program/mysql \ ----自定義安裝目錄,\爲先不執行等待下面的命令繼續輸入 > -DMYSQL_DATADIR=/mydata/data \ ----自定義數據保存目錄,即前文3.4定義的/mydata/data,下面的參數不需記錄,複製粘貼便可 > -DSYSCONFDIR=/etc -DWITH_INNOBASE_STORAGE_ENGINE=1 \ > -DWITH_ARCHIVE_STORAGE_ENGINE=1 \ > -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_SSL=system \ > -DWITH_ZLIB=system -DWITH_LIBWRAP=0 \ > -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 \ > -DDEFAULT_COLLATION=utf8_general_ci ----cmake爲編譯文件 .... [root@Vmware22 mysql-5.6.20]# make && make installmake
5. 配置信息:
[root@Vmware22 mysql-5.6.20]# cd /data/program/mysql/ [root@Vmware22 mysql]# scripts/mysql_install_db --user=mysql --datadir=/mydata/data/ .... [root@Vmware22 mysql]# vim /etc/profile.d/1.sh 實現開機啓動此腳本,名字可任取 export PATH=$PATH:/usr/local/mysql/bin ----配置環境信息,保存退出 [root@Vmware22 mysql]# /bin/bash /etc/profile.d/1.sh ----運行該腳本文件 [root@Vmware22 mysql]# cp support-files/mysql.server /etc/init.d/mysqld56 [root@Vmware22 mysql]# cp /etc/my.cnf /etc/my.cnf.bck ----備份該文件 [root@Vmware22 mysql]# cp support-files/my-default.cnf /etc/my.cnf ----若是有提示是否覆蓋,按y [root@Vmware22 mysql]# vim /etc/my.cnf 添加如下信息 [client] port = 3306 socket = /tmp/mysql.sock [mysqld] port = 3306 socket = /tmp/mysql.sock skip-external-locking key_buffer_size = 256M max_allowed_packe = 1M table_open_cache = 256 sort_buffer_size = 1M read_buffer_size = 1M read_rnd_buffer_size = 4M myisam_sort_buffer_size = 64M thread_cache_size = 8 query_cache_size = 16M thread_concurrency = 4 datadir = /mydata/data ----保存退出 [root@Vmware22 mysql]# /etc/init.d/mysqld56 restart MySQL server PID file could not be found! [FAILED] Starting MySQL.. [ OK ]
6. 安裝成功後,默認的root用戶密碼爲空,使用下面命令來建立root密碼:
[root@Vmware22 mysql]# mysqladmin -uroot password 'new_pass' ----new_pass爲密碼
7. 登陸mysql服務器:
[root@Vmware22 mysql]# mysql -uroot -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2 Server version: 5.6.20 Source distribution Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>
8.附加:
8.1 yum install mysql安裝的mysql版本太低
8.2 爲方便也可以使用官網提供的rpm包:分別下載mysql服務器端和客戶端包
# rpm -ivh /root/Download/MySQL-server-*.*.rpm MySQL-client-*.*.rpm MySQL-devel-*.*.rpm .... ----*.*爲下載rpm包的版本號
rpm安裝具體配置信息參考:http://www.cnblogs.com/sunson/articles/2172086.html