最近MySQL發布了新版本,MySQL8.0,基于8.0做了諸多得優化,我們想在自己的業務中使用這個版本,但是為了安全起見,需要做相關的測試工作。同時為了保證其在相同的硬件工況下,所以我們選擇在同一個機器上...
最近MySQL發布了新版本,MySQL8.0,基于8.0做了諸多得優化,我們想在自己的業務中使用這個版本,但是為了安全起見,需要做相關的測試工作。同時為了保證其在相同的硬件工況下,所以我們選擇在同一個機器上部署5.7和8.0兩個不同的版本。因為是兩個不同的版本,所以安裝的時候需要有較多注意的地方,下面我就針對這樣的一種背景對“同一機器安裝不同版本的安裝步驟進行一個記錄和分享”。
第一步,使用默認方式(普通安裝)
先選擇使用rpm安裝8.0版本,具體選擇哪個版本無所謂,都行,
首先去mysql網站上下載mysql社區版的完全包,分清32位還是64位。
Red Hat Enterprise Linux 7 / Oracle Linux 7 (x86, 64-bit), RPM Bundle
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.13-1.el7.x86_64.rpm-bundle.tar
安裝的準備工作
安裝時候會提示與已經安裝的RPM包有沖突,所以我們先卸載一些RPM包。
我們要卸載的是包含有mariadb關鍵字的RPM包,執行命令:rpm -qa|grep mariadb來查看一下我們要卸載哪些軟件。
rpm -e 卸載,有可能因為依賴卸載不掉。可以使用這個rpm -e --nodeps 忽略依賴卸載,也可以解決依賴。
卸載完了,我們就開始安裝吧
首先解開包
tar -xf mysql-8.0.13-1.el7.x86_64.rpm-bundle.tar
安裝前,先講一下,
雖然官方文檔說安裝mysql-community-client-8.0.13-1.el7.x86_64.rpm和mysql-community-server-8.0.13-1.el7.x86_64.rpm就可以獲得標準功能的MySQL。
但是由于RPM包的依賴關系,實際上我們需要安裝4個包,并且是按照順序的。
rpm -Uvh --force mysql-community-common-8.0.13-1.el7.x86_64.rpm
rpm -Uvh --force mysql-community-libs-8.0.13-1.el7.x86_64.rpm
rpm -Uvh --force mysql-community-client-8.0.13-1.el7.x86_64.rpm
rpm -Uvh --force mysql-community-server-8.0.13-1.el7.x86_64.rpm
這樣我們就把MySQL安裝好了,當然最重點的地方也就來了,那就是初始化。
初始化之前一定要配置你的my.cnf文件.默認路徑是/etc/my.cnf
生成密碼的初始化:mysqld --initialize --user=mysql
不生成密碼的初始化:mysqld --initialize-insecure --user=mysql
你也可以指定自己的目錄:
mysqld --initialize --user=mysql --basedir=/home/mysql --datadir=/home/mysql/data
如果你不指定目錄,
mysql的basedir是/var/lib
mysql的datadir是/var/lib/mysql
mysql的cnf文件在/etc/my.cnf
在Unix系列系統中,有一點是很重要的,那就是確保數據庫目錄與文件的所有者為mysql登錄賬戶,
以便在你運行mysqld服務的時候,mysql服務可以對這些目錄和文件進行讀取與寫入操作
如果你是以root身份運行mysqld服務,執行初始化命令時一定要帶有–user=mysql
當你是以mysql的賬戶登錄并執行程序的情況下,你可以將–user=mysql選項從命令中去掉。
mysql的命令在/usr/bin/ ,可以使用ll /usr/bin/ |grep mysql查看
mysql的文件在/var/lib,可以使用ll /var/lib |grep mysql查看
初始化的時候如果報錯。[ERROR] --initialize specified but the data directory exists. Aborting.
遇到這種情況,就將數據目錄刪除后,重新再初始化一次.
mysql的初始密碼在 /var/log/mysqld.log
在這句話后面的就是密碼[Note] A temporary password is generated for root@localhost:
啟動服務 systemctl start mysqld
查看服務 systemctl status mysqld
我們來對上一步作個補充,因為你也有可能會遇到。如果你在執行命令:
systemctl start mysqld時,出現了這樣的提示:
Job for mysqld.service failed. See ‘systemctl status mysqld.service’ and ‘journalctl -xn’ for details.
我們先查看一下/var/lib/mysql-files目錄是否存在,執行命令:ls -ld /var/lib/mysql-files。
如果不顯示任何信息就表示不存在,執行命令:mkdir /var/lib/mysql-files,創建/var/lib/mysql-files目錄。
這時,我們試著執行命令:systemctl start mysqld。
如果還出現圖一樣的提示,我們執行另一條命令:chown -R mysql:mysql /var/lib/mysql
將/var/lib/mysql目錄及其下所有文件和子目錄的所有者和所屬組都改為mysql。我們再執行一下:systemctl start mysqld應該就可以啟動mysqld服務了。
連接數據庫
mysql -uroot -p;
修改密碼.
ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘newpassword’;
設置開放遠程登陸
USE mysql;
SELECT host FROM user WHERE user = “root”;
UPDATE user SET HOST = ‘%’ WHERE user = “root”;
FLUSH PRIVILEGES;
grant all privileges on . to ‘root’@’%’;
GRANT ALL ON . TO ‘root’@’%’;
FLUSH PRIVILEGES;
SELECT host FROM user WHERE user = “root”;
如果有主從庫的話還要讓主從庫進行同步.看5.6的安裝指南即可
mysql8.0默認字符集是utf8mb4
這樣,我們的MySQL8.0就安裝好了。
第二步 安裝第二個版本
我選用了MySQL5.7的版本
第二個版本的MySQL不能再使用rpm的方式安裝了,需要換一種方式,這里用源碼的方式安裝(使用tar.gz安裝包))
準備工作:下載tar.gz,鏈接:https://dev.mysql.com/downloads/mysql/5.7.html#downloads,選擇Linux通用包
解壓縮下載的xxxx.tar.gz文件,并重命名,注意自己存放的文件路徑名稱。
使用tar -zxvf xxx.tar.gz來解壓文件,根據自己的文件管理方式,對解壓后的文件進行重命名,方便后續的配置管理工作
創建數據庫配置文件,在你解壓的安裝包下,和bin同級目錄下創建一個文件夾etc,然后創建配置文件,一般名稱為my.cnf 。其實在根目錄 /etc/my.cnf 有這個文件,所以只需要復制就行了,因為在安裝8.0的時候已經產生了一個,所以復制過來就行。
#在目錄etc目錄下,執行命令
cp /etc/my.cnf ./12
如圖和我的路徑
5. 編輯剛復制的my.cnf文件,由于我的服務器沒有vim命令,所以我就使用vi命令了 vi etc/my.cnf 。編輯如下內容
[root@localhost etc]# cat my.cnf
[mysqld]
basedir= /home/soft/mysql5.7
datadir = /home/data/mysql5.7/data
port = 3308
socket = /home/soft/mysql5.7/mysql.sock
[client]
socket = /home/soft/mysql5.7/mysql.sock
#不區分大小寫
lower_case_table_names =123456789101112
6. 安裝依賴包,因為是源碼安裝,需要有安裝依賴包
yum -y install make gcc-c++ cmake bison-devel ncurses ncurses-devel libaio-devel1
指定配置文件初始化
./mysqld_safe --defaults-file=/home/soft/mysql5.7/etc/my.cnf --user=root &1
注意保存初始化密碼
8. 接著初始化數據庫
./bin/mysqld_safe --defaults-file=/home/soft/mysql5.7/etc/my.cnf --user=root &1
上面的命令注意結尾符號& ,接著執行mysql.server start,如果出現如下的問題,那就修改mysql.server文件
將mysql.server的內容修改:
basedir=你的路徑
datadir=你的路徑,改成如下圖所示
9. 啟動
修改好之后再執行 ./support-files/mysql.server start ,如果正確,該數據庫實例將正常啟動了,可以使用命令查看: netstat -tlunp
10. 如果沒有配置系統管理工具啟動,那么機器重啟后需要手動重啟MySQL服務,可以指定配置文件的方式啟動
./mysqld --defaults-file=/home/soft/mysql5.7/etc/my.cnf --user=root &1
11.其他
最后一步,登錄修改賬號配置
#./bin/mysql --socket=…/mysql.sock --port=3308 -u root -p
使用初始化的時候得到的密碼 xxxxx(前面初始化時候日志里的).;
進入后直接修改密碼,初始化密碼修改后才能操作。
mysql>alter user ‘root’@‘localhost’ identified by ‘123456’;
mysql>use mysql;
msyql>update user set user.Host=’%’ where user.User=‘root’;
mysql>flush privileges;
mysql>quit
找個客戶端遠程鏈接測試一下,是ok得
至此,兩個數據可以就都可以同時和諧共處了
(參考)[https://blog.csdn.net/u010898329/article/details/83064373]
(資料)[https://blog.csdn.net/itjin45/article/details/40303497]
原文出處:https://blog.csdn.net/LeegooWang/article/details/98058881
來源:本文內容搜集或轉自各大網絡平臺,并已注明來源、出處,如果轉載侵犯您的版權或非授權發布,請聯系小編,我們會及時審核處理。
聲明:江蘇教育黃頁對文中觀點保持中立,對所包含內容的準確性、可靠性或者完整性不提供任何明示或暗示的保證,不對文章觀點負責,僅作分享之用,文章版權及插圖屬于原作者。
Copyright©2013-2025 ?JSedu114 All Rights Reserved. 江蘇教育信息綜合發布查詢平臺保留所有權利
蘇公網安備32010402000125
蘇ICP備14051488號-3技術支持:南京博盛藍睿網絡科技有限公司
南京思必達教育科技有限公司版權所有 百度統計