通用二進制安裝MySQL(MariaDB)

一、前言

    MySQL是一個關系型數據庫管理系統,是最流行的關系型數據庫管理系統,由于其體積小、速度快、總體擁有成本低,并且之前是完全開源,所以大受歡迎。但由于后面MySQL賣給了SUN,隨后SUN被Oracle收購,雖然也有開源免費版本,但是很多功能都需要另外購買商業版本,導致現在MySQL使用份額逐漸減少。所以MariaDB就是因為這種原因誕生出來,成為數據庫管理系統是MySQL的一個分支。


二、MariaDB介紹

    MariaDB數據庫管理系統是MySQL的一個分支,主要由開源社區在維護,采用GPL授權許可 MariaDB的目的是完全兼容MySQL。基于事務的Maria存儲引擎,替換了MySQL的MyISAM存儲引擎。雖然MariaDB被視為MySQL數據庫的替代品,但它在擴展功能、存儲引擎以及一些新的功能改進方面都強過MySQL。而且從MySQL遷移到MariaDB也是非常簡單的。

小貼士:www.mariadb.org 是官方站點


三、MariaDB安裝介紹

    3.1、安裝前需要注意地方

    對于通用的二進制格式的包,我們只需要解壓縮后即能使用,但是由于二進制格式的程序包是已經編譯好的二進制程序,所以里面有些腳本都是根據固定的路徑執行某些腳本,所以他們要求mysql這個路徑必須安裝在/usr/local目錄下(類似第三方程序路徑下),并且其目錄的目錄名必須是叫mysql。因為如果不這樣做的話,很多默認的腳本會無法運行。 

    3.2、Mariadb通用二進制包解壓后文件說明

bin:            各種二進制都在此目錄下
data:           如果我們不創建新目錄的話,此目錄就是默認的數據目錄。所以權限必須是屬主和屬組都是mysql
docs:           相關 文檔
include:        頭文件
lib:            庫文件
man:            幫助手冊
mysql-test:     mysql測試組件
scripts:        mysql初始化時要用到的腳本
share:          mysql的共享內容
sql-bench:      對mysql做壓力測試工具
support-files:  mysql正常運行的樣例性的配置文件或文檔

    3.2、Mariadb官方安裝說明介紹

    小貼士:在通用二進制包中有一個叫“INSTALL-BINARY”的安裝幫助信息,所以在安裝前可以先查閱此文件信息。下面介紹里面提到的幫助信息解釋。但是實際上安裝步驟可能和安裝幫助信息不完全相同,所以官方安裝幫助僅作參考。

[root@www mysql]# less INSTALL-BINARY     #解壓后,可使用此命令查看,找到下面字段。
shell> groupadd mysql             #添加一個組名
shell> useradd -g mysql mysql     #添加一個用戶
shell> cd /usr/local              #進去/usr/local目錄下
shell> gunzip < /path/to/mysql-VERSION-OS.tar.gz | tar xvf -    #把通用二進制MariaDB進行解壓到此目錄
shell> ln -s full-path-to-mysql-VERSION-OS mysql      #鏈接目錄到到目錄名為mysql的目錄名(就是上面提到的目錄名必須叫mysql)
shell> cd mysql 
shell> chown -R mysql .          #把mysql路徑下所有文件的屬主改為mysql
shell> chgrp -R mysql .          #屬組改為mysql
shell> scripts/mysql_install_db --user=mysql    #執行此腳本完成以mysql的身份完成mysql數據初始化
shell> chown -R root .           #然后在把它的的權限改為root
shell> chown -R mysql data       #但是把這個目錄下的data屬主改回mysql
shell> bin/mysqld_safe --user=mysql &    #而后使用此命令即可啟動mysql

    3.3、其他需要注意的地方

考慮到使用此方法安裝的時候,數據庫文件默認將會存放到目錄下的data文件,但是如果在企業里,企業數據將會增長很快,導致數據庫文件很大,對于安全性和可擴展性都不好,所以企業里一般會存放到另一個磁盤上會更安全。為了以后使用規范,建議數據目錄要事先規劃好,指定在獨特的位置,比如專門找個磁盤存放mysql數據。


四、安裝mariadb-5.5.36

    4.1、下載mariadb包

    Mariadb官方站點下載mariadb-5.5.36-linux-x86_64.tar.gz包,并將其復制到Linux服務器。

    4.2、解壓文件到/usr/local路徑

    必須解壓到此路徑,原因前面已介紹過

[root@www local]# tar xf mariadb-5.5.36-linux-x86_64.tar.gz -C /usr/local/

    4.3、修改目錄的目錄名(此處為鏈接到目錄名為mysql的目錄下)

[root@www local]# ln -s mariadb-5.5.36-linux-x86_64 mysql

    這里使用創建鏈接的方式將名字命名為mysql,原因是如果以后將來需要升級maridb的話,又要重新將原來的版本移走,再把新的重命名為mysql,會比較麻煩

    4.4、創建mysql用戶及組

[root@www local]# groupadd -r mysql
[root@www local]# useradd -g mysql -r mysql

    4.5、修改mysql各文件夾的權限

    查看mysql文件下的權限如下


1.jpg

    修改權限

[root@www mysql]# chown -R root.mysql ./*

    修改data目錄的權限

[root@www mysql]# chown -R mysql.mysql ./data

    4.6、初始化mysql前準備

因為mysql初始化時需要一些配置文件,在support-file提供了很多樣例的配置文件,其中有:my-huge.cnf,my-innodb-heavy-4G.cnf,my-large.cnf,my-medium.cnf,my-small.cnf。這些是分別用在你的主機,有不同的可用內存不同時使用的不同配置文件 ??蛇M去查看詳細情況

[root@www support-files]# cp my-large.cnf /etc/my.cnf
cp: overwrite `/etc/my.cnf'? n

選擇好之后,拷貝到/etc/my.cnf文件,但是會發現,此文件已經存在,也許你會懷疑我們并未安裝mysql,為什么會有此文件。其實此文件是系統安裝了mysql-libs自動提供的配置文件。請先打開/etc/my.cnf文件查看,因為下面將會說明下的

[root@www support-files]# mkdir /etc/mysql
[root@www support-files]# cp /usr/local/mysql/support-files/my-large.cnf /etc/mysql/my.cnf

如果我們是覆蓋了,有些配置信息會不太一樣,比如說socket,datadir。所以我們選擇安裝到其他位置。點擊打開新的my.cnf,會發現很多配置信息會和之前的那個不相同,那么mysql到底會去讀哪個配置信息呢?下面有介紹

    4.7、修改mysql數據文件的路徑(此項設置根據要求)

在[mysqld]段里添加下面此項,表示mysql的數據保存到此路徑,無論你是否修改了路徑,最好都將路徑填寫上面,測試過有時會生成不到對應的mysql初始文件的。    

datadir = /usr/local/mysql/data

    4.8、初始化mysql

在scripts下有個mysql_install_db文件,此文件就是專門用于初始化mysql的

可使用./mysql_install_db –help 查看幫助信息

     –datadir=path  :指定數據文件存放路徑

     –user=user_name:用哪個用戶來執行初始化過程,此項不能省略

[root@www scripts]# ./mysql_install_db --user=mysql –datadir=/usr/local/mysql/data

但是此時會報一個錯誤:“FATAL ERROR: Could not find ./bin/my_print_defaults”,原因是需要去讀bin目錄下的文件,所以執行方式必須切換到父目錄執行才行,實際如下執行

[root@www mysql]# ./scripts/mysql_install_db --user=mysql

    4.9、Mysql服務腳本

在support-files下有一個叫mysql.server就是準備好的服務腳本。只要安裝目錄沒修改過,就能正常使用

[root@www data]# cp ../support-files/mysql.server /etc/rc.d/init.d/mysqld
[root@www data]# chkconfig mysqld on

    4.10、啟動mysqld服務

[root@www data]# service mysqld start

    4.11、安裝完后有些需要注意的地方

在前面我們會發現mysql-libs生成了一個/etc/my.cnf配置文件,而我們自己創建了一個新的/etc/mysql/my.cnf配置文件,那么我們看看以上兩個配置文件的

[root@www ~]# vim /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
[root@www ~]# vim /etc/mysql/my.cnf
[mysqld]
port            = 3306
socket          = /tmp/mysql.sock
thread_concurrency = 8
datadir=/usr/local/mysql/data

我們可以看到socket文件指向不同的文件路徑,所以通過查看/tmp下的文件會生成一個mysql.sock文件,而/var/lib/mysql上并沒有此文件,說明此時讀取的配置文件/etc/mysql/my.cnf生效了。

這個是mysql有點特殊的地方,mysql讀配置文件它不是只讀一個的,他會依次去找很多個位置,而且找到之后把最后一個找到的作為其最終使用的配置,或者是他把所有的找到了,然后將里面的參數合并起來,而且如果所有配置文件中有相同的參數,那么最后一次找到的是最終生效的。

    4.12、程序文件無法找到解決辦法

因為不是使用rpm包安裝的,所以有可能程序文件無法找到,那么就需要編輯配置文件環境變量PATH,讓其程序在環境變量PATH可以找到

[root@www tmp]# vim /etc/profile.d/mysql.sh
export PATH=/usr/local/mysql/bin:$PATH

重讀配置文件

[root@www tmp]# source /etc/profile.d/mysql.sh

此時你就能執行mysql程序了,否則之前執行mysql是會提示程序無法找到等錯誤信息。

    4.13、導出頭文件

如果我們需要他開發的話,或依賴其他程序編譯的話,就需要導出

[root@www tmp]# ln -sv /usr/local/mysql/include/ /usr/include/mysql
`/usr/include/mysql' -> `/usr/local/mysql/include/'

    4.14、導出頭文件

[root@www tmp]# ldconfig -v | grep mysql
/usr/lib64/mysql:
       libmysqlclient_r.so.16 -> libmysqlclient_r.so.16.0.0
       libmysqlclient.so.16 -> libmysqlclient.so.16.0.0

但是此庫文件是mysql-libs的rpm包提供的。

所以做以下操作

[root@www tmp]# vim /etc/ld.so.conf.d/mysql.conf
/usr/local/mysql/lib

重新加載即可查看

[root@www tmp]# ldconfig -v | grep mysql
/usr/local/mysql/lib:
libmysqlclient.so.18 -> libmysqlclient_r.so.18.0.0
libmysqld.so.18 -> libmysqld.so.18
/usr/lib64/mysql:
libmysqlclient_r.so.16 -> libmysqlclient_r.so.16.0.0
libmysqlclient.so.16 -> libmysqlclient.so.16.0.0

    4.15、使用mysql連接MySQL服務器

[root@www mysql]# mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 5.5.36-MariaDB-log MariaDB Server
Copyright (c) 2000, 2014, Oracle, Monty Program Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>

    這里會介紹到MySQL服務器的版本信息,而且是使用了MariaDB 5.5.36的版本 。


五、總結

    5.1、解壓后的文件必須放在/usr/local目錄下

    5.2、文件目錄的目錄名必須是mysql,否則會影響通用二進制程序包里的腳本執行錯誤。

    

原創文章,作者:螃蟹,如若轉載,請注明出處:http://www.www58058.com/8787

(0)
螃蟹螃蟹
上一篇 2015-10-15
下一篇 2015-10-16

相關推薦

  • mysql cluster安裝部署

    一、安裝要求 安裝環境:CentOS-6.5-32bit 軟件名稱:mysql-cluster-gpl-7.2.25-linux2.6-i686.tar.gz 下載地址:http://mysql.mirror.kangaroot.net/Downloads/ 軟件包:mysql-cluster-gpl-7.2.25-linux2.6-i686.tar.gz …

    Linux干貨 2016-08-22
  • 基于Docker的工作流

    這次我們創建一個Hello world的web服務器。 一  mkdir -p identidock/app   #首先創建一個新的multiidentidock來存放我們的項目,在這個目錄下面,創建一個app目錄來存放Python代碼。 touch app/identidock.py&n…

    Linux干貨 2016-03-03
  • Linux Basics

    計算機的組成及其功能:             CPU:運算器、控制器、寄存器、緩存             存儲器:內存,RAM(Random Access Memory)   …

    Linux干貨 2016-09-17
  • 單臺主機lnmp+wordpress配置示例

    單臺主機lnmp+wordpress fpm配置 ]# yum install php php-fpm php-mysql –y ]# vim /etc/php-fpm.d/www.conf 配置服務監聽地址和程序運行者身份 listen = 127.0.0.1:9000 user = nginx group = nginx ]# chown -R ngin…

    Linux干貨 2016-11-07
  • 0809行編輯器sed

    sed :Stream EDitor, 行編輯器 ? sed是一種流編輯器,它一次處理一行內容。處理時,把當前處理的行存儲在臨時緩沖區中,稱為“模式空間”(pattern space),接著用sed命令處理緩沖區中的內容,處理完成后,把緩沖區的內容送往屏幕。接著處理下一行,這樣不斷重復,直到文件末尾。文件內容并沒有改變,除非你使用重定向存儲輸出或者使用-i選…

    Linux干貨 2016-08-10
  • yum用法第二篇-自定義創建yum倉庫

    一、前言      上次寫了yum命令的介紹及常見使用說明,這次打算繼續整理下如何自定義創建yum倉庫,這在企業中也是非常常見的設置方式,有些公司為了服務器安全是不允許連接外網的,自定義創建yum倉庫正好可以實現局域網單獨安裝管理程序包這種需求。 二、用法說明      1.使用…

    Linux干貨 2015-09-22

評論列表(3條)

  • Vicky
    Vicky 2015-10-15 16:44

    思路清晰~

  • Admin
    Admin 2015-11-09 10:56

    我在使用二進制安裝mariadb初始化的時候報這個錯,請指教!
    [root@localhost mysql]# scripts/mysql_install_db –user=mysql
    Installing MariaDB/MySQL system tables in ‘/data/mysql/’ …
    ./bin/mysqld: error while loading shared libraries: libjemalloc.so.1: cannot open shared object file: No such file or directory

    Installation of system tables failed! Examine the logs in
    /data/mysql/ for more information.

    The problem could be conflicting information in an external
    my.cnf files. You can ignore these by doing:

    shell> ./bin/scripts/mysql_install_db –defaults-file=~/.my.cnf

  • Admin
    Admin 2015-11-09 11:18

    數據庫版本:mariadb-10.1.8-linux-x86_64,操作系統:CentOS 6.7 64位。求指教?
    二進制安裝mariadb初始化的時候報這個錯:system tables in ‘/data/mysql’ … ./bin/mysqld: error while loading shared libraries: libjemalloc.so.1: cannot open shared object file: No such file or directory Installation of system tables failed!
    MariaDB啟動時候:
    [root@localhost mysql]# service mysqld start
    Starting MySQL. ERROR!
    [root@localhost mysql]# cat /data/mysql/localhost.localdomain.err
    151109 19:03:03 mysqld_safe Starting mysqld daemon with databases from /data/mysql
    /usr/local/mysql/bin/mysqld: error while loading shared libraries: libjemalloc.so.1: cannot open shared object file: No such file or directory
    151109 19:03:03 mysqld_safe mysqld from pid file /data/mysql/localhost.localdomain.pid ended

欧美性久久久久