標籤:null safe 參數 應用 efi profile log zlib 因此
Mysql的5種安裝方法:
1、yum/rpm安裝(適合要求不高,並發不大,公司內部,企業內部一些應用情境)
2、編譯安裝(線上高並發業務)
3、二進位安裝(編譯安裝後,使用內建工具打包,然後拷貝到相同平台進行安裝,線上高並發)
4、定製rpm包,yum安裝
mysql yum 安裝各個版本yum源
http://repo.mysql.com/yum/
mysql 4.X和5.1.X 系列編譯安裝
useradd mysql -s /sbin/nologin -M
./configure \
--prefix=/application/mysql-5.1.73 \
--with-unix-socket-path=/application/mysql-5.1.73/tmp/mysql.sock \
--localstatedir=/application/mysql-5.1.73/data \
--enable-assembler \
--enable-thread-safe-client \
--with-mysqld-user=mysql \
--with-big-tables \
--without-debug \
--with-pthread \
--enable-assembler \
--with-extra-chasets=complex \
--with-readline \
--with-ssl \
--with-embedded-server \
--enable-local-infile \
--with-plugins=partition,innobase \
--with-myslqd-ldflags=-all-static \
--with-client-ldflags=-all-static
make && make install
cd /application/
ln -s mysql-5.1.73/ mysql
mkdir -p /application/mysql/{data,tmp}
mkdir -p /var/lib/mysql
chown -R mysql:mysql /application/mysql
chown -R mysql:mysql /var/lib/mysql/
cp -a /application/mysql/share/mysql/mysql.server /etc/init/mysqld
[ -f /etc/my.cnf ]&&mv /etc/my.cnf{,.ori}
cp -a /application/mysql/share/mysql/my-small.cnf /etc/my.cnf
echo ‘export PATH="/application/mysql/bin:/application/mysql/libexec:${PATH}"‘ >> /etc/profile
source /etc/profile
which mysql mysqld
which mysql_install_db
mysql_install_db --basedir=/application/mysql/ --datadir=/application/mysql/data/ --user=mysql
/etc/init.d/mysqld start
chkconfig mysqld on
netstat -tunlp |grep 3306
lsof -nPi
ln -s /application/mysql/tmp/mysql.sock /var/lib/mysql/mysql.sock
ln -s /application/mysql/tmp/mysql.sock /tmp/mysql.sock
mysql 5.5 及以上版本依賴安裝
yum install openssl openssl-devel cmake* libaio* ncurses* zlib* libxml* libmcrypt* libtool* -y
useradd mysql -s /sbin/nologin -M
mysql 5.5.X 系列編譯
cmake . -DCMAKE_INSTALL_PREFIX=/application/mysql-5.5.60 \
-DMYSQL_DATADIR=/application/mysql-5.5.60/data \
-DMYSQL_UNIX_ADDR=/application/mysql-5.5.60/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DENABLED_LOCAL_INFILE=ON \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
-DWITHOUT_PARTITION_STORAGE_ENGINE=1 \
-DWITH_FAST_MUTEXES=1 \
-DWITH_ZLIB=bundled \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_READLINE=1 \
-DWITH_EMBEDDED_SERVER=1 \
-DWITH_DEBUG=0
make && make install
ln -s /application/mysql-5.5.60 /application/mysql
mkdir -p /application/mysql/{data,tmp}
chown -R mysql:mysql /application/mysql/
[ -f /etc/my.cnf ]&&mv /etc/my.cnf{,.ori}
cp -a /application/mysql-5.5.60/support-files/my-small.cnf /etc/my.cnf
cp -a /etc/my.cnf{,.`date +%F`}
echo ‘export PATH=/application/mysql/bin:${PATH}‘ >> /etc/profile
source /etc/profile
which mysql
cd /application/mysql/scripts
./mysql_install_db --basedir=/application/mysql/ --datadir=/application/mysql/data/ --user=mysql
cp /application/mysql-5.5.60/support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
/etc/init.d/mysqld start
chkconfig mysqld on
netstat -tunlp |grep 3306
mkdir -p /var/lib/mysql
chown -R mysql:mysql /var/lib/mysql
ln -s /application/mysql-5.5.60/tmp/mysql.sock /tmp/mysql.sock
ln -s /application/mysql-5.5.60/tmp/mysql.sock /var/lib/mysql/mysql.sock
mysql 5.6.X 系列編譯安裝
yum install openssl openssl-devel cmake* libaio* ncurses* zlib* libxml* libmcrypt* libtool* -y
useradd mysql -s /sbin/nologin -M
cmake . -DCMAKE_INSTALL_PREFIX=/application/mysql-5.6.40 \
-DMYSQL_DATADIR=/application/mysql-5.6.40/data \
-DMYSQL_UNIX_ADDR=/application/mysql-5.6.40/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DENABLED_LOCAL_INFILE=ON \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
-DWITHOUT_PARTITION_STORAGE_ENGINE=0 \
-DWITH_FAST_MUTEXES=1 \
-DWITH_ZLIB=bundled \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_READLINE=1 \
-DWITH_EMBEDDED_SERVER=1 \
-DWITH_DEBUG=0
make && make install
cd /application/
ln -s mysql-5.6.40/ mysql
mkdir -p /application/mysql/tmp
mkdir -p /var/lib/mysql
chown -R mysql:mysql /application/mysql/
chown -R mysql:mysql /var/lib/mysql/
[ -f /etc/my.cnf ]&&mv /etc/my.cnf{,.ori}
cp -a /application/mysql/support-files/my-default.cnf /etc/my.cnf#改設定檔需要手動修改,不像5.5系列,這一步最好是上傳事先已經準備好的設定檔
cp -a /application/mysql/support-files/mysql.server /etc/init.d/mysqld
echo ‘export PATH="/application/mysql/bin:/application/mysql/scripts:${PATH}"‘ >> /etc/profile
source /etc/profile
which mysql mysql_install_db
mysql_install_db --basedir=/application/mysql --datadir=/application/mysql/data --user=mysql
/etc/init.d/mysqld start
chkconfig mysqld on
netstat -tunlp |grep mysqld
ln -s /application/mysql/tmp/mysql.sock /var/lib/mysql/mysql.sock
ln -s /application/mysql/tmp/mysql.sock /tmp/mysql.sock
二進位安裝:安裝包名稱中含有linux關鍵字,所謂二進位安裝就是,直接解壓後就能使用的安裝包
下面以5.5.60二進位安裝為例
yum install libaio* ncurses* zlib* libxml* libmcrypt* libtool* -y
useradd mysql -s /sbin/nologin -M
tar xvf mysql-5.5.60-linux2.6-x86_64.tar.gz
mkdir -p /application/mysql-5.5.60
cp -a mysql-5.5.60-linux2.6-x86_64/* /application/mysql-5.5.60/
cd /application
ln -s mysql-5.5.60/ mysql
cd /application/mysql/scripts
./mysql_install_db --basedir=/application/mysql/ --datadir=/application/mysql/data/ --user=mysql
mv /etc/my.cnf{,.ori}
cp -a /application/mysql/support-files/my-small.cnf /etc/my.cnf
sed -i ‘s#/usr/local/mysql#/application/mysql#g‘ /application/mysql/bin/mysqld_safe
sed -i ‘s#/usr/local/mysql#/application/mysql#g‘ /application/mysql/support-files/mysql.server
cp -a /application/mysql/support-files/mysql.server /etc/init.d/mysqld
ll /etc/init.d/mysqld
mkdir -p /application/mysql/tmp
chmod 777 /application/mysql/tmp
/etc/init.d/mysqld start
chkconfig mysqld on
cp -a /etc/my.cnf{,.`date +%F`}
echo ‘export PATH=/application/mysql/bin:${PATH}‘ >> /etc/profile
source /etc/profile
which mysql
mkdir -p /var/lib/mysql
chown -R mysql:mysql /var/lib/mysql
ln -s /application/mysql/tmp/mysql.sock /var/lib/mysql/mysql.sock
netstat -tunlp|grep mysql
多執行個體部署:
1、安裝依賴
使用二進位方式安裝mysql(也可使用編譯安裝):
下面以5.5.60二進位安裝為例
yum install libaio* ncurses* zlib* libxml* libmcrypt* libtool* -y
useradd mysql -s /sbin/nologin -M
tar xf mysql-5.5.60-linux2.6-x86_64.tar.gz
mkdir -p /application/mysql-5.5.60
cp -a mysql-5.5.60-linux2.6-x86_64/* /application/mysql-5.5.60/
cd /application
ln -s mysql-5.5.60/ mysql
mkdir -p /data/{3306,3307}/data
分別在/data/3306和/data/3307目錄下匯入my.cnf設定檔
注意:2個設定檔中幾個參數:
server-id
port
socket
log-error
log-bin
relay-log
relay_log_info_file
slow_query_log_file
不能相同,其中server-id和port一定不能相同
注意:必須在/data/{3306,3307}/my.cnf設定檔中指定資料庫目錄為datadir=/data/{3306,3307}/data,源碼包中的設定檔沒有這一條指令
另外在/data/3306和/data/3307目錄下匯入事先寫好的啟動服務的指令碼:
相關指令碼見單獨的指令檔
多執行個體開機檔案的啟動mysql服務本質:
mysqld_safe --default-file = /data/3306/my.cnf &> /dev/null &
mysqld_safe --default-file = /data/3307/my.cnf &> /dev/null &
多執行個體開機檔案的停止mysql服務本質:
mysql -u root -pchina123 -S /data/3306/mysql.sock shutdown
mysql -u root -pchina123 -S /data/3307/mysql.sock shutdown
chown mysql:mysql -R /data/
sed -i ‘s#/usr/local/mysql#/application/mysql#g’ /application/mysql/bin/mysqld_safe#使用的是官方的二進位包,如果是自己事先編譯並打包的二進位包,根據編譯時間的指定也可以不修改
export ‘export PATH=/application/mysql/bin:${PATH}’ >> /etc/profile
source /etc/profile
cd /application/mysql/scripts/#這裡注意因為是多執行個體,因此需要進行多次初始化
./mysql_install_db --basedir=/application/mysql --datadir=/data/3306/data --user=mysql
./mysql_install_db --basedir=/application/mysql --datadir=/data/3307/data --user=mysql
使用前面的啟動指令碼分別啟動兩個執行個體
登入資料庫進行測試:
msyql –uroot –pchina123 -S /data/3306/mysql.sock
msyql –uroot –pchina123 -S /data/3307/mysql.sock
注意:Mysql多執行個體本地管理時,必須加上-S選項指定sock檔案
編譯安裝實現多執行個體:以5.6.40為例說明
yum install openssl openssl-devel cmake* libaio* ncurses* zlib* libxml* libmcrypt* libtool* -y
useradd mysql -s /sbin/nologin -M
cmake . -DCMAKE_INSTALL_PREFIX=/application/mysql-5.6.40 \
-DMYSQL_DATADIR=/application/mysql-5.6.40/data \
-DMYSQL_UNIX_ADDR=/application/mysql-5.6.40/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DENABLED_LOCAL_INFILE=ON \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
-DWITHOUT_PARTITION_STORAGE_ENGINE=0 \
-DWITH_FAST_MUTEXES=1 \
-DWITH_ZLIB=bundled \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_READLINE=1 \
-DWITH_EMBEDDED_SERVER=1 \
-DWITH_DEBUG=0
make && make install
cd /application/
ln -s mysql-5.6.40/ mysql
mkdir -p /application/mysql/tmp
mkdir -p /var/lib/mysql
chown -R mysql:mysql /application/mysql/
chown -R mysql:mysql /var/lib/mysql/
mkdir -p /data/{3306,3307}/data
上傳3306執行個體的設定檔my.cnf和啟停指令碼mysqld到/data/3306/目錄下
上傳3307執行個體的設定檔my.cnf和啟停指令碼mysqld到/data/3307/目錄下
注意:如果使用源碼包中的預設設定檔my.cnf中需要在設定檔中添加一條指令,datadir=/data/{3306,3307}/data指定資料庫位置,另外設定檔中連接埠等配置參數需要根據不同的執行個體進行相應的修改
啟動服務:
/data/{3306,3307}/mysqld start
netstat -tunlp|grep mysql
echo "/data/3306/mysqld start " >> /etc/rc.local
echo "/data/3307/mysqld start " >> /etc/rc.local
mysql系列安裝