Mysql5.6源碼包安裝


1. 概述

1.1 目標

搭建測試,生產數據庫參照文檔。

2. 安裝包檢查

2.1 安裝make編譯器

make編譯器下載地址:http://www.gnu.org/software/make/

(系統默認自帶)查看自己的系統是否安裝某個軟件,如果已經有了,就不用在安裝了,但是也有可能之前被卸載了。

如果你之前是使用rpm -ivh make裝的,用

# rpm -qa | grep make肯定是能夠找到的。

如果你是用

make && make install裝的。那么最好直接去找執行程序,就知道有沒裝上去

# find / -name matlab

如果裝了,它會告訴你執行程序被釋放到哪個目錄了。

++++++++++++++++++++++++++++++++++++++++++

# rpm -qa 是查看該軟件是否被安裝,# grep和# find是查看文件位置

++++++++++++++++++++++++++++++++++++++++++

# tar zxvf make-3.82.tar.gz

# cd make-3.82

# ./configure

# make

# make install

或者

[root@testdb1 ~]# rpm -qa |grep make

make-3.81-3.el5

2.2 安裝bison

bison下載地址:http://www.gnu.org/software/bison/

# tar zxvf bison-2.5.tar.gz

# cd bison-2.5

# ./configure

# make

# make install

或者

[root@testdb1 ~]# rpm -qa |grep bison

bison-2.3-2.1

2.3 安裝gcc-c++

gcc-c++下載地址:http://www.gnu.org/software/gcc/

# tar zxvf gcc-c++-4.4.4.tar.gz

# cd gcc-c++-4.4.4

#./configure

# make

# make install

2.4 安裝cmake

cmake下載地址:http://www.cmake.org/

# tar zxvf cmake-2.8.4.tar.gz

# cd cmake-2.8.4

#./configure

# make

# make install

2.5 安裝ncurses

ncurses下載地址:http://www.gnu.org/software/ncurses/

# tar zxvf ncurses-5.8.tar.gz

# cd ncurses-5.8

#./configure

# make

# make install

2.6 備注使用yum全部安裝

yum install gcc gcc-c++

yum install -y ncurses-devel

yum install -y cmake

yum install -y libaio

yum install -y bison

3. 安裝mysql數據庫

3.1 解壓mysql安裝文件

MySQL5.6下載地址:http://dev.mysql.com/

這里我在這里下載的mysql-5.6.12.tar.gz

ftp://mirror.switch.ch/mirror/mysql/Downloads/MySQL-5.6/

准備工作

# groupadd mysql

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

#增加一個名為 mysql的用戶。

-g:指定新用戶所屬的用戶組(group)

-M:不建立根目錄

-s:定義其使用的shell,/sbin/nologin代表用戶不能登錄系統。

解壓並安裝MySQL

# tar zxvf mysql-5.6.12.tar.gz

# cd mysql-5.6.12

# cmake ./

# -DCMAKE_INSTALL_PREFIX=/usr/local/mysql          \    #安裝路徑

# -DMYSQL_DATADIR=/usr/local/mysql/data            \    #數據文件存放位置

# -DSYSCONFDIR=/etc                                \    #my.cnf路徑

# -DWITH_MYISAM_STORAGE_ENGINE=1                   \    #支持MyIASM引擎

# -DWITH_INNOBASE_STORAGE_ENGINE=1                 \    #支持InnoDB引擎

# -DWITH_MEMORY_STORAGE_ENGINE=1                   \    #支持Memory引擎

# -DWITH_READLINE=1                                \    #快捷鍵功能(我沒用過)

# -DMYSQL_UNIX_ADDR=/tmp/mysqld.sock               \    #連接數據庫socket路徑

# -DMYSQL_TCP_PORT=3306                            \    #端口

# -DENABLED_LOCAL_INFILE=1                         \    #允許從本地導入數據

# -DWITH_PARTITION_STORAGE_ENGINE=1                \    #安裝支持數據庫分區

# -DEXTRA_CHARSETS=all                             \    #安裝所有的字符集

# -DDEFAULT_CHARSET=utf8                           \    #默認字符

# -DDEFAULT_COLLATION=utf8_general_ci

# make

# make install

編譯腳本執行

time cmake .

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql          \

-DMYSQL_DATADIR=/data            \

-DSYSCONFDIR=/etc                                \

-DWITH_MYISAM_STORAGE_ENGINE=1                   \

-DWITH_INNOBASE_STORAGE_ENGINE=1                 \

-DWITH_MEMORY_STORAGE_ENGINE=1                   \

-DWITH_READLINE=1                                \

-DMYSQL_UNIX_ADDR=/data/mysqld.sock               \

-DMYSQL_TCP_PORT=3306                            \

-DENABLED_LOCAL_INFILE=1                         \

-DWITH_PARTITION_STORAGE_ENGINE=1                \

-DEXTRA_CHARSETS=all                             \

-DDEFAULT_CHARSET=utf8                           \

-DDEFAULT_COLLATION=utf8_general_ci

或者簡單安裝

# Preconfiguration setup

shell> groupadd mysql

shell> useradd -r -g mysql -s /bin/false mysql

# Beginning of source-build specific instructions

shell> tar zxvf mysql-VERSION.tar.gz

shell> cd mysql-VERSION

shell> cmake .

shell> make

shell> make install

3.2 編譯完成配置mysql服務

# cd /usr/local/mysql

# chown -R mysql:mysql .

# mkdir -p /data/mysql

# chown mysql.mysql -R /data

# chmod 775 -R /data

(#這里最后是有個.的大家要注意# 為了安全安裝完成后請修改權限給root用戶)

# scripts/mysql_install_db --user=mysql    (先進行這一步再做如下權限的修改)

scripts/mysql_install_db --user=mysql --datadir=/data/mysql

和配置my.cnf 保持一致

# chown -R root:mysql .     (將權限設置給root用戶,並設置給mysql組, 取消其他用戶的讀寫執行權限,僅留給mysql "rx"讀執行權限,其他用戶無任何權限)

# chown -R mysql:mysql ./data    (數據庫存放目錄設置成mysql用戶mysql組)

# chmod -R ug+rwx  .     (賦予讀寫執行權限,其他用戶權限一律刪除僅給mysql用戶權限)

下面的命令是將mysql的配置文件拷貝到/etc

# cp support-files/my-default.cnf  /etc/my.cnf

(5.6之前的版本用如下命令)

# cp support-files/my-medium.cnf /etc/my.cnf  (5.6之前的版本是此操作,讀者也可在此時自己進入support-files文件夾下面,看是配置文件的真正名稱,那個存在,就拷貝那個。。)

修改my.cnf配置

# vi /etc/my.cnf

#[mysqld] 下面添加:

user=mysql

datadir=/data/mysql

default-storage-engine=MyISAM

備注修改 datadir=/data/mysql 需要在 scripts/mysql_install_db --user=mysql 添加 --datadir=/data/mysql

3.3 啟動mysql

# bin/mysqld_safe --user=mysql &        或者直接進入bin文件夾下面

# cd bin

#./mysqld                              \ 這里說明,mysqld_safe或者mysqld都可以啟動的

啟動mysql,看是否成功

# ps –ef|grep mysql

root     25152 25119  0 14:43 pts/2    00:00:00 tail -f /data/mysql/testdb1.err

root     25729     1  0 14:50 pts/1    00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql --pid-file=/data/mysql/testdb1.pid

mysql    25878 25729  0 14:50 pts/1    00:00:01 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/data/mysql --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/data/mysql/testdb1.err --pid-file=/data/mysql/testdb1.pid

root     26040 25932  0 15:28 pts/0    00:00:00 grep mysql

# netstat -tnl|grep 3306

tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN   

上面是一種啟動mysql的方法,還有一種簡單的方便,如下:

將mysql的啟動服務添加到系統服務中

# cp support-files/mysql.server  /etc/init.d/mysql

現在可以使用下面的命令啟動mysql

# service mysql start

停止mysql服務

# service mysql stop

重啟mysql服務

# service mysql restart

Shutting down MySQL..[  OK  ]

Starting MySQL..[  OK  ]

關閉MySQL自動啟動

[root@testdb1 init.d]# chkconfig --list |grep mysql

mysql           0:off   1:off   2:on    3:on    4:on    5:on    6:off

[root@testdb1 init.d]#

[root@testdb1 init.d]#

[root@testdb1 init.d]#

[root@testdb1 init.d]# chkconfig mysql off

[root@testdb1 init.d]# chkconfig --list |grep mysql

mysql           0:off   1:off   2:off   3:off   4:off   5:off   6:off

備注:

命令行方式啟動

[root@testdb1 ~]# cd /usr/local/mysql/bin

[root@testdb1 bin]# ./mysqld_safe &

[1] 3981

[root@testdb1 bin]# 160114 09:25:08 mysqld_safe Logging to '/data/mysql/testdb1.err'.

160114 09:25:08 mysqld_safe Starting mysqld daemon with databases from /data/mysql

關閉數據庫

[root@testdb1 bin]# mysqladmin -uroot shutdown

160114 09:27:38 mysqld_safe mysqld from pid file /data/mysql/testdb1.pid ended

[1]+  Done                    ./mysqld_safe

3.4 修改root用戶密碼

# chkconfig --add mysql

修改默認root賬戶密碼,默認密碼為空

修改密碼 cd 切換到mysql所在目錄

# cd /usr/local/mysql

# ./bin/mysqladmin -u root password

New password:

Confirm new password:

回車在接下來的提示中設置新密碼即可。。

最后

# service mysql restart;              (重啟mysql服務器)

# cd /usr/local/mysql/bin/        (進入mysql basedir下面的bin中)

# ./mysql                                (開啟客戶端)

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 2

Server version: 5.6.28 Source distribution

Copyright (c) 2000, 2015, 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>

登錄mysql測試

mysql> use mysql

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A

Database changed

mysql> select host,user from mysql.user;

+-----------+------+

| host      | user |

+-----------+------+

| 127.0.0.1 | root |

| ::1       | root |

| localhost |      |

| localhost | root |

| testdb1   |      |

| testdb1   | root |

+-----------+------+

6 rows in set (0.00 sec)

4. 常見問題

問題1  

Starting MySQL..The server quit without updating PID file ([FAILED]/mysql/Server03.mylinux.com.pid).  

解決:

修改/etc/my.cnf 中datadir,指向正確的mysql數據庫文件目錄 

問題2  

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)  

解決:

新建一個鏈接或在mysql中加入-S參數,直接指出mysql.sock位置。'''  

ln -s /usr/local/mysql/data/mysql.sock /tmp/mysql.sock  

/usr/local/mysql/bin/mysql -u root -S /usr/local/mysql/data/mysql.sock 

問題3

解決:-bash:mysql:command not found 

因為mysql命令的路徑在/usr/local/mysql/bin下面,所以你直接使用mysql命令時, 

系統在/usr/bin下面查此命令,所以找不到了  

解決辦法是:

ln -s /usr/local/mysql/bin/mysql /usr/bin 做個鏈接即可 

5. 本地Yum 源配置

5.1 yum 簡介

yum,是Yellow dog Updater, Modified 的簡稱,是杜克大學為了提高RPM 軟件包安裝性而開發的一種軟件包管理器。起初是由yellow dog 這一發行版的開發者Terra Soft 研發,用python 寫成,那時還叫做yup(yellow dog updater),后經杜克大學的Linux@Duke 開發團隊進行改進,遂有此名。yum 的宗旨是自動化地升級,安裝/移除rpm 包,收集rpm 包的相關信息,檢查依賴性並自動提示用戶解決。yum 的關鍵之處是要有可靠的repository,顧名思義,這是軟件的倉庫,它可以是http 或ftp 站點,也可以是本地軟件池,但必須包含rpm 的header,header 包括了rpm 包的各種信息,包括描述,功能,提供的文件,依賴性等。正是收集了這些header 並加以分析,才能自動化地完成余下的任務。

yum 的理念是使用一個中心倉庫(repository)管理一部分甚至一個distribution 的應用程序相互關系,根據計算出來的軟件依賴關系進行相關的升級、安裝、刪除等等操作,減少了Linux 用戶一直頭痛的dependencies 的問題。這一點上,yum 和apt 相同。apt 原為debian 的deb 類型軟件管理所使用,但是現在也能用到RedHat 門下的rpm 了。

yum 主要功能是更方便的添加/刪除/更新RPM 包,自動解決包的倚賴性問題,便於管理大量系統的更新問題。

yum 可以同時配置多個資源庫(Repository),簡潔的配置文件(/etc/yum.conf),自動解決增加或刪除rpm 包時遇到的依賴性問題,保持與RPM 數據庫的一致性。

5.2 yum源配置和光盤掛載

cd /etc/yum.repos.d

掛載本地光盤

mount -o loop /home/OL5.8x86_64dvd.iso /mnt

虛擬機掛着 ISO光盤

mount /dev/cdrom /mnt

修改yum源文件

[root@cafhxdb1 yum.repos.d]# cat my.repo

[c6-media]

name=CentOS-$releasever - Media

baseurl=file:///mnt/cdrom/Server

gpgcheck=0

enabled=1

6. RPM安裝MySQL數據庫

1. 下載MySQL 5.6
下載頁面:http://dev.mysql.com/downloads/mysql/
此處選擇“Red Hat Enterprise Linux 6 / Oracle Linux 6 (x86, 32-bit), RPM Bundle”下載,下載至/root/Downloads/目錄下,下載文件名為“MySQL-5.6.15-1.el6.i686.rpm-bundle.tar”
2. 解壓tar包
cd /root/Downloads/
tar -xvf MySQL-5.6.15-1.el6.i686.rpm-bundle.tar
3. 以RPM方式安裝MySQL
在RHEL系統中,必須先安裝“MySQL-shared-compat-5.6.15-1.el6.i686.rpm”這個兼容包,然后才能安裝server和client,否則安裝時會出錯。
yum install MySQL-shared-compat-5.6.15-1.el6.i686.rpm  # RHEL兼容包
yum install MySQL-server-5.6.15-1.el6.i686.rpm              # MySQL服務端程序
yum install MySQL-client-5.6.15-1.el6.i686.rpm                # MySQL客戶端程序
yum install MySQL-devel-5.6.15-1.el6.i686.rpm                # MySQL的庫和頭文件
yum install MySQL-shared-5.6.15-1.el6.i686.rpm              # MySQL的共享庫
4. 配置MySQL登錄密碼
cat /root/.mysql_secret  # 獲取MySQL安裝時生成的隨機密碼
service mysql start      # 啟動MySQL服務
mysql -uroot -p          # 進入MySQL,使用之前獲取的隨機密碼
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('password');  # 在MySQL命令行中設置root賬戶的密碼為password
quit  # 退出MySQL命令行
service mysql restart  # 重新啟動MySQL服務


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM