centos下mysql多實例安裝3306、3307實例(2014-10-15)

背景說明


      mysql的安裝方法有多種,如二進制安裝、源碼編譯安裝、yum安裝等。yum安裝只能安裝mysql 5.1 版本;源碼安裝編譯的過程比較長,若沒有對源碼進行修改且要求使用mysql較高版本,建議使用二進制安裝。本文以二進制安裝mysql,且使用mysqld_mutil進行mysql多實例管理。

是否安裝了mysql


首先查看下服務器中是否有安裝mysql,若端口被佔用,則需要選擇其他端口。

下載mysql 

cd /usr/src
wget http://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.6.21-linux-glibc2.5-x86_64.tar.gz

解壓及遷移

tar -zxvf  mysql-5.6.21-linux-glibc2.5-x86_64.tar.gz
mv mysql-5.6.21-linux-glibc2.5-x86_64  /usr/local/mysql

關閉防火牆

臨時關閉:service iptables stop
永久關閉:chkconfig iptables off

關閉selinux

vim /etc/sysconfig/selinux 
將SELINUX修改爲DISABLED,即SELINUX=DISABLED

初始化用戶組及用戶

創建一個mysql用戶組及用戶,且這個用戶是不可登錄的
創建用戶組:groupadd mysql
創建不可登錄用戶:useradd -g mysql -s /sbin/nologin -d /opt/mysql mysql
查看下創建後的用戶信息:id msyql
# id mysql
uid=500(mysql) gid=500(mysql) groups=500(mysql)

創建相關目錄

cd /
mkdir /data
cd /data
mkdir mysql
cd mysql 
mkdir {mysql_3306,mysql_3307}
cd /data/mysql/mysql_3306
mkdir {data,log,tmp}
cd /data/mysql/mysql_3307
mkdir {data,log,tmp} 

更改目錄權限

chown -R mysql:mysql /data/mysql/
chown -R mysql:mysql /usr/local/mysql/

添加環境變量

echo 'export PATH=$PATH:/usr/local/mysql/bin' >>  /etc/profile
source /etc/profile 

複製my.cnf文件到etc目錄


cd /usr/local/mysql/support-files
cp my-default.cnf /etc/my.cnf

修改my.cnf

將以下內容,全部替換 /etc/my.cnf中的內容: 
[client] 
port=3306 
socket=/tmp/mysql.sock 

[mysqld_multi] 
mysqld = /usr/local/mysql /bin/mysqld_safe 
mysqladmin = /usr/local/mysql /bin/mysqladmin 
log = /data/mysql/mysqld_multi.log 

[mysqld] 
user=mysql 
basedir = /usr/local/mysql 
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 

[mysqld3306] 
mysqld=mysqld 
mysqladmin=mysqladmin 
datadir=/data/mysql/mysql_3306/data 
port=3306 
server_id=3306 
socket=/tmp/mysql_3306.sock 
log-output=file 
slow_query_log = 1 
long_query_time = 1 
slow_query_log_file = /data/mysql/mysql_3306/log/slow.log 
log-error = /data/mysql/mysql_3306/log/error.log 
binlog_format = mixed 
log-bin = /data/mysql/mysql_3306/log/mysql3306_bin 
  
[mysqld3307] 
mysqld=mysqld 
mysqladmin=mysqladmin 
datadir=/data/mysql/mysql_3307/data 
port=3307 
server_id=3307 
socket=/tmp/mysql_3307.sock 
log-output=file 
slow_query_log = 1 
long_query_time = 1 
slow_query_log_file = /data/mysql/mysql_3307/log/slow.log 
log-error = /data/mysql/mysql_3307/log/error.log 
binlog_format = mixed 
log-bin = /data/mysql/mysql_3307/log/mysql3307_bin

初始化數據庫

初始化3306數據庫
/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql/ --datadir=/data/mysql/mysql_3306/data --defaults-file=/etc/my.cnf 
初始化3307數據庫
/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql/ --datadir=/data/mysql/mysql_3307/data --defaults-file=/etc/my.cnf 
說明:
--basedir:mysql的安裝目錄
--datadir:數據庫的數據文件目錄
--defaults-file:mysql配置文件目錄

需要看兩個Ok,才說明成功,如下圖:

查看數據庫是否初始化成功

cd /data/mysql/mysql_3306/data

設置啓動文件

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql

mysqld_multi進行多實例管理

啓動全部實例:/usr/local/mysql/bin/mysqld_multi start
查看全部實例狀態:/usr/local/mysql/bin/mysqld_multi report
啓動單個實例:/usr/local/mysql/bin/mysqld_multi start 3306
停止單個實例:/usr/local/mysql/bin/mysqld_multi stop 3306
查看單個實例狀態:/usr/local/mysql/bin/mysqld_multi report 3306

修改密碼

由於mysql的root用戶初始密碼是空,所以需要登錄mysql進行修改密碼,下面以3306爲例:
mysql -S /tmp/mysql_3306.sock  
set password for root@'localhost'=password('123456');
flush privileges;

新建用戶及授權

一般新建數據庫都需要新增一個用戶,用於程序連接,這類用戶只需要insert、update、delete、select權限。新增一個用戶,並授權如下:
grant select,delete,update,insert on *.* to admin@'192.168.1.%' identified by '123456';
flush privileges;


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章