MySQL是一個關係型數據庫管理系統,由瑞典MySQL AB公司開發,目前屬於Oracle公司。MySQL所使用的SQL語言是用於訪問數據庫的最經常使用標準化語言。因爲其體積小、速度快、整體擁有成本低,尤爲是開放源碼這一特色,通常中小型網站的開發都選擇MySQL做爲網站數據庫。因爲其社區版的性能卓越,搭配PHP和Apache可組成良好的開發環境。本篇將爲你們講解mysql的簡單部署。mysql
mysql的分爲四個版本:linux
1
2
3
4
|
Alpha版:通常只在軟件開發公司內部運行,不對外公開。
Beta版:完成功能的開發和全部的測試工做以後的產品,不會存在較大的漏洞和BUG,而且邀請和提供給用戶體驗與測試,以便更全面地測試軟件的不足之處或存在的問題。
RC版:屬於生產環境發佈以前的一個小版本或稱候選版本,是測試Beta版本二收集到的BUG或不足之處,根據手機到的信息而進行修復和完善以後的產品。
GA版本:軟件產品正式發佈的版本,也成生產版本的產品。
|
而且mysql爲了更好發展將版本路線分爲了三條。web
1
2
3
|
第一條產品線:從5.0版本升級到5.1的系列版本,繼續完善與改進其用戶體驗和性能,同時增長新功能。
第二條產品線:爲了更好的整合MySQL AB公司,社區和新功能。版本編號從5.4開始,目前發展到5.6。
第三條產品線:爲了更好推廣MySQL Cluster 版本,從6.0版本開始,目前發展到7.3版本。
|
因爲mysql不一樣產品線之間的編譯安裝方法還有差異,所以本篇將分別爲你們講解mysql的5.1.7版本和5.6.13版本的簡單部署。正則表達式
5.1.7版本sql
1
2
3
4
5
6
7
8
|
環境
CentOS6.4 x86_64位 採用最小化安裝,系統通過了基本優化
selinux爲關閉狀態,iptables爲無限制模式
ip:192.168.1.113
/24
mysql版本:mysql-5.1.70
源碼包存放位置:
/server/tools
源碼包編譯安裝位置:
/etc/local/
軟件名稱
數據庫存放位置:
/mydata
|
1、準備工做數據庫
一、開發環境部署bash
1
2
|
[root@c64-web ~]
# yum groupinstall "Development tools" "Server Platform Development" -y #安裝這兩個開發環境的軟件包組
[root@c64-web ~]
# yum install pcre* -y #安裝pcre兼容的正則表達式
|
二、建立用戶及目錄服務器
1
2
3
|
[root@c64-web ~]
# useradd -s /sbin/nologin -M mysql #建立mysql用戶,並加入mysql組,不建立家目錄,關閉登錄
[root@c64-web ~]
# mkdir /mydata #建立數據庫存放目錄
[root@c64-web ~]
# chown -R mysql.mysql /mydata
|
三、下載源碼包
socket
1
2
|
[root@c64-web ~]
# cd /server/tools
[root@c64-web tools]
# wget http://mysql.ntu.edu.tw/Downloads/MySQL-5.1/mysql-5.1.70.tar.gz
|
2、編譯安裝tcp
準備工做已經作好了,如今咱們就開始編譯安裝mysql。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
[root@c64-web tools]
# tar zxf mysql-5.1.70.tar.gz
[root@c64-web tools]
# cd mysql-5.1.70
[root@c64-web mysql-5.1.70]
# ./configure \
--prefix=
/usr/local/mysql
\
#設定mysql安裝路徑,默認爲/usr/local
--with-unix-socket-path=
/usr/local/mysql/tmp/mysql
.sock \
#指定Mysql socket文件存放目錄
--localstatedir=
/mydata
\
#設定mysql的數據文件存放位置
--
enable
-assembler \
#容許使用匯編模式(優化性能)
--
enable
-thread-safe-client \
#以線程方式編譯客戶端
--with-mysqld-user=mysql \
#指定MySQL運行的系統用戶
--with-big-tables \
#啓用大表支持
--without-debug \
#使用非debug模式
--with-pthread \
#強制使用pthread線程序庫編譯
--with-extra-charsets=complex \
#複雜字符集支持
--with-readline \
#使用系統readline代替捆綁副本。
--with-ssl \
#啓用ssl加密
--with-embedded-server \
#構建嵌入式MySQL庫 (libmysqld.a)
--
enable
-
local
-infile \
#讓mysql支持從本地加載數據庫(默認關閉)
--with-plugins=partition
#mysql分區功能支持
--with-plugins=innobase \
#innobas存儲引擎支持
--with-mysqld-ldflags=-all-static \
#服務器使用靜態庫(優化性能)
--with-client-ldflags=-all-static
#客戶端使用靜態庫(優化性能)
[root@c64-web mysql-5.1.70]
# make && make install
|
執行了上面的操做以後,mysql-5.1.7版本就編譯安裝成功了。
下面爲快速複製,編譯配置文本:
1
|
[root@c64-web mysql-5.1.70]
# ./configure --prefix=/usr/local/mysql5.1.17 --with-unix-socket-path=/usr/local/mysql/tmp/mysql.sock --localstatedir=/mydata --enable-assembler --enable-thread-safe-client --with-mysqld-user=mysql --with-big-tables --without-debug --with-pthread --with-extra-charsets=complex --with-readline --with-ssl --with-embedded-server --enable-local-infile --with-plugins=partition --with-plugins=innobase --with-mysqld-ldflags=-all-static --with-client-ldflags=-all-static
|
3、啓動配置
一、建立目錄軟連接
mysql安裝完成以後,咱們要先爲編譯安裝好的目錄添加軟連接。此操做在生產環境中爲重要調優參數,添加這條軟連接的目的有兩點:一、方便人類使用。二、便於之後升級版本。
1
2
|
[root@c64-web mysql-5.1.70]
# cd /root
[root@c64-web ~]
# ln -s /usr/local/mysql5.1.17 /usr/local/mysql
|
二、建立其它相應目錄及權限設置
1
2
|
[root@c64-web ~]
# mkdir /mydata #創建mysql數據文件目錄
[root@c64-web ~]
# chown -R mysql /mydata #受權mysql用戶訪問mysql數據庫目錄
|
三、獲取Mysql主配置文件並修改
因爲mysql的主配置文件,編譯安裝以後默認是沒有的。所以咱們須要在mysql的編譯包中,選擇預支的*.cnf結尾的配置文件將其複製到咱們的/etc/目錄下。
1
2
3
4
5
6
7
8
9
|
[root@c64-web ~]
# ll /server/tools/mysql-5.1.70/support-files/*.cnf
-rw-r--r-- 1 root root 4714 11月 6 02:25
/server/tools/mysql-5
.1.70
/support-files/my-huge
.cnf
-rw-r--r-- 1 root root 19763 11月 6 02:25
/server/tools/mysql-5
.1.70
/support-files/my-innodb-heavy-4G
.cnf
-rw-r--r-- 1 root root 4688 11月 6 02:25
/server/tools/mysql-5
.1.70
/support-files/my-large
.cnf
-rw-r--r-- 1 root root 4699 11月 6 02:25
/server/tools/mysql-5
.1.70
/support-files/my-medium
.cnf
-rw-r--r-- 1 root root 2467 11月 6 02:25
/server/tools/mysql-5
.1.70
/support-files/my-small
.cnf
#中小型公司用這個便可
[root@c64-web mysql-5.1.70]
# /bin/cp /server/tools/mysql-5.1.70/support-files/my-small.cnf /etc/my.cnf
修改mysql的主配置文件
/etc/my
.cnf,添加以下1行
datadir=
/mydata
#咱們自定義的數據庫存放目錄
|
四、讓系統識別源碼包安裝的軟件
a)將mysql的庫文件路徑加入系統的庫文件搜索路徑中
方法一:直接作軟連接
1
|
[root@c64-web ~]
# ln -s /usr/local/mysql/lib/mysql /usr/lib/mysql
|
方法二:利用ldconfig導入系統庫(推薦)
1
2
|
[root@c64-web ~]
# echo "/usr/local/mysql/lib" >> /etc/ld.so.conf.d/mysql.conf
[root@c64-web ~]
# ldconfig
|
b)輸出mysql的頭文件到系統頭文件
1
|
[root@c64-web ~]
# ln -s /usr/local/mysql/include/mysql /usr/include/mysql
|
c)配置mysql命令全局使用路徑
1
2
|
[root@c64-web ~]
# echo "PATH=/usr/local/mysql/bin:$PATH" >>/etc/profile
[root@c64-web ~]
# source /etc/profile
|
五、以mysql用戶的身份初始化數據庫並啓動
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
[root@c64-web ~]
# /usr/local/mysql/bin/mysql_install_db --basedir=/usr/local/mysql --datadir=/mydata --user=mysql #初始化mysql數據庫文件
WARNING: The host
'c64-web'
could not be looked up with resolveip.
This probably means that your libc libraries are not 100 % compatible
with this binary MySQL version. The MySQL daemon, mysqld, should work
normally with the exception that host name resolving will not work.
This means that you should use IP addresses instead of hostnames
when specifying MySQL privileges !
#此警告咱們能夠經過在/etc/hosts文件中修改127.0.0.1後面的localhost爲當前c64-web來消除。
Installing MySQL system tables...
131108 18:07:26 [Warning]
'--skip-locking'
is deprecated and will be removed
in
a future release. Please use
'--skip-external-locking'
instead.
#這裏的警告無需理會
OK
Filling help tables...
131108 18:07:27 [Warning]
'--skip-locking'
is deprecated and will be removed
in
a future release. Please use
'--skip-external-locking'
instead.
#這裏的警告無需理會
OK
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:
/usr/local/mysql/bin/mysqladmin
-u root password
'new-password'
/usr/local/mysql/bin/mysqladmin
-u root -h lhh password
'new-password'
#教你如何建立root用戶進入mysql數據庫的密碼
Alternatively you can run:
/usr/local/mysql/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
/usr/local/mysql
;
/usr/local/mysql/bin/mysqld_safe
&
#上面的即爲開啓命令中的一種,後面的&爲放入後臺執行的意思
You can
test
the MySQL daemon with mysql-
test
-run.pl
cd
/usr/local/mysql/mysql-test
; perl mysql-
test
-run.pl
#這裏是給你說如何執行測試
Please report any problems with the
/usr/local/mysql/scripts/mysqlbug
script!
#以上爲初始化建立mysql數據庫文件時產生的信息。
[root@lhh mydata]
# cd /usr/local/mysql ; /usr/local/mysql/bin/mysqld_safe &
[1] 7146
131108 18:50:37 mysqld_safe Logging to
'/mydata/lhh.err'
.
131108 18:50:37 mysqld_safe Starting mysqld daemon with databases from
/mydata
#此處須要敲擊回車才能回到命令輸入界面。
|
mysql數據庫啓動的另一種方法
1
2
3
4
5
|
[root@c64-web ~]
# /bin/cp /server/tools/mysql-5.1.70/support-files/mysql.server /etc/init.d/mysqld #拷貝mysql啓動腳本mysql命令路徑
[root@c64-web ~]
# chmod 700 /etc/init.d/mysqld #使腳本可執行
[root@c64-web ~]
# /etc/init.d/mysqld start #這是啓動數據庫方法之一
[root@c64-web ~]
# /etc/init.d/mysqld stop #關閉數據庫的方法
[root@c64-web ~]
# killalll mysqld #關閉數據庫的另一種方法
|
六、檢查mysql數據庫是否啓動:
1
2
|
[root@c64-web ~]
# netstat -lnt|grep 3306
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN
|
能夠看到,咱們的mysql服務已經啓動起來了。這裏若是發現3306端口沒起來,請tail -100 /usr/local/mysql/data/機器名.err 檢查日誌報錯進行調試。
七、設置初始帳戶,並登錄後臺
在上面,初始化建立mysql數據庫的時候,已經給咱們提到了如何給mysql數據庫帳號設置密碼,下面咱們就進行操做。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
[root@c64-web ~]
# mysqladmin -u root password 123456 #設置密碼
[root@c64-web ~]
# history -c #設置以後注意清除歷史記錄,防止密碼泄露
[root@c64-web ~]
# mysql -u root -p #鏈接數據庫查看
Enter password:
#這裏輸入剛纔設置的密碼
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection
id
is 2
Server version: 5.1.70 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> show databases;
#查看現有的數據庫
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
|
test
|
+--------------------+
3 rows
in
set
(0.00 sec)
mysql>
select
user();
#查看現有用戶
+----------------+
| user() |
+----------------+
| root@localhost |
+----------------+
1 row
in
set
(0.00 sec)
mysql> quit
#退出
Bye
|
到此,咱們mysql-5.1.17的部署就已經完成了,下面將是5.6.13的部署。
5.6.13版本
mysql的第二條產品線和第一條產品線的產品主要在數據存儲引擎和編譯安裝的方法上有點區別,所以這裏我就主要對編譯安裝的部分進行講解,其它地方都是大同小異的。
mysql-5.6.13源碼包下載地址:http://mysql.ntu.edu.tw/Downloads/MySQL-5.6/mysql-5.6.13.tar.gz
1、更改編譯配置工具爲cmake
注意下面mysql-5.6.x系列版本在編譯配置時,放棄了用./configure,進而使用到了cmake,所以咱們須要先安裝cmake這個工具,下面才能執行編譯配置。
2、編譯參數更改
mysql-5.6.x系列版本綜合性的編譯參數詳解:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
[root@c64-web mysql-5.6.13]
# cmake
-DCMAKE_INSTALL_PREFIX=
/usr/local/mysql
\
#指定mysql安裝目錄
-DMYSQL_UNIX_ADDR=
/tmp/mysql
.sock \
#Unix socket文件路徑,自定義此路徑防報錯
-DDEFAULT_CHARSET=gbk \
#默認字符
-DDEFAULT_COLLATION=gbk_chinese_ci \
#校驗字符
-DEXTRA_CHARSETS=all \
#安裝全部擴展字符集
-DWITH_MYISAM_STORAGE_ENGINE=1 \
#安裝myisam存儲引擎
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
#安裝innodb存儲引擎
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
#安裝archive存儲引擎
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
#安裝blackhole存儲引擎
-DWITH_MEMORY_STORAGE_ENGINE=1 \
#安裝memory存儲引擎
-DWITH_FEDERATED_STORAGE_ENGINE=1
#安裝frderated存儲引擎
-DWITH_READLINE=1 \
#快捷鍵功能
-DENABLED_LOCAL_INFILE=1 \
#容許從本地導入數據
-DMYSQL_DATADIR=
/usr/local/mysql/data
\
#數據庫存放目錄
-DMYSQL_USER=mysql \
#數據庫屬主
-DMYSQL_TCP_PORT=3306 \
#數據庫端口
-DSYSCONFDIR=
/etc
\
#MySQL配輯文件
-DWITH_SSL=
yes
#數據庫SSL
|
下面爲快捷複製執行命令:
1
|
[root@c64-web mysql-5.6.13]
# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=gbk -DDEFAULT_COLLATION=gbk_chinese_ci -DEXTRA_CHARSETS=all -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_DATADIR=/mydata -DMYSQL_USER=mysql -DMYSQL_TCP_PORT=3306 -DSYSCONFDIR=/etc -DWITH_SSL=yes
|
執行以後,仍是用make&&make install 來執行編譯安裝。
3、主配置文件調整
在5.6.X系列的版本中,mysql的主配置文件發生了變化。能夠看到,mysql-5.6.13版本中取消了原來的my-huge.cnf,my-large.cnf,my-small.cnf模版,同時取而代之是my.cnf 或者是my-default.cnf一個配置模板。
1
2
3
|
[root@c64-web mysql-5.6.13]
# ll /server/tools/mysql-5.6.13/support-files/*.cnf
-rw-r--r--. 1 root root 1126 Nov 8 01:37
/server/tools/mysql-5
.6.13
/support-files/my-default
.cnf
[root@c64-web mysql-5.6.13]
# /bin/cp /server/tools/mysql-5.6.13/support-files/my-default.cnf /etc/my.cnf
|
而且,模板文件裏須要配置的地方不多。這是由於mysql-5.6.x系列將之前許多默認值設置不合理的參數都進行了調整,而且採用了一種out-of-box的思惟,即有些值是固定的,有些值是啓動時,根據其餘參數或者服務器的配置來自動設置的,因此不須要初始指定不少值。
主要的區別就是這三點了,其它的操做和5.1.13基本一致,這裏就再也不重複寫一遍了。但願你們本篇博文能對你們有幫助。
本文出自 「sunsky」 博客,請務必保留此出處http://sunsky.blog.51cto.com/4824967/1321079