在CentOS7上編譯安裝多例項mysql
阿新 • • 發佈:2018-11-12
編譯安裝過程
- 首先準備mysql5.7的通用二進位制安裝包和msyql的配置檔案 (在mysql5.7中是沒有msyql配置檔案的模板,在文章末尾會提供模板)
說明:
安裝位置: /usr/local/mysql
資料位置: /data/mysql/mysql3306/data
臨時檔案位置: /data/mysql/mysql3306/tmp
日誌檔案位置: /data/mysql/mysql3306/logs/mysql-bin
socket檔案位置: /tmp/mysql3306.sock - 安裝msyql
# groupadd mysql >>> 建立組 # useradd -r -g mysql -s /sbin/nologin mysql >>>建立msyql的執行使用者 # tar xf /root/mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz>>>解壓二進位制msyql資料包 # mv mysql-5.7.23-linux-glibc2.12-x86_64 /usr/local/ >>>移動msyql到安裝目錄 # 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 (生成msyql的系統表和庫)
# /usr/local/mysql/bin/mysqld --initialize --user=mysql
補充: 當使用–initialize-inseucre來做初始化的時候,root的初始密碼為空;上述方式的話,在/data/msyql/mysql3306/data/error.log中的[email protected]後的字串就是root的初始化密碼,使用以下命令檢視密碼:
# cat /data/mysql/mysql3306/data/error.log | grep "password"
2018-10-11T16:54:45.703420Z 1 [Note] A temporary password is generated for [email protected]: Be4M9hxepF#(
- 匯出msyql的二進位制檔案,方便使用
# cat <<eof >/etc/profile.d/msyql.sh # > PATH=$PATH:/usr/local/mysql/bin # > export PATH # >eof
- 生成服務管理指令碼
- CentOS 5和CentOS 6
# cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld
# chkconfig --add mysqld
# chkcongig mysqld on
- CentOS 7
# 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
- 啟動msyql
- CentOS 5和CentOS 6
# service msyqld start >>>啟動mysql
# chkconfig msyqld on >>>實現開機自啟
- CentOS 7
# /usr/local/mysql/support-files/mysql.server start
或者
# systemctl start mysql
- 登入msyql
# mysql -uroot -pxxxx
- 修改root密碼
> ALTER USER user() IDENTIFIED BY "123";
第二個msyql例項配置如下:
埠: 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
- 初始化mysql
# /usr/local/mysql/bin/mysqld --defaults-file=/data/mysql/mysql3307/my.cnf --initialize
- 啟動mysql3307 (這裡必須使用–defaults-file指定配置檔案位置)
# /usr/local/mysql/bin/mysqld --defaults-file=/data/mysql/mysql3307/my.cnf &
- 登入msyql3307 (這裡的登入密碼在/data/mysql/mysql3307/data/error.log中,同時需要使用-S指定socket檔案位置)
# mysql -uroot -pc-7ae#sgan1K -S /tmp/mysql3307.sock
通過以上操作就可以完成mysql的多例項,第二次開始也可以不使用初始化,直接複製第一個mysql的資料檔案即/data/msyql/msyql3306/data下的全部檔案到新建的msyql的存放資料的目錄下,這樣就相當於初始化生成msyql的系統表和庫;這裡的root使用者密碼和mysqy3306中的root密碼一致。