標籤:MySQL編譯安裝
Centos7上編譯安裝Mariadb並且實現多執行個體
準備工作的第7和第8條請閱讀,建議編譯前安裝這兩個包
準備工作:
1 iptables關閉;selinux關閉
systemctl stop firewalld #關閉防火牆 setenforce 0 #關閉selinux
2 建立管理資料庫的mysql使用者
useradd -r mysql -s /sbin/nologin
3 安裝開發包組"development tools"
yum groupinstall "development tools"
4 如果沒有安裝cmake就要安裝cmake
yum -y install cmake
5 在官方網站下載mariadb-10.2.12.tar.gz的包,此處用此版本進行編譯
http://downloads.mariadb.org
6 rz上傳包
rz
7 注意:我編譯安裝的過程中遇到了一個問題,
提示為"remove CMakeCache.txt and rerun cmake.On Debian/Ubuntu, package name is libncurses5-dev, on Redhat and derivates it is ncurses-devel." 意思就是缺少ncurses-devel這個包安裝後再執行以下編譯,但是還要重新解壓才可以,所以此處可以在編譯安裝前提前安裝此包
8 安裝完上一個還是會報錯,此處遇到的是
"CMake Error at /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:108 (message):Could NOT find GnuTLS " 安裝gnutls-devel包解決
9 上述兩個問題解決後還需安裝libevent-devel包,不然還是編譯失敗,很坑爹= =
10 還需安裝"libaio-deve"此包以及"openssl-devel"還有"libxml2-devel"包
1 解壓上傳的mariadb-10.2.12.tar.gz包到目前的目錄下
tar xvf mariadb-10.2.12.tar.gz
2 由於編譯安裝中指定的資料庫目錄不存在,所以此處需要手動建立,並修改屬主與屬組
mkdir /mysqldb chown mysql.mysql /mysqldb
3 進入到解壓後的mariadb-10.2.12目錄下開始進行編譯
cd mariadb-10.2.12##########當中prefix指的是程式的安裝目錄 datadir是存放資料庫的目錄 sysconfdir下存放的是設定檔 user是指定使用者 ssl開啟ssl加密 zlib開啟壓縮模式 charset語言設定為UTF-8 cmake . -DCMAKE_INSTALL_PREFIX=/app/mysql -DMYSQL_DATADIR=/mysqldb/ -DSYSCONFDIR=/etc -DMYSQL_USER=mysql -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DWITH_SSL=system -DWITH_ZLIB=system -DWITH_LIBWRAP=0 -DMYSQL_UNIX_ADDR=/app/mysql/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DENABLED_LOCAL_INFILE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DWITH_DEBUG=0 -DWITHOUT_MROONGA_STORAGE_ENGINE=1h
4 編譯完成後執行
make && make install
5 編譯完成後將/app/mysqldb/bin加入到環境變數
echo ‘PATH=/app/mysqldb/bin:$PATH‘ > /etc/profile.d/mysql.sh
6 給/app/mysql修改屬主
chgrp mysql /app/mysql
7 建立多執行個體資料庫的存放目錄並修改屬主與屬組
mkdir -pv /mysqldb/{3306,3307,3308}/{etc,log,data,pid,socket}
8 分別給各個執行個體建立資料庫
/app/mysql/scripts/mysql_install_db --basedir=/app/mysql --datadir=/mysqldb/3306/data /app/mysql/scripts/mysql_install_db --basedir=/app/mysql --datadir=/mysqldb/3307/data /app/mysql/scripts/mysql_install_db --basedir=/app/mysql --datadir=/mysqldb/3308/data
9 給3306建立設定檔,由於是編譯安裝,所以內容在編譯的時候都指定了就無需修改
cp /app/mysql/support-files/my-huge.cnf /mysqldb/3306/etc/my.cnf
10 給其餘執行個體建立設定檔並編輯
cp /etc/my.cnf /mysqldb/3307/etc/my.cnf vim /mysqldb/3307/etc/my.cnf 當中[mysqld]這個模組下面的連接埠以及路徑需要手動更改為3307,並且添加兩行 port = 3307 socket = /mysqldb/3307/socket/mysql.sock datadir = /mysqldb/3307/data 在最後一行添加以下兩行; [mysql_safr] log-error=/mysqldb/3307/log/mariadb.log pid-file=/mysqldb/3307/pid/mariadb.pid cp /etc/my.cnf /mysqldb/3308/etc/my.cnf 當中[mysqld]這個模組下面的連接埠以及路徑需要手動更改為3308,並且添加兩行 port = 3308 socket = /mysqldb/3308/socket/mysql.sock datadir = /mysqldb/3308/data 在最後一行添加以下兩行; [mysql_safr] log-error=/mysqldb/3308/log/mariadb.log pid-file=/mysqldb/3308/pid/mariadb.pid
11 上傳二進位多執行個體安裝時候的那個啟動指令碼並進行修改;
chown mysql.mysql mysqld chmod 700 mysqld vim mysqld 將連接埠號碼修改為3307即可,根據實際情況更改變數值就OK
12 在/mysqldb/3308/下同理,上傳指令檔修改連接埠
cd /mysqldb/3308/ chown mysql.mysql mysqld chmod 700 mysqld vim mysqld 將連接埠號碼修改為3308即可;
破解mysql口令,此處修改的是用yum安裝的mariadb,所以設定檔是/etc/my.cnf,如果是多執行個體的那個就要分別去到各個目錄下修改設定檔
vim /etc/my.cnf skip_grant_tables #添加此行,跳過密碼檢查
MySQL編譯安裝多執行個體