手動安裝MySQL的目的:html
一、一個服務器上能夠同時裝多個版本,甚至相同版本MySQL的多個實例,這種需求很常見;mysql
二、一次初始化和配置後,能夠快速複製到本服務器或其餘服務器,及封裝爲初始MySQL的綠色版;linux
三、調查問題時,只要找到MySQL的Home,全部資源都在裏面。sql
手動安裝要達到的目標:shell
一、儘可能各類文件都集中在一個文件夾裏,防止多實例時發現相同Linux路徑下出現相同文件而尷尬(如pid、cnf、log、sock等文件的位置);數據庫
二、複製的實例 儘可能只簡單配置 一下my.cnf、mysql.server啓動中止shell、mysqld.service 服務管理的單元文件、防火牆,甚至不須要配置環境變量;服務器
三、默認初始化root密碼固定(如123456),能夠遠程訪問。dom
實操步驟:socket
一、MySQL官網下載Linux Generic版本,我下載的是 5.7.27;ui
二、服務器上安裝 lrzsz,Free implementation of X/Y/Zmodem protocol. 通常服務器都預裝,或 yum -y install lrzsz 安裝便可,爲了把下載好的MySQL傳上去;
三、下載putty-nd 遠程分支,Noodle build of PuTTY suite,putty官方版不支持 rz上傳、sz下載,我下載的版本是 V6.6 ;
四、打開putty-nd,進入服務器,建立好安裝目錄,個人目錄是 /usr/local/mysql 並進入該目錄;(此時建立mysql用戶,以mysql用戶從新登錄安裝能夠,以root身份安裝也能夠,我就以root安裝)
五、命令 rz 回車,提示選擇下載好的Linux Generic壓縮包(約630M),等待上傳到服務器(很快);
六、直接解壓 tar -xvf mysql-5.7.27-linux-glibc2.12-x86_64.tar.gz ,解壓完 重命名爲 mysql-5.7.27;
七、進入 /usr/local/mysql/mysql-5.7.27 目錄後,開始準備my.cnf 配置文件,具體以下:data、pid、err、log、sock都在同一目錄下
[mysqld] port=3306 basedir=/usr/local/mysql/mysql-5.7.27 datadir=/usr/local/mysql/mysql-5.7.27/data pid-file=/usr/local/mysql/mysql-5.7.27/mysqld.pid log-error=/usr/local/mysql/mysql-5.7.27/mysqld.err user=root max_connections=151 symbolic-links=0 lower_case_table_names = 1 character-set-server=utf8 collation-server=utf8_general_ci bind-address = 0.0.0.0 socket=/usr/local/mysql/mysql-5.7.27/mysql.sock [client] port=3306 socket=/usr/local/mysql/mysql-5.7.27/mysql.sock default-character-set=utf8
八、將my.cnf 配置文件上傳至 當前目錄 : /usr/local/mysql/mysql-5.7.27 。 命令# rz 回車選擇my.cnf 配置文件上傳;
九、進入 support-files/ 目錄修改mysql.server shell文件:注意 只修改shell開頭的basedir、datadir變量的賦值;
#!/bin/sh # Copyright Abandoned 1996 TCX DataKonsult AB & Monty Program KB & Detron HB # This file is public domain and comes with NO WARRANTY of any kind # MySQL daemon start/stop script. basedir=/usr/local/mysql/mysql-5.7.27 datadir=/usr/local/mysql/mysql-5.7.27/data
十、添加環境變量,這是爲了打包製做MySQL綠色版,因此必需要配置後登錄修改root密碼、開啓遠程;
命令 # vi /etc/profile 添加 如下路徑和變量賦值,注意添加在export以前,且把MYSQL_HOME變量也加在export 後面;
以後編譯profile文件# source /etc/profile
MYSQL_HOME=/usr/local/mysql/mysql-5.7.27 PATH=$PATH:$MYSQL_HOME/bin
十一、初始化數據庫,獲得初始隨機密碼 ,命令 ./bin/mysqld --user=root --basedir=/usr/local/mysql/mysql-5.7.27 --datadir=/usr/local/mysql/mysql-5.7.27/data --initialize
十二、開啓MySQL服務: ./support-files/mysql.server start
1三、以初始密碼登錄: mysql -u root -p ,登錄後修改初始密碼: ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password';
1四、開啓遠程訪問:
use mysql select host,user from user; update user set host='%' where user='root'; flush privileges;
1五、打開防火牆3306端口
1六、編輯一個Linux 服務單元文件 = mysqld.service,用來控制MySQL的重啓和關閉,將其上傳至 /usr/lib/systemd/system 目錄,一樣CD進入此目錄後 命令 # rz選擇此文件便可上傳。
[Unit] Description=MySQL Server 5.7.27 Documentation= After=network-online.target remote-fs.target nss-lookup.target Wants=network-online.target [Service] Type=forking PIDFile=/usr/local/mysql/mysql-5.7.27/mysqld.pid ExecStart=/usr/local/mysql/mysql-5.7.27/support-files/mysql.server start ExecReload=/usr/local/mysql/mysql-5.7.27/support-files/mysql.server restart ExecStop=/usr/local/mysql/mysql-5.7.27/support-files/mysql.server stop [Install] WantedBy=multi-user.target
1七、設置開機自啓動 systemctl enable mysqld ,這裏的mysqld就是前面的單元文件名稱,命令能夠加文件名後面的service,也可不加;
1八、打包綠色版結束。
總結:關鍵點就3個,1正確的編輯my.cnf配置文件,及放置的位置basedir根目錄;2修改MySQL重啓的shell文件mysql.server,添加basedir、datadir;三、編輯管理服務的單元文件 mysqld.service,並放在正確的位置。
如下截圖示全部臨時文件和數據文件都在此目錄下,可就此目錄打包下載存檔。