MySQL為開源數據庫,因此可以基於源碼實現安裝。基於源碼安裝有更多的靈活性。也就是說我們可以針對自己的硬件平台選用合適的編譯器來優化編譯後的二進制代碼,根據不同的軟件平台環境調整相關的編譯參數,選擇自身需要選擇不同的安裝組件,設定需要的字符集等等一些可以根據特定應用場景所作的各種調整。本文描述了如何在源碼方式下安裝MySQL。
1、安裝環境及介質
復制代碼 代碼如下:
#安裝環境
SZDB:~ # cat /etc/issue
Welcome to SUSE Linux Enterprise Server 10 SP3 (x86_64) - Kernel \r (\l).
SZDB:~ # uname -a
Linux SZDB 2.6.16.60-0.54.5-smp #1 SMP Fri Sep 4 01:28:03 UTC 2009 x86_64 x86_64 x86_64 GNU/Linux
#安裝介質,可以到以下網址下載安裝介質,注意下載時選擇source code,當前版本為5.6.17
#根據你自身的環境下載相應的安裝介質,本文演示的安裝介質為Generic Linux (Architecture Independent), mysql-5.6.17.tar.gz
http://dev.mysql.com/downloads/mysql/
#源碼安裝方式官方網站鏈接: http://dev.mysql.com/doc/refman/5.6/en/installing-source-distribution.html
2、系統需求
復制代碼 代碼如下:
Source Installation System Requirements
Installation of MySQL from source requires several development tools. Some of these tools are needed no matter whether you use a standard source distribution or a development source tree. Other tool requirements depend on which installation method you use.
To install MySQL from source, your system must have the following tools, regardless of installation method:
CMake, which is used as the build framework on all platforms. CMake can be downloaded from http://www.cmake.org.
A good make program. Although some platforms come with their own make implementations, it is highly recommended that you use GNU make 3.75 or newer. It may already be available on your system as gmake. GNU make is available from http://www.gnu.org/software/make/.
A working ANSI C++ compiler. GCC 4.2.1 or later, Sun Studio 12 or later, Visual Studio 2010 or later, and many current vendor-supplied compilers are known to work.
Perl is needed if you intend to run test scripts. Most Unix-like systems include Perl. On Windows, you can use a version such as ActiveState Perl.
#使用源碼安裝上面的一些開發工具是需要的,比較重要的一個是Cmake工具,通常情況下os並沒有安裝,需要手動安裝。
#如果沒有cmake會收到這個錯誤提示:(-bash: cmake: command not found)
3、安裝cmake
復制代碼 代碼如下:
#可以到這裡下載cmake,我這裡下載的是2.6.4版本
http://www.cmake.org/cmake/resources/software.html
SZDB:~ # cd /usr/local/src/mysql_src
SZDB:/usr/local/src/mysql_src # tar -xvf cmake-2.6.4.tar.gz
SZDB:/usr/local/src/mysql_src # cd cmake-2.6.4
SZDB:/usr/local/src/mysql_src/cmake-2.6.4 # ./bootstrap
SZDB:/usr/local/src/mysql_src/cmake-2.6.4 # ./make
SZDB:/usr/local/src/mysql_src/cmake-2.6.4 # ./make install
4、安裝MySQL
復制代碼 代碼如下:
SZDB:~ # groupadd mysql
SZDB:~ # useradd -r -g mysql mysql
SZDB:~ # cd /usr/local/src/mysql_src
SZDB:/usr/local/src/mysql_src # tar -xvf mysql-5.6.17.tar.gz
SZDB:/usr/local/src/mysql_src # ls
mysql-5.6.17 mysql-5.6.17.tar.gz
SZDB:/usr/local/src/mysql_src # cd mysql-5.6.17/
SZDB:/usr/local/src/mysql_src/mysql-5.6.17 # cmake .
..........
-- Check size of wint_t - done
-- Could NOT find Curses (missing: CURSES_LIBRARY CURSES_INCLUDE_PATH)
CMake Error at cmake/readline.cmake:85 (MESSAGE): Author : Leshami
Curses library not found. Please install appropriate package, Blog : http://blog.csdn.net/leshami
remove CMakeCache.txt and rerun cmake.On Debian/Ubuntu, package name is libncurses5-dev,
on Redhat and derivates it is ncurses-devel.
Call Stack (most recent call first):
cmake/readline.cmake:128 (FIND_CURSES)
cmake/readline.cmake:202 (MYSQL_USE_BUNDLED_EDITLINE)
CMakeLists.txt:411 (MYSQL_CHECK_EDITLINE)
#如果cmake期間碰到上述錯誤,應該安裝ncurses-devel rpm包,然後移除CMakeCache.txt
-- Configuring incomplete, errors occurred!
#如有沒有對應的os安裝光盤,可以從下面的鏈接下載這個rpm包,注意對應的版本號應一致
http://www.filewatcher.com/m/ncurses-devel-5.5-18.11.x86_64.rpm.735840-0.html
SZDB:/usr/local/src/mysql_src # rpm -Uvh ncurses-devel-5.5-18.11.x86_64.rpm
Preparing... ########################################### [100%]
1:ncurses-devel ########################################### [100%]
SZDB:/usr/local/src/mysql_src/mysql-5.6.17 # rm -rf CMakeCache.txt
SZDB:/usr/local/src/mysql_src/mysql-5.6.17 # cmake . #再次執行cmake
........
-- Library mysqlserver depends on OSLIBS -lpthread;m;rt;crypt;dl;aio
-- Configuring done
-- Generating done
-- Build files have been written to: /usr/local/src/mysql_src/mysql-5.6.17
SZDB:/usr/local/src/mysql_src/mysql-5.6.17 # make
Linking CXX executable mysqltest_embedded
[100%] Built target mysqltest_embedded
Scanning dependencies of target my_safe_process
[100%] Building CXX object mysql-test/lib/My/SafeProcess/CMakeFiles/my_safe_process.dir/safe_process.cc.o
Linking CXX executable my_safe_process
[100%] Built target my_safe_process
SZDB:/usr/local/src/mysql_src/mysql-5.6.17 # make install
SZDB:/usr/local/src/mysql_src/mysql-5.6.17 # cd /usr/local/mysql
SZDB:/usr/local/mysql # chown -R mysql .
SZDB:/usr/local/mysql # chgrp -R mysql .
SZDB:/usr/local/mysql # scripts/mysql_install_db --user=mysql
..........
To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system
PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:
./bin/mysqladmin -u root password 'new-password'
./bin/mysqladmin -u root -h SZDB password 'new-password'
Alternatively you can run:
./bin/mysql_secure_installation
which will also give you the option of removing the test
databases and anonymous user created by default. This is
strongly recommended for production servers.
See the manual for more instructions.
You can start the MySQL daemon with:
cd . ; ./bin/mysqld_safe &
You can test the MySQL daemon with mysql-test-run.pl
cd mysql-test ; perl mysql-test-run.pl
New default config file was created as ./my.cnf and
will be used by default by the server when you start it.
You may edit this file to change server settings
..........
SZDB:/usr/local/mysql # chown -R root .
SZDB:/usr/local/mysql # chown -R mysql data
SZDB:/usr/local/mysql # cp support-files/mysql.server /etc/init.d/mysql.server #配置自啟動
SZDB:/usr/local/mysql # cp support-files/my-default.cnf /etc/my.cnf #添加缺省的my.cnf配置文件
SZDB:/usr/local/mysql # bin/mysqld_safe --user=mysql & #啟動mysql
[1] 21004
SZDB:/usr/local/mysql # 140521 02:54:54 mysqld_safe Logging to '/usr/local/mysql/data/SZDB.err'.
140521 02:54:54 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data
#配置環境變量,通過軟鏈或者修改環境變量實現(PATH=$PATH:/usr/local/mysql/bin/;export PATH)
SZDB:~ # ln -fs /usr/local/mysql/bin/mysql /usr/local/bin
SZDB:~ # ln -fs /usr/local/mysql/bin/mysqladmin /usr/local/bin
SZDB:~ # ln -fs /usr/local/mysql/bin/mysqld_safe /usr/local/bin
#登陸到mysql
SZDB:/usr/local/bin # mysql -uroot
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.6.17 Source distribution
Copyright (c) 2000, 2014, 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> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
+--------------------+
4 rows in set (0.00 sec)
使用binary進行安裝,文件名mysql-standard-5.0.18-linux-i686-glibc23.tar.gz
[1]將上述文件解壓到某處,並將MySQL所以目錄名改為mysql,結果應如/home/xxx/mysql
[2]根據mysql目錄下的INSTALL-BINARY文件來進行安裝
// 加用戶組mysql,以及用戶mysql;該命令無需修改
shell> groupadd mysql
shell> useradd -g mysql mysql
// 以下三步的主要目的是為MySQL解壓目錄做一個鏈接,放到usr/local目錄中
// 首先是進入/usr/local目錄;該命令無需修改
shell> cd /usr/local
// 這一步可以不需要,因為已經解壓了
shell> gunzip < /PATH/TO/MYSQL-VERSION-OS.tar.gz | tar xvf -
// 做一個到/home/xxx/mysql的鏈接,放在/usr/local中,該鏈接的名字是mysql。
// 該命令修改為ln -s /home/xxx/mysql mysql
shell>
ln -s FULL-PATH-TO-MYSQL-VERSION-OS mysql
// 進入/home/xxx/mysql目錄,/usr/local/mysql是到/home/xxx/mysql的鏈接
shell>
cd mysql
// 對MySQL進行初始化(如果以前已經安裝過MySQL,這一步可以簡略);該命令無需修改
shell> scripts/mysql_install_db --user=mysql
// 變更所有權;該命令無需修改
shell> chown -R root .
shell> chown -R mysql data
shell> chgrp -R mysql .
// 啟動MySQL服務器;該命令無需要修改
shell> bin/mysqld_safe --user=mysql &
[3]進入MySQL應用環境
進入mysql目錄下的bin目錄,運行命令./mysql -u root
-p,此時將出現password:(要求輸入密碼),但默認情況下root用戶沒有密碼,所以回車即可。此時將進入MySQL界面,當然仍然只是個命令行窗口而以。
[4]簡單使用MySQL
在MySQL環境中運行命令show databases;,將會顯示已經有的數據庫(如test);運行命令use test,將進入test數據庫...
注意:如果在運行./mysql -u root -p之後,報
Can't connect to local MySQL server through......余下全文>>
有話好說,以下是CentOS Linux 5的配置經驗:
添加mysql帳號
groupadd mysql
useradd -r -g mysql mysql
編譯必需先安裝
cmake-2.8.4 和 bison-2.4.3
安裝成功後解壓mysql-5.5.15.tar.gz:
在源碼根目錄打開終端輸入以下配置參數並回車
cmake -DCMAKE_INSTALL_PREFIX=/etc/mysql \
-DMYSQL_UNIX_ADDR=/etc/mysql/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS:STRING=utf8,gbk \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_DATADIR=/var/mysql/data \
-DMYSQL_USER=mysql
成功執行以下命令後在最後會見到 (/root/Desktop/是你的源碼目錄,視你的情況定)
-- Build files have been written to: /root/Desktop/mysql-5.5.15
運行make安裝:
make
make install
以下步驟就不一一解說了:
cd /mysql/mysql
chown -R mysql:mysql .
scripts/mysql_install_db --user=mysql
chown -R root .
chown -R mysql data
cp ./support-files/my-small.cnf ./my.cnf
cp support-files/mysql.server mysql; chmod +x mysql
chown -R mysql:root .
./mysql start
./bin/mysqladmin -u root -p 123456
添加開機啟動服務
chkconfig --add mysql
chkconfig mysql on
service mysql start
順利的話到這裡完成了,祝你成功。