1. 程式人生 > >基於YUM安裝與源碼編譯或二進制多實例安裝Mariadb,mysql

基於YUM安裝與源碼編譯或二進制多實例安裝Mariadb,mysql

服務器 安裝mysql down print zlib sed pat blackhole efi

基於YUM
  • 1 安裝

    yum install mariadb
  • 2 創建多實例對應的目錄結構
    mkdir /mysql/{3306,3307,3308}/{data,etc,socket,log,bin,pid} -pv
    chown -R mysql.mysql /mysql 
  • 3 創建多實例的數據庫文件
    mysql_install_db --datadir=/mysql/3306/data/ --user=mysql
    mysql_install_db --datadir=/mysql/3307/data/ --user=mysql
    mysql_install_db --datadir=/mysql/3308/data/ --user=mysql
  • 4 創建對應配置文件
    cp /etc/my.cnf /mysql/3306/etc 
    vim /mysql/3306/etc/my.cnf
    [mysqld]
    port=3306 加一行                                                                                        
    datadir=/mysql/3306/data
    socket=/mysql/3306/socket/mysql.sock
    [mysqld_safe]
    log-error=/mysql/3306/log/mariadb.log
    pid-file=/mysql/3306/pid/mariadb.pid
    cp /mysql/3306/etc/my.cnf  /mysql/3307/etc/my.cnf   
    /mysql/3307/etc/my.cnf 修改
    cp /mysql/3306/etc/my.cnf  /mysql/3308/etc/my.cnf   
    /mysql/3308/etc/my.cnf 修改
  • 5 準備各實例的啟動腳本
vi /mysql/{3306,3307,3308}/bin/mysqld 
cat /mysq/3306/bin/mysqld 
#!/bin/bash
port=3306
mysql_user="root"
mysql_pwd="centos"
cmd_path="/usr/bin"
mysql_basedir="/mysql"
mysql_sock="${mysql_basedir}/${port}/socket/mysql.sock"

function_start_mysql()
{
    if [ ! -e "$mysql_sock" ];then
      printf "Starting MySQL...\n"
      ${cmd_path}/mysqld_safe --defaults-file=${mysql_basedir}/${port}/etc/my.cnf  &> /dev/null  &
    else
      printf "MySQL is running...\n"
      exit
    fi
}

function_stop_mysql()
{
    if [ ! -e "$mysql_sock" ];then
       printf "MySQL is stopped...\n"
       exit
    else
       printf "Stoping MySQL...\n"
       ${cmd_path}/mysqladmin -u ${mysql_user} -p${mysql_pwd} -S ${mysql_sock} shutdown
   fi
}

function_restart_mysql()
{
    printf "Restarting MySQL...\n"
    function_stop_mysql
    sleep 2
    function_start_mysql
}

case $1 in
start)
    function_start_mysql
;;
stop)
    function_stop_mysql
;;
restart)
    function_restart_mysql
;;
*)
    printf "Usage: ${mysql_basedir}/${port}/bin/mysqld {start|stop|restart}\n"
esac
  • 改權限
    chmod +x /mysql/{3306,3307,3308}/bin/mysqld 
  • 6 啟動和關閉實例
    /mysql/{3306,3307,3308}/bin/mysqld start 
    /mysql/{3306,3307,3308}/bin/mysqld stop  
  • 7 測試連接
    mysql -S /mysql/{3306,3307,3308}/socket/mysql.sock
  • 8 安全加固
    mysqladmin  -S /mysql/{3306,3307,3308}/socket/mysql.sock   password ‘centos‘
    vi /mysql/{3306,3307,3308}/bin/mysqld  加上對應centos口令

二進制的安裝

  • 1 準備用戶和組
groupadd -r -g 336 mysql
useradd -r -g mysql -u 336 -s /sbin/nologin -d /data/mysql mysql
  • 2 準備二進制程序文件和相關文件屬性
    tar xvf mariadb-10.2.23-linux-x86_64.tar.gz -C /usr/local/
    cd  /usr/local/
    ln -s mariadb-10.2.23-linux-x86_64/ mysql
    chown -R root.root /usr/local/mysql/
  • 3 PATH變量
cat /etc/profile.d/mysql.sh 
PATH=/usr/local/mysql/bin:$PATH
  • 4 準備數據庫數據目錄和數據--改成邏輯卷
mkdir /data/mysql -pv
chown mysql.mysql /data/mysql/
cd /usr/local/mysql
./scripts/mysql_install_db --datadir=/data/mysql --user=mysql
  • 5 準備Mysql的服務器端的配置文件
mkdir /etc/mysql
cp /usr/local/mysql/support-files/my-huge.cnf /etc/mysql/my.cnf

vim /etc/mysql/my.cnf
[mysqld]
datadir=/data/mysql 加一行
  • 6 準備服務啟動腳本
cp /usr/local/mysql/support-files/mysql.server  /etc/init.d/mysqld
chkconfig --add mysqld
service mysqld start
  • 7 安全加固
mysql_secure_installation
  • 8 測試連接
mysql -uroot -ppassword 

源碼編譯安裝MySQL

  • 準備編譯環境

×××:
https://dev.mysql.com/downloads/mysql/

  • 創建mysql組與用戶
/usr/sbin/groupadd -g 366 -r mysql
/usr/sbin/useradd -c "MySQL" -u 366 -g mysql -s /sbin/nologin -r -d /data/mysql mysql
  • 準備數據庫目錄
mkdir /data/mysql -pv
 chown mysql.mysql /data/mysql
  • 準備源碼文件
tar xf mariadb-10.2.23.tar.gz
cd mariadb-10.2.23
  • 預編譯
cmake . -DCMAKE_INSTALL_PREFIX=/app/mysql -DMYSQL_DATADIR=/data/mysql/ -DSYSCONFDIR=/etc/mysql -DMYSQL_USER=mysql -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DWITHOUT_MROONGA_STORAGE_ENGINE=1 -DWITH_DEBUG=0 -DWITH_READLINE=1 -DWITH_SSL=system -DWITH_ZLIB=system -DWITH_LIBWRAP=0 -DENABLED_LOCAL_INFILE=1 -DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci
  • 編譯安裝
make -j 8
make install
  • 導出環境變量
echo ‘PATH=/usr/local/mysql/bin:$PATH‘ > /etc/profile.d/mysql.sh
source /etc/profile.d/mysql.sh
  • 初始化數據庫
cd /usr/local/mysql
scripts/mysql_install_db --user=mysql --datadir=/data/mysql
  • 準備配置文件
cp support-files/my-innodb-heavy-4G.cnf /etc/my.cnf.d/my.cnf
vim /etc/my.cnf.d/my.cnf   #[mysqld] 配置段中中加入如下內容
datadir = /data/mysql
innodb_file_per_table = on
skip_name_resolve = on
  • 準備服務腳本
cp support-files/mysql.server /etc/rc.d/init.d/mysqld
chkconfig --add mysqld
  • 啟動服務
systemctl start mysqld
  • 安全初始化
mysql_secure_installation

基於YUM安裝與源碼編譯或二進制多實例安裝Mariadb,mysql