天天看點

MariaDB 安裝

由于現在網上吵吵的特别火說這個東西要去到MySQL 是以就拿過來玩一下 我選擇了源碼方式安裝 可以自定義編譯參數 自定義安裝目錄

源碼安裝系統需求:

1、cmake:所有平台的建構架構,從mysql 5.5開始使用cmake;

2、好的make程式:推薦GNU make 3.75或更新版本;

3、ANSI C++編譯器:GCC 4.2.1或更新版本,Sun Studio 12或更新版本,Visual Studio 2010或更新版本等;

4、Perl:如果需要運作測試腳本;

5、gunzip、tar:解壓、解包mysql源碼包

安裝依賴包:

<code>yum -y </code><code>install</code> <code>cmake </code><code>make</code> <code>gcc</code> <code>perl </code><code>gzip</code> <code>tar</code> <code>ncurses-devel libxml2-devel zlib-devel pcre-devel libaio-devel openssl-devel</code>

說明

作業系統:CentOS release 6.5 (Final) 32位

MariaDB目錄:/usr/local/mariamysql

MariaDB資料:/opt/data/mariamysql

準備篇

一、配置好IP、DNS 、網關,確定使用遠端連接配接工具能夠連接配接伺服器,伺服器yum指令可以正常使用

二、配置防火牆,開啟3306端口

IPTABLES -A RH-Firewall-1-INPUT -m state --state NEW -p tcp --dport 3306 -j ACCEPT  #允許3306端口通過防火牆

特别提示:有的說很多網友把這兩條規則添加到防火牆配置的最後一行,導緻防火牆啟動失敗,正确的應該是添加到預設的22端口這條規則的下面

/etc/init.d/iptables restart #最後重新開機防火牆使配置生效

<code>三、關閉SELINUX</code>

<code>vi /etc/selinux/config #SELINUX=enforcing #注釋掉 #SELINUXTYPE=targeted #注釋掉 SELINUX=disabled #增加 :wq!  #儲存退出 shutdown -r now #重新開機系統</code>

四 、系統約定

MariaDB安裝包存放位置:/usr/local/src

MariaDB編譯安裝位置:/usr/local/mariamysql

MariaDB資料檔案位置:/opt/data/mariamysql

安裝篇

groupadd mysql

<code>useradd</code> <code>-M -s </code><code>/sbin/nologin</code> <code>-r -g mysql mysql</code>

mkdir -p /data/mariamysql

chown -R mysql:mysql /opt/data/mariamysql 

mkdir -p /usr/local/mariamysql

cd /usr/local/src

tar -zxvf mariadb-10.0.15.tar.gz 

cd mariadb-10.0.15

<code>cmake -DCMAKE_INSTALL_PREFIX=</code><code>/usr/local/mariamysql</code> <code>\</code>

<code>-DWITH_INNOBASE_STORAGE_ENGINE=1 \</code>

<code>-DDEFAULT_CHARSET=utf8 \</code>

<code>-DDEFAULT_COLLATION=utf8_general_ci \</code>

<code>-DWITH_EXTRA_CHARSETS=all \</code>

<code>-DCMAKE_C_FLAGS_RELWITHDEBINFO=</code><code>"-O3 -g"</code> <code>\</code>

<code>-DCMAKE_CXX_FLAGS_RELWITHDEBINFO=</code><code>"-O3 -g"</code>  <code>\</code>

<code>-DCMAKE_BUILD_TYPE=RelWithDebInfo \</code>

<code>-DCPACK_MONOLITHIC_INSTALL=1 \</code>

<code>-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \</code>

<code>-DWITHOUT_FEDERATED_STORAGE_ENGINE=1 \</code>

<code>-DWITHOUT_NDBCLUSTER_STORAGE_ENGINE=1 \</code>

<code>-DENABLED_PROFILING=1 \</code>

<code>-DINNODB_PAGE_ATOMIC_REF_COUNT=1 \</code>

<code>-DWITH_DEBUG=0 \</code>

<code>-DWITH_INNODB_MEMCACHED=1 \</code>

<code>-DWITH_ZLIB=system \</code>

<code>-DWITH_SSL=system</code>

make &amp;&amp; make install 編譯過程特别的漫長(虛拟機1G記憶體)

cp support-files/my-innodb-heavy-4G.cnf /etc/my.cnf

cp support-files/mysql.server.sh /etc/init.d/mysqld

chmod +x /etc/init.d/mysqld(之後需要配置mysqld裡邊的一些參數 才能用這個mysqld啟動)

/usr/local/mariamysql/scripts/mysql_install_db --basedir=/usr/local/mariamysql/ --datadir=/opt/data/mariamysql/data/ --user=mysql

/usr/local/mariamysql/bin/mysqld_safe --user=mysql --basedir=/usr/local/mariamysql --datadir=/opt/data/mariamysql &amp;

/usr/local/mariamysql//bin/mysqladmin -u root password 'new-password'

export PATH=$PATH:/usr/local/mariamysql/bin

[root@localhost mariamysql]# ps -ef |grep mysqld

root     25494     1  0 11:09 pts/1    00:00:00 /bin/sh /usr/local/mariamysql/bin/mysqld_safe --datadir=/opt/data/mariamysql --pid-file=/opt/data/mariamysql/hack.pid

mysql    25719 25494 55 11:10 pts/1    00:01:01 /usr/local/mariamysql/bin/mysqld --basedir=/usr/local/mariamysql --datadir=/opt/data/mariamysql --plugin-dir=/usr/local/mariamysql/lib/plugin --user=mysql --log-error=/opt/data/mariamysql/hack.err --open-files-limit=8192 --pid-file=/opt/data/mariamysql/hack.pid --socket=/tmp/mysql.sock --port=3306

root     25908  1509  1 11:11 pts/1    00:00:00 grep mysqld

[root@localhost mariamysql]# 

[root@localhost src]# mysql -uroot -p123abc 

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

Your MariaDB connection id is 4

Server version: 10.0.15-MariaDB-log MariaDB Server

Copyright (c) 2000, 2014, Oracle, SkySQL Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]&gt; show databases;

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

| Database           |

| information_schema |

| mysql              |

| performance_schema |

| test               |

4 rows in set (0.01 sec)

MariaDB [(none)]&gt;<code>DELETE FROM MYSQL.USER WHERE PASSOWRD = '' OR USER = ''</code>

<code>MariaDB [(none)]&gt;DROP DATABASE TEST;</code>

<code>MariaDB [(none)]&gt;FLUSH PRIVILEGES;</code>

至此安裝完成

說明:

mysql_install_db在安裝目錄建立一個預設配置檔案my.cnf,配置檔案基于源碼包的my-default.cnf為 模闆。初始化授權表(包含root和匿名賬戶,預設沒有密碼),建立預設資料庫(mysql、test)等。使用--random-passwords, 可以為root賬戶設定随機密碼,并設定過期時間,删除匿名賬戶。

驗證mysql服務是否可用:

shell&gt; bin/mysqladmin version

shell&gt; bin/mysqladmin variables

shell&gt; bin/mysqlshow

關閉mysql服務:

shell&gt; bin/mysqladmin -u root shutdown

cmake . -L :檢視預設配置參數

cmake . -LH:顯示預設配置參數和幫助說明

cmake . -LAH:顯示所有參數和幫助說明

ccmake . :互動式顯示

如遇到cmake錯誤,在重新cmake時需要删除源碼目錄的CMakeCache.txt檔案:

make clean

rm -f CMakeCache.txt

make install:預設安裝到/usr/local/mysql目錄,使用make install DESTDIR="/opt/mysql"可以指定特殊的目錄

make package:預設産生多個類似官方釋出的二進制包,如果指定Cmake參數-DCPACK_MONOLITHIC_INSTALL=1,将隻産生一個檔案

mysql配置參數:

-DBUILD_CONFIG=mysql_release :同官方二進制版本建構參數

-DCMAKE_INSTALL_PREFIX=dir_name :指定安裝目錄,同--basedir啟動參數

-DINSTALL_LAYOUT=name :選擇一個預定義的安裝布局,STANDALONE,同.tar.gz和.zip包,預設;RPM,類型RPM包

-DMYSQL_DATADIR=dir_name :指定mysql資料目錄,同--datadir啟動參數

-DSYSCONFDIR=dir_name :my.cnf配置檔案目錄

存儲引擎能建構成靜态模闆,編譯到mysql服務中,或者建構成動态模闆,必須使用INSTALL PLUGIN或--plugin-load選項進行插件安裝。有些插件可能不支援靜态或動态建構。MyISAM、MERGE、MEMORY和CSV總是編 譯到mysql服務中,不需要指定。

-DWITH_INNOBASE_STORAGE_ENGINE=1 :将innodb存儲引擎靜态編譯到mysql服務中

-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 :排除編譯EXAMPLE

-DDEFAULT_CHARSET=charset_name :設定伺服器字元集,預設使用latin1,可用值可以檢視源碼包下cmake/character_sets.cmake檔案的 CHARSETS_AVAILABLE值,同使用--character_set_server選項

-DDEFAULT_COLLATION=collation_name :設定校隊集,預設使用latin1_swedish_ci,同參數--collation_server選項

-DENABLED_LOCAL_INFILE=bool :是否啟用用戶端庫LOAD DATA INFILE功能

-DENABLED_PROFILING=bool :是否啟用查詢性能分析(show profile和show profiles)

-DINNODB_PAGE_ATOMIC_REF_COUNT=bool :是否啟用或禁用原子頁面引用計數,跟蹤buffer池中的頁狀态是很昂貴和複雜的。

-DWITH_EXTRA_CHARSETS=name :額外的字元集設定,允許的值all,complex,none

-DWITH_INNODB_MEMCACHED=bool :是否生成memcached共享庫(libmemcached.so和innodb_engine.so)

-DCMAKE_C_FLAGS_RELWITHDEBINFO="-O3 -g"

-DCMAKE_CXX_FLAGS_RELWITHDEBINFO="-O3 -g" :使用O3進行優化

本文轉自 aklaus 51CTO部落格,原文連結:http://blog.51cto.com/aklaus/1599224