mysql安裝與多執行個體(詳解)

來源:互聯網
上載者:User

標籤: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安裝與多執行個體(詳解)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.