標籤:sel map cli file shutdown 連接埠 方案 lrzsz 相關
mysql安裝及多執行個體,配置最佳化
yum install tree nmap sysstat lrzsz dos2unix -y
安裝相關的包
tar -xf cmake-2.8.8.tar.gz
cd cmake-2.8.8
./configure
make && make install
yum install gcc gcc-c++ autoconf* automake* zlib* libxml* ncurses-devel* libgcrypt* libtool* openssl*
1.添加使用者
groupadd mysql
useradd mysql -M -s /sbin/nologin -g mysql
2.
mkdir -p /database/mysql
chown mysql.mysql -R /database/mysql
tar -zxvf mysql-5.6.24.tar.gz
cd mysql-5.6.24
make clean
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql/ \
-DMYSQL_DATADIR=/database/mysql \
-DSYSCONFDIR=/etc \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DENABLE_DTRACE=0 \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_EMBEDDED_SERVER=1 \
make && make install
/bin/cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
/bin/cp /usr/local/mysql/support-files/my-small.cnf /etc/my.cnf
chmod +x /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on
配置環境變數
echo ‘export PATH=/usr/local/mysql/bin:$PATH’ >>/etc/profile
source /etc/profile
echo $PATH
初始化資料庫
cd /usr/local/mysql/scripts
./mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/database/mysql
chown mysql.mysql -R /database/mysql
chmod -R 1777 /tmp/
/etc/init.d/mysqld start
常見問題:
登入mysql故障解決
ERROR 1045(28000):Access denied for user ‘root‘@‘localhost‘(using password:NO)
問題解決:
殺死進程 pkill mysqld
刪除資料檔案 rm -rf /database/mysql/data/*
重新初始化 cd /usr/local/mysql/scripts
./mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/database/mysql
系統報錯字元集問題解決
改成UTF-8
vim /etc/sysconfig/i18n
LANG="en_US.UTF-8"
SYSFONT="latarcyrheb-sun16"
基本最佳化
簡單清理使用者表:
查看使用者表 select user,host from mysql.user;
刪除密碼為空白使用者 delete from mysql.user where Password=‘‘;
刪除使用者為空白 delete from mysql.db where User=‘‘;
刪除IPV6 delete from mysql.user where host=‘::1‘;
添加管理員帳號:
grant all privileges on *.* to [email protected]‘localhost‘ identified by ‘123456‘ with grant option;
flush privileges;
增加root密碼:
mysqladmin -u root password ‘linuxboy‘
mysql多執行個體
就是在一台機器上面開啟多個不同的連接埠,運行多個MySQL服務進程。這些MySQL多執行個體公用一套安裝程式,使用不同的(也可以是相同的)設定檔,
啟動程式,資料檔案。在提供服務時候,多執行個體MySQL在邏輯上看來是各自獨立的,多個執行個體的自身是根據設定檔對應的設定值,來取得相關硬體資源的多少。
作用與缺點
有效利用伺服器的資源,單個伺服器資源有剩餘時,可以充分利用剩餘的資源提供更多的服務。
高並發下某一個執行個體佔用很多資源互相爭搶問題
單一設定檔部署方案:
mysqld_multi --config-file=/database/mysql/my_multi.cnf start 1,2,3,4,5,6,7啟動
耦合性太高
mysql多執行個體安裝
yum install gcc gcc-c++ autoconf* automake* zlib* libxml* ncurses-devel* libgcrypt* libtool* openssl* libaio-devel
1.添加使用者
groupadd mysql
useradd mysql -M -s /sbin/nologin -g mysql
建立mysql多執行個體的資料檔案目錄
mkdir -p /data/{3306,3307}/data
主要修改設定檔:
主要是修改設定檔路徑
[client]
port = 3306
socket = /data/3306/mysql.sock
[mysqld]
port = 3306
socket = /data/3306/mysql.sock
basedir = /usr/local/mysql
datadir = /data/3306/data
[mysqld_safe]
log-error=/data/3306/ilanni.err
pid-file=/data/3306/ilanni.pid
******************************************************
[client]
port = 3307
socket = /data/3307/mysql.sock
[mysqld]
port = 3307
socket = /data/3307/mysql.sock
basedir = /usr/local/mysql
datadir = /data/3307/data
[mysqld_safe]
log-error=/data/3307/ilanni.err
pid-file=/data/3307/ilanni.pid
多執行個體啟動指令碼
#!/bin/bash
port=3306
mysql_user="root"
mysql_passwd="123456"
CmdPath="/usr/local/mysql/bin"
mysql_sock="/data/${port}/mysql.sock"
function_start_mysql()
{
if [ ! -e "$mysql_sock" ];then
printf "Starting Mysql...\n"
/bin/sh ${CmdPath}/mysqld_safe --defaults-file=/data/${port}/my.cnf 2>&1 >/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"
${CmdPath}/mysqladmin -u ${mysql_user} -p${mysql_passwd} -S /data/${port}/mysql.sock shutdown
fi
}
function_restart_mysql()
{
printf "Restang 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: /data/${port}/mysql {start|stop|restart}\n"
esac
授權mysql使用者
chown -R mysql.mysql /data
初始化mysql多執行個體的資料庫檔案
/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql –datadir=/data/3306/data –user=mysql
/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql –datadir=/data/3307/data –user=mysql
啟動mysql
/data/3306/mysql start
單一實例增加密碼
mysqladmin -u root -S /data/3306/mysql.sock password ‘linuxboy‘
mysql 應用管理
找回丟失的Mysql root 使用者密碼
使用--skip-grant-tables啟動Mysql,忽略授權登入驗證
mysqld_safe --skip-grant-tables --user=mysql &
多執行個體Mysql啟動修改丟失root 密碼方法
啟動時加--skip-grant-tables參數
mysqld_safe --defaults-file=/data/3306/my.cnf --skip-grant-table &
mysql -u root -p -s /data/3306/mysql.sock
mysql安裝與多執行個體(詳解)