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 startmysql
安裝過程
mariadb和mysql安裝過程相似
1首先切換到/usr/local/src目錄下
cd /usr/local/src
2而後在官網下載10.2.6版本(官網下載很慢,由於地址在美國),本身百度雲有提早下載好的,只須要下載到windows,而後 rz 命令從windows上傳到linux中
rz命令,安裝包——>yum install -y lrzsz
3再去使用 tar命令 進行解壓
tar zxvf mariadb-10.2.6-linux-glibc_214-x86_64.tar.gz
4解壓完,去查看下文件linux
5並將解壓的包移動到/usr/local下,並更名叫mariadb——>這裏的更名,是爲了以前安裝mysql的名字有所區分sql
6而後進入到/usr/local/mariadb 目錄下去
cd /usr/local/mariadb
7建立mysql用戶,建立data——>這裏由於以前安裝mysql的時候,已經建立過了因此不須要建立useradd mysql
useradd mysql
mkdir /data/
8初始化,./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mariadb/ --datadir=/data/mariadb
定義basedir=/usr/local/mariadb/ 若不定義 ,就會去找mysql了數據庫
9查看是否初始化成功,看 echo $? 執行結果是否爲0,如果 0 ,則表示初始化成功vim
或者查看/data/mariadb/目錄下,是否生成了一些目錄——>和/data/mysql/ 相似windows
10拷貝配置文件,定義啓動腳本
配置文件存放在/usr/local/mariadb/suport/files/目錄下,會看到有不少配置文件緩存
11打開support-files/my-small.cnf 文件
my-small.cnf、my-medium.cnf、my-large.cnf這三個配置文件區別在於 緩存的數值大小不一樣
根據內存大小的不一樣,它能夠給你指定合適的緩存,這樣可以讓你的mysql達到更高效的性能
vim support-files/my-small.cnf服務器
12由於咱們作實驗,內存原本就不大,可使用最小的一個my-small.cnf ,拷貝過去
如果內存有幾十個G,可使用my-huge.cnf拷貝過去,而後根據實際的運行狀況 ,去適當的調整參數
13拷貝文件到/usr/local/mariadb/my.cnf
mariadb這裏就不放到/etc/my.cnf下了,由於這是mysql用的,這裏爲了區分到/usr/local/mariadb/my.cnf性能
14編輯配置文件 /usr/local/mariadb/my.cnf——>這裏面配置不用修改3d
15拷貝啓動腳本到 /etc/init.d/mariadb
cp support-files/mysql.server /etc/init.d/mariadb
16編輯啓動腳本
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" "$@" &
17在啓動前,先查看是否有mysql服務在啓動(有的話用killall mysqld關閉)
18啓動mariadb服務,並去查看是否啓動
查看是否啓動,用ps aux |grep mysql 也能夠,啓動的服務進程是mysqld,由於mariadb是mysql的一個分支
19如果在服務器上只安裝了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服務
2在修改完配置文件後,啓動/etc/init.d/mariadb start (第一次啓動mariadb服務)——>如果mariadb服務已經啓動了,則/etc/init.d/mariadb restart ,但顯示的結果還未正常,那咱們就直接killall mysqld服務,而後再ps aux |grep mysql查看下服務是否殺死
3最後再來 /etc/init.d/mariadb restart 開啓mariadb服務,會看到顯示正常