歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux安裝 >> MariaDB安裝與配置

MariaDB安裝與配置

日期:2017/2/25 14:36:14   编辑:Linux安裝

MariaDB安裝與配置

本文是基於CentOS7.2系統來進行mariadb的安裝與配置,安裝前請關閉selinux和在iptables規則中開放3306端口,在此次我們直接清空了iptables規則。

Iptables –F
vim /etc/selinux/config
    #SELINUX=enforcing ##注釋掉此項##
    #SELINUXTYPE=targeted ##注釋掉此項##
    SELINUX=disabled ##添加此項##

一、MariaDB的安裝

1、使用yum安裝mariadb

添加mariadb的yum源,這裡使用阿裡源:

get http://mirrors.aliyun.com/repo/Centos-7.repo  /etc/yum.repos.d/
yum install MariaDB-server MariaDB-client ##安裝mariadb服務器端、客戶端##
vim /etc/my.cnf.d/server.cnf    ##mariadb服務器端配置文件##
    [mysqld]        ##以下項是優化項目可根據需要選擇##
    innodb_file_per_table=ON    ##使用獨立表空間模式(建議使用)##
    skip_name_resolve=ON    ##禁止域名反向解析(可選)##
systemctl start mariadb.service     ##啟動mariadb服務
systemctl enable mariadb.service    ##設置為開機啟動##
mysql_secure_installation           ##安裝完成後安全初始化,添加root密碼,刪除匿名登錄賬戶,禁止遠程使用root用戶登錄,刪除測試數據庫和使用##  
mysql –uroot –hlocalhost –p’PASSWORD  ##登陸數據庫##’

2、用二進制壓縮包安裝MariaDB

MariaDB二進制壓縮包命名格式形如:mariadb-版本名-操作系統名.tar.gz,請確認從此外下載為您的機器下載正確的版本。

官方下載點:http://downloads.mariadb.org/,這裡我們將使用mariadb5.5版本.

請將二進制包解壓到某目錄,然後進行mysqlinstalldb安裝腳本。

我們將MariaDB安裝到目錄/usr/local/mysql中(這是許多平台中的默認的安裝目錄),當然安裝其他任意目錄中也是可行的。

我們為其建立一個軟鏈接,這樣做可以方便地改變軟鏈接而使用不同目錄中不同版本的MariaDB。

注意: 對於MariaDB 5.1.32 只要將行”./scripts/mysqlinstalldb –user=mysql”改成”./bin/mysqlinstalldb –user=mysql”就行了。

確保你使用了正確的my.cnf文件

MariaDB在’/etc/my.cnf’位置尋找配置文件(有些系統中是’/etc/mysql/my.cnf’或’~/.my.cnf’)。如果你的系統中有舊的my.cnf文件(系統中曾安裝MariaDB或MySQL帶來的),你要注意用二進制.tar包安裝了MariaDB後,用了舊的配置文件。正常的解決方法是不使用目錄中的配置文件,而使用二進制包中的配制文件。具體的做法是:在你的根目錄中建立在個.my.cnf配置文件,然後通過選項’–defaults-file=~/.my.cnf’配置mysqlinstalldb、mysqld_safe和mysql(命令行工具)只使用你自建的配置文件。要注意的是,此選項必須是命令的第一個選項。

用root帳戶將MariaDB安裝在/usr/local/mysql

如果有系統的root使用權限,你可能使用“mysql”用戶(組)來安裝MariaDB(以保持與MySQL的兼容性):

groupadd mysql
useradd -g mysql mysql
cd /usr/local
tar -zxvpf /path-to/mariadb-VERSION-OS.tar.gz
ln -s mariadb-VERSION-OS mysql
cd mysql
./scripts/mysql_install_db --user=mysql
chown -R root .
chown -R mysql data

建議使用指令ln -s創建一個軟鏈接,從而為安裝多個不的MariaDB版本進行測試、升級、降級等提供方便。

如果你是用MariaDB替代,你不用關閉MySQL,你只要調用mysqlinstalldb指令,MariaDB會通過你原來的/etc/my.cnf文件(路徑會隨你的系統而有所不同)中找到數據目錄。

你現在需用如下方式執行mysqld指令:

./bin/mysqld_safe --user=mysql &
or
./bin/mysqld_safe --defaults-file=~/.my.cnf --user=mysql &

修改你的$PATH以便你調用mysql、mysqldump等進行連接測試。

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

你或更願意通過修改.bashrc或.bash_profile文件來永久保存設置

用root帳戶將MariaDB安裝在任意目錄

下面的操作將目錄/usr/local更改到你選擇的目錄:

cd /usr/local
gunzip < /path-to/mariadb-VERSION-OS.tar.gz | tar xf -
ln -s mariadb-VERSION-OS mysql
cd mysql
./scripts/mysql_install_db --defaults-file=~/.my.cnf

如果你用不來上面的gunzip命令,如有 gnu tar的話,你也可這樣:

tar xfz /path-to/mariadb-VERSION-OS.tar.gz

你需用下面的指令啟動mysqld:

./bin/mysqld_safe --defaults-file=~/.my.cnf &

自動啟動mysqld

你可將文件mysql.server拷貝到合適的位置使mysqld(MariaDB服務器)自動進行。

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

具體的位置取決於你的系統,mysql.server文件中含有怎樣使用與優化它的相關指導。

安裝後的工作

到了這一點後,請記住為所有不可信來源的連接設置正確的密碼來減小安全風險!也可以考慮用mysql.server使在系統啟動時自動啟動MariaDB。

二、MariaDB的配置

Mariadb使用的是ini風格的配置文件,為多個程序同時提供配置; mariadb讀取多處的多個配置文件,而且會以指定的次序的進行; 查看讀取順序的命令:

my_print_defaults
Default options are read from the following files in the given order:
/etc/mysql/my.cnf /etc/my.cnf ~/.my.cnf

/etc/my.cnf 是由mariadb-libs生成的

/etc/my.cnf.d/server.cnf是由 mariadb-server生成

/etc/my.cnf.d/client.cnf是由mariadb生成

不同的配置文件中出現同一參數且擁有不同值時,後讀取將為最終生效值。

修改默認讀取的配置文件(mysqld_safe命令):

--defaults-file=file_name

於讀取的默認配置文件之外再加載一個文件:

--defaults-extra-file=path

配置文件格式:ini風格的配置文件,能夠為mysql的各種應用程序提供配置信息:

[mysqld]
[mysqld_safe]
[mysqld_multi]
[server]
[mysql]
[mysqldump]
[client]
    ...
配置參數格式:
    PARAMETER = VALUE
    PARAMETER寫法:
            innodb_file_per_table (建議使用)
            innodb-file-per-table

三、MariaDB的程序文件及命令:

服務端程序:mysqldsafe, mysqldmulti 客戶端程序:mysql, mysqldump, mysqladmin 工具程序:myisampack, …

1、mysql:交互式CLI工具;命令化運行;

mysql [options] db_name

常用選項:

--host=host_name, -h host_name:服務端地址;
--user=user_name, -u user_name:用戶名;
--password[=password], -p[password]:用戶密碼; 
--port=port_num, -P port_num:服務端端口; 
--protocol={TCP|SOCKET|PIPE|MEMORY}:本地通信:基於本地回環地址進行請求,將基於本地通信協議;
        Linux:SOCKET
        Windows:PIPE,MEMORY
    非本地通信:使用非本地回環地址進行的請求; TCP協議;
--socket=path, -S path
--database=db_name, -D db_name:
--compress, -C:數據壓縮傳輸
--execute=statement, -e statement:非交互模式執行SQL語句;
--vertical, -E:查詢結果縱向顯示;

命令:

客戶端命令:於客戶端執行;

服務端命令:SQL語句,需要一次性完整地發往服務端;語句必須有結束符;

?         (\?) Synonym for `help'. ##使用幫助##
clear     (\c) Clear the current input statement.##清除已輸入的##
connect   (\r) Reconnect to the server. Optional arguments are db and host.
delimiter (\d) Set statement delimiter.##設置語句分隔符##
edit      (\e) Edit command with $EDITOR.
ego       (\G) Send command to mysql server, display result vertically.
exit      (\q) Exit mysql. Same as quit.##退出##
go        (\g) Send command to mysql server.#發送命令到mysql服務器#
help      (\h) Display this help.##顯示幫助##
nopager   (\n) Disable pager, print to stdout.
notee     (\t) Don't write into outfile.##不寫入輸出文件##
pager   (\P) Set PAGER [to_pager]. Print the query results via PAGER.
print     (\p) Print current command.##打印現在的命令##
prompt    (\R) Change your mysql prompt.
quit      (\q) Quit mysql.  ##退出##
rehash    (\#) Rebuild completion hash.##重新hash##
source    (\.) Execute an SQL script file. Takes a file name as an argument. ##執行一個SQL腳本文件
status    (\s) Get status information from the server.##從服務器獲取狀態信息##
system    (\!) Execute a system shell command.
tee     (\T) Set outfile [to_outfile]. Append everything into given outfile.
use       (\u) Use another database. ##使用其他數據庫##
charset   (\C) Switch to another charset. Might be needed for processing binlog with multi-byte charsets.##切換到另一個字符集##
warnings  (\W) Show warnings after every statement.
nowarning (\w) Don't show warnings after every statement.
mysql命令的使用幫助:
man mysql
mysql  --help  --verbose

sql腳本運行:

mysql [options] [DATABASE] < /PATH/FROM/SOME_SQL_SCRIPT

mysqld服務器程序:工作特性的定義方式: 命令行選項 配置文件參數

服務器參數/變量:設定MySQL的運行特性;

mysql> SHOW [GLOBAL | SESSION] VARIABLES [like_or_where];

狀態(統計)參數/變量:保存MySQL運行過程中的統計數據或狀態數據;

mysql> SHOW [GLOBAL | SESSION] STATUS [like_or_where];

顯示單個變量設定值的方法:

mysql> SELECT @@[global.|session.]system_var_name   
    %:匹配任意長度的任意字符;
    _:匹配任意單個字符;

變量/參數級別: 全局:為所有會話設定默認; 會話:跟單個會話相關;會話建立會從全局繼承;

服務器變量的調整方式: 運行時修改: global:僅對修改後新建立的會話有效; session:僅對當前會話有效,且立即生效; 通過配置文件修改: 重啟後生效;

運行時修改服務器變量值操作方法:

mysql> HELP SET
SET [GLOBAL | SESSION] system_var_name = expr
SET [@@global. | @@session. | @@]system_var_name = expr

安裝完成後的安全初始化:

mysql_secure_installation

運行前常修改的參數:

innodb_file_per_table=ON  ##開始獨立表空間模式##
skip_name_resolve=ON    ##禁止域名反向解析##
sql_safe_updates=ON     ##開啟安全更新模式,不可在配置文件中直接定義##
...

Copyright © Linux教程網 All Rights Reserved