11.6 MariaDB安裝

安裝mariadb

  • cd /usr/local/src
  • wget https://downloads.mariadb.com/MariaDB/mariadb-10.2.6/bintar-linux-glibc_214-x86_64/mariadb-10.2.6-linux-glibc_214-x86_64.tar.gz
  • tar zxvf mariadb-10.2.6-linux-glibc_214-x86_64.tar.gz
  • mv mariadb-10.2.6-linux-glibc_214-x86_64 /usr/local/mariadb
  • cd /usr/local/mariadb
  • ./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mariadb/ --datadir=/data/mariadb
  • cp support-files/my-small.cnf /usr/local/mariadb/my.cnf
  • vi /usr/local/mariadb/my.cnf //定義basedir和datadir
  • cp support-files/mysql.server /etc/init.d/mariadb
  • vim /etc/init.d/mariadb //定義basedir、datadir、conf以及啓動參數
  • /etc/init.d/mariadb start

安裝過程

  • mariadb和mysql安裝過程相似
  1. 首先切換到/usr/local/src目錄下
[root@hf-01 ~]# cd /usr/local/src
[root@hf-01 src]#
  1. 而後在官網下載10.2.6版本(官網下載很慢,由於地址在美國),本身百度雲有提早下載好的,只須要下載到windows,而後 rz 命令從windows上傳到linux中
    • rz命令,安裝包——>yum install -y lrzsz
[root@hf-01 src]# ls
mariadb-10.2.6-linux-glibc_214-x86_64.tar.gz  mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz
  1. 再去使用 tar命令 進行解壓
[root@hf-01 src]# tar zxvf mariadb-10.2.6-linux-glibc_214-x86_64.tar.gz
  1. 解壓完,去查看下文件
[root@hf-01 src]# ls
mariadb-10.2.6-linux-glibc_214-x86_64         mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz
mariadb-10.2.6-linux-glibc_214-x86_64.tar.gz
[root@hf-01 src]#
  1. 並將解壓的包移動到/usr/local下,並更名叫mariadb——>這裏的更名,是爲了以前安裝mysql的名字有所區分
[root@hf-01 src]# mv mariadb-10.2.6-linux-glibc_214-x86_64 /usr/local/mariadb
[root@hf-01 src]#
  1. 而後進入到/usr/local/mariadb 目錄下去
[root@hf-01 src]# cd !$
cd /usr/local/mariadb
[root@hf-01 mariadb]#
  1. 建立mysql用戶,建立data——>這裏由於以前安裝mysql的時候,已經建立過了因此不須要建立useradd mysql
[root@hf-01 mysql]# useradd mysql
[root@hf-01 mysql]# mkdir /data/
  1. 初始化,./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mariadb/ --datadir=/data/mariadb
    • 定義basedir=/usr/local/mariadb/ 若不定義 ,就會去找mysql了
[root@hf-01 mariadb]# ./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mariadb/ --datadir=/data/mariadb
  1. 查看是否初始化成功,看 echo $? 執行結果是否爲0,如果 0 ,則表示初始化成功
[root@hf-01 mariadb]# echo $?
0
[root@hf-01 mariadb]#
  • 或者查看/data/mariadb/目錄下,是否生成了一些目錄——>和/data/mysql/ 相似
[root@hf-01 mariadb]# ls /data/mariadb/
aria_log.00000001  aria_log_control  ib_buffer_pool  ibdata1  ib_logfile0  ib_logfile1  mysql  performance_schema  test
[root@hf-01 mariadb]#
  1. 拷貝配置文件,定義啓動腳本
    • 配置文件存放在/usr/local/mariadb/suport/files/目錄下,會看到有不少配置文件
[root@hf-01 mariadb]# cd /usr/local/mariadb/
[root@hf-01 mariadb]# ls support-files/
binary-configure        my-large.cnf         mysql-log-rotate  wsrep_notify
magic                   my-medium.cnf        mysql.server
my-huge.cnf             my-small.cnf         policy
my-innodb-heavy-4G.cnf  mysqld_multi.server  wsrep.cnf
[root@hf-01 mariadb]#
  1. 打開support-files/my-small.cnf 文件
  • my-small.cnf、my-medium.cnf、my-large.cnf這三個配置文件區別在於 緩存的數值大小不一樣
    • 根據內存大小的不一樣,它能夠給你指定合適的緩存,這樣可以讓你的mysql達到更高效的性能
[root@hf-01 mariadb]# vim support-files/my-small.cnf

其中下面的配置文件
[mysqld]
port            = 3306
socket          = /tmp/mysql.sock
skip-external-locking
key_buffer_size = 16K
max_allowed_packet = 1M
table_open_cache = 4
sort_buffer_size = 64K
read_buffer_size = 256K
read_rnd_buffer_size = 256K
net_buffer_length = 2K
thread_stack = 240K
  1. 由於咱們作實驗,內存原本就不大,可使用最小的一個my-small.cnf ,拷貝過去
  • 如果內存有幾十個G,可使用my-huge.cnf拷貝過去,而後根據實際的運行狀況 ,去適當的調整參數
  1. 拷貝文件到/usr/local/mariadb/my.cnf
    • mariadb這裏就不放到/etc/my.cnf下了,由於這是mysql用的,這裏爲了區分到/usr/local/mariadb/my.cnf
[root@hf-01 mariadb]# cp support-files/my-small.cnf /usr/local/mariadb/my.cnf
[root@hf-01 mariadb]#
  1. 編輯配置文件 /usr/local/mariadb/my.cnf——>這裏面配置不用修改
[root@hf-01 mariadb]# vim /usr/local/mariadb/my.cnf

配置參數在[mysqld]這一塊

server-id       = 1   //這是作主從複製的
  1. 拷貝啓動腳本到 /etc/init.d/mariadb
[root@hf-01 mariadb]# cp support-files/mysql.server /etc/init.d/mariadb
[root@hf-01 mariadb]#
  1. 編輯啓動腳本
[root@hf-01 mariadb]# vim /etc/init.d/mariadb

定義 basedir=/usr/local/mariadb
定義 datadir=/data/mariadb
自定義參數 conf=$basedir/my.cnf

在定義conf後,還須要在 啓動命令下面指定下——>在通常模式下,搜索 /start 啓動命令
在 $bindir/mysqld_safe --datadir="$datadir" --pid-file="$mysqld_pid_file_path" "$@" &
 中,增長--defaults-file="$conf",最後爲 $bindir/mysqld_safe --defaults-file="$conf" --datadir="$datadir" --pid-file="$mysqld_pid_file_path" "$@" &

並保存退出
  1. 在啓動前,先查看是否有mysql服務在啓動
[root@hf-01 mariadb]# ps aux |grep mysql
root      2526  0.0  0.0 112656   992 pts/0    R+   00:10   0:00 grep --color=auto mysq
[root@hf-01 mariadb]#
  1. 啓動mariadb服務,並去查看是否啓動
    • 查看是否啓動,用ps aux |grep mysql 也能夠,啓動的服務進程是mysqld,由於mariadb是mysql的一個分支
[root@hf-01 mariadb]# /etc/init.d/mariadb start
Reloading systemd:                                         [  肯定  ]
Starting mariadb (via systemctl):                          [  肯定  ]
[root@hf-01 mariadb]# ps aux |grep mariadb
root      2543  0.0  0.1 115348  1748 ?        S    00:11   0:00 /bin/sh /usr/local/mariadb/bin/mysqld_safe --defaults-file=/usr/local/mariadb/my.cnf --datadir=/data/mysql --pid-file=/data/mysql/hanfeng.pid
mysql     2659  5.5  5.7 1125580 58008 ?       Sl   00:11   0:01 /usr/local/mariadb/bin/mysqld --defaults-file=/usr/local/mariadb/my.cnf --basedir=/usr/local/mariadb --datadir=/data/mysql --plugin-dir=/usr/local/mariadb/lib/plugin --user=mysql --log-error=/data/mysql/hanfeng.err --pid-file=/data/mysql/hanfeng.pid --socket=/tmp/mysql.sock --port=3306
root      2708  0.0  0.0 112656   992 pts/0    R+   00:11   0:00 grep --color=auto mariadb
[root@hf-01 mariadb]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      2246/master         
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1147/sshd           
tcp6       0      0 ::1:25                  :::*                    LISTEN      2246/master         
tcp6       0      0 :::3306                 :::*                    LISTEN      2659/mysqld         
tcp6       0      0 :::22                   :::*                    LISTEN      1147/sshd           
[root@hf-01 mariadb]#
  1. 如果在服務器上只安裝了mariadb,沒有mysql,那徹底能夠把my.cnf放在/etc目錄下,那啓動腳本就不須要conf變量了

機器裝了mysql和mariadb

  • 一臺機器上裝了mysql,又裝了mariadb (這種既裝了mysql和mariadb的機率很低),由於有多個配置文件在/etc/my.cnf,不管是在初始化的時候,仍是啓動多個mysql服務的時候,它都會影響正常的結果,因此要麼不把 my.cnf 放在etc目錄下,一旦放了,頗有可能受到影響。
  • 問題:
  • 用ps aux |grep mysql會發現其中的--datadir=/data/mysql,並非咱們預期的--datadir=/data/mariadb
  • 這是由於調用了/etc/my.cnf中的配置,有人可能會問,不是已經指定了--defaults-file=/usr/local/mariadb/my.cnf 配置文件,爲何還要去加載/etc/my.cnf中的配置呢,是由於--defaults-file=/usr/local/mariadb/my.cnf文件中,並無去定義dataidr 這個選項,而後去調用的時候,沒有在配置文件中找到這個參數,而後在/etc/my.cnf中調用
  • 解決方法:
    1. 須要去編輯指定的配置文件,在 /usr/local/mariadb/my.cnf 文件中的 [mysqld] 下加入datadir= /data/mariadb (如果datadir加在其餘地方是無效的)
    • 固然不是隻能擁有一個數據庫,只要將各個參數配置完善,一個機器上能夠跑多個mysql服務
    1. 在修改完配置文件後,啓動/etc/init.d/mariadb start (第一次啓動mariadb服務)——>如果mariadb服務已經啓動了,則/etc/init.d/mariadb restart ,但顯示的結果還未正常,那咱們就直接killall mysqld服務,而後再ps aux |grep mysql查看下服務是否殺死
    1. 最後再來 /etc/init.d/mariadb restart 開啓mariadb服務,會看到顯示正常。
[root@hf-01 mariadb]# ps aux |grep mysql
root      3123  0.0  0.1 115392  1740 ?        S    04:52   0:00 /bin/sh /usr/local/mariadb/bin/mysqld_safe --defaults-file=/usr/local/mariadb/my.cnf --datadir=/data/mariadb --pid-file=/data/mariadb/hf-01.pid
mysql     3242  3.6  6.2 1125520 62780 ?       Sl   04:52   0:00 /usr/local/mariadb/bin/mysqld --defaults-file=/usr/local/mariadb/my.cnf --basedir=/usr/local/mariadb --datadir=/data/mariadb --plugin-dir=/usr/local/mariadb/lib/plugin --user=mysql --log-error=/data/mariadb/hf-01.err --pid-file=/data/mariadb/hf-01.pid --socket=/tmp/mysql.sock --port=3306
root      3278  0.0  0.0 112672   984 pts/0    R+   04:53   0:00 grep --color=auto mysql
[root@hf-01 mariadb]#
相關文章
相關標籤/搜索