1. 程式人生 > >安裝mysql與多例項安裝

安裝mysql與多例項安裝

安裝mysql(通用二進位制格式)

第一步:準備mysql的配置檔案(不再提供配置檔案模版)

首先需要從網路下載一個my.cnf檔案,放在/etc下
說明:
安裝位置:/usr/local/mysql
資料位置: /data/mysql/mysql3306/data
臨時檔案位置:/data/mysql/mysql3306/tmp
日誌檔案位置:/data/mysql/mysql3306/logs/mysql-bin
socket檔案位置:/tmp/mysql3306.sock

第二步:安裝mysql

# groupadd mysql
# useradd -r -g mysql -s /sbin/nologin mysql
# tar xf /root/mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz
# mv mysql-5.7.23-linux-glibc2.12-x86_64 /usr/local/
# cd /usr/local
# ln -sv mysql-5.7.23-linux-glibc2.12-x86_64/ mysql
# chown mysql.mysql mysql -R

第三步:建立相關目錄

# mkdir /data/mysql/mysql3306/{data,tmp,logs} -pv
# chown -R mysql.mysql /data

第四步:初始化

(生成mysql的系統表和庫)
# /usr/local/mysql/bin/mysqld --initialize --user=mysql
說明:
	1. --user是用於指定以哪個使用者的身份完成初始化工作(預設從配置檔案中讀取)
	2. 資料目錄下如果有檔案,會導致初始化失敗

初始化完成後,會在資料目錄下生成一系列檔案
# cd /data/mysql/mysql3306/data/
# ls
auto.cnf  error.log  ib_buffer_pool  ibdata1  ib_logfile0  ib_logfile1  ib_logfile2  mysql  performance_schema  slow.log  sys
說明:
	error.log中儲存了安裝、啟動、執行mysql過程中所出現的錯誤資訊出,初始root密碼也在其中

獲取root的初始密碼
# cat /data/mysql/mysql3306/data/error.log | grep password

補充:
	用--initialize-inseucre來做初始化的時候,root的初始密碼為空

第五步:啟動mysql

# /usr/local/mysql/support-files/mysql.server start

第六步:匯出二進位制

第七步:登入mysql

# mysql -uroot -p密碼

第八步:重置mysql的root密碼

mysql> ALTER USER user() IDENTIFIED BY "123";     >>>修改密碼

mysql> show databases;                            >>>顯示錶
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+

第九步:生成服務管理指令碼

centos5、6

# cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld
# chkconfig --add mysqld
# chkcongig mysqld on
# service msyqld start|stop....

centos7

# vim mysql3306.service
[Unit]
Description=mysql 3306 service

[Service]
Type=forking
ExecStart=/bin/bash /usr/local/mysql/support-files/mysql.server start
ExecStop=/bin/bash /usr/local/mysql/support-files/mysql.server stop
ExecRestart=/bin/bash /usr/local/mysql/support-files/mysql.server restart
[Install]
WantedBy=multi-user.target

# mv mysql3306.service /usr/lib/systemd/system/
# systemctl enable mysql3306.service 
# systemctl start mysql3306.service 
# ss -tnl | grep 3306 
# systemctl stop mysql3306.service 
# ss -tnl | grep 3306 

多例項

單個mysql服務會隨著使用者訪問量增加導致效能急劇下降
提升伺服器的資源使用率
降低單個mysql服務的併發請求量

第二個mysql例項,配置如下

埠:3307
安裝位置:      /usr/local/mysql
資料位置:      /data/mysql/mysql3307/data
臨時檔案位置:  /data/mysql/mysql3307/tmp
日誌檔案位置:  /data/mysql/mysql3307/logs/mysql-bin
socket檔案位置:/tmp/mysql3307.sock
配置檔案:      /data/mysql/mysql3307/my.cnf

第一步:建立相關目錄

# mkdir /data/mysql/mysql3307/{tmp,data,logs} -pv
# chown -R mysql.mysql /data

第二步:生成配置檔案

# cp /etc/my.cnf /data/mysql/mysql3307/
# sed -i  's/3306/3307/g' /data/mysql/mysql3307/my.cnf 
# cat /data/mysql/mysql3307/my.cnf 

第三步:初始化

# /usr/local/mysql/bin/mysqld --defaults-file=/data/mysql/mysql3307/my.cnf --initialize

第四步:啟動mysql

# /usr/local/mysql/bin/mysqld --defaults-file=/data/mysql/mysql3307/my.cnf &

第五步:登入多例項

# mysql -uroot -pc-7ae#sgan1K -S /tmp/mysql3307.sock(初始化後,密碼就有改變需要重新獲取初始密碼)

第三個mysql例項,配置如下

埠:3308
安裝位置:      /usr/local/mysql
資料位置:      /data/mysql/mysql3308/data
臨時檔案位置:  /data/mysql/mysql3308/tmp
日誌檔案位置:  /data/mysql/mysql3308/logs/mysql-bin
socket檔案位置:/tmp/mysql3308.sock
配置檔案:      /data/mysql/mysql3308/my.cnf

第一步:建立相關目錄

# mkdir /data/mysql/mysql3308/{tmp,data,logs} -pv
# chown -R mysql.mysql /data

第二步:生成配置檔案

# cp /etc/my.cnf /data/mysql/mysql3308/
# sed -i  's/3306/3308/g' /data/mysql/mysql3308/my.cnf 
# cat /data/mysql/mysql3308/my.cnf 

第三步:複製模版生成系統資料庫檔案

# cd /data/mysql/
# cp mysql3306/data/* mysql3308/data/ -a

第四步:啟動例項

# /usr/local/mysql/bin/mysqld --defaults-file=/data/mysql/mysql3308/my.cnf &
# ss -tnl

第五步:登入例項

# mysql -uroot -pc-7ae#sgan1K -S /tmp/mysql3308.sock(使用模板的初始密碼)

關閉mysql

mysqladmin -uUserName -pPassword -hIP -Pport -S /path/to/socket shutdown