現在mysql版本已經到MySQL 8.0(GA)穩定版本了,所以需求是想簡單又快速在centos7下安裝指定版本例如MySQL 5.7(GA)版本有下面這種方法
首先需要到mysql官網這里下載對應RPM包來update一下
1.全新安裝MySQL的步驟
我這邊是想安裝5.7.23版本,然后這個rpm包是最新8.0版本的,這邊我就需要做點操作了:
首先,將MySQL Yum存儲庫添加到系統的存儲庫列表中。按着這些次序:
在http://dev.mysql.com/downloads/repo/yum/ 上轉到MySQL Yum存儲庫的下載頁面 。
選擇並下載適用於您的平台的發行包。
把RPM包下載了然后放到centos7下,如下圖所示:
使用以下命令安裝下載的發行包,替換 platform-and-version-specific-package-name
為下載的包的名稱:
[root@jumpserver ~]# rpm -Uvh mysql80-community-release-el7-n.noarch.rpm
使用MySQL Yum存儲庫時,默認選擇安裝MySQL的最新GA版本。
在MySQL Yum存儲庫(http://repo.mysql.com/yum/)中,MySQL社區服務器的不同發行版系列托管在不同的子存儲庫中。
默認情況下啟用最新GA系列(當前為MySQL 8.0)的子存儲庫,默認情況下禁用所有其他系列(例如,MySQL 5.7系列)的子存儲庫。
使用此命令查看MySQL Yum存儲庫中的所有子存儲庫,並查看哪些子存儲庫已啟用或禁用(對於支持dnf的系統,請使用dnf替換 命令中的 yum):
[root@jumpserver ~]# yum repolist all | grep mysql
要從最新的GA系列安裝最新版本,無需進行任何配置。要從最新GA系列以外的特定系列安裝最新版本,請在運行安裝命令之前禁用最新GA系列的子存儲庫並啟用特定系列的子存儲庫。
如果您的平台支持 yum-config-manager或dnf config-manager命令,則可以通過發出以下命令來執行此操作,這些命令禁用8.0系列的子存儲庫並啟用5.7系列的子存儲庫; 對於未啟用dnf的平台:
[root@jumpserver ~]# yum-config-manager --disable mysql80-community
[root@jumpserver ~]# yum-config-manager --enable mysql57-community
除了使用yum-config-manager或 dnf config-manager命令外,您還可以通過手動編輯/etc/yum.repos.d/mysql-community.repo
文件來選擇系列 。這是文件中發布系列的子存儲庫的典型條目:
[mysql80-community] name=MySQL 8.0 Community Server baseurl=http://repo.mysql.com/yum/mysql-8.0-community/el/6/$basearch/ enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
找到要配置的子存儲庫的條目,然后編輯該enabled
選項。
指定 enabled=0
禁用子存儲庫,enabled=1
啟用子存儲庫。
例如,要安裝MySQL 5.7,就把mysql8.0的enabled=1改為0,把mysql5.7的enabled改為=1。
# Enable to use MySQL 5.7 [mysql57-community] name=MySQL 5.7 Community Server baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/6/$basearch/ enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
通過運行以下命令並檢查其輸出來驗證是否已啟用和禁用了正確的子存儲庫(對於啟用dnf的系統,請使用dnf替換 命令中的 yum):
[root@jumpserver ~]# yum repolist enabled | grep mysql
2.安裝MySQL5.7
通過以下命令安裝MySQL(對於支持dnf的系統,使用dnf替換命令中的 yum):
[root@jumpserver ~]# yum install mysql-community-server
3.啟動MySQL服務器
使用以下命令啟動MySQL服務:
systemctl start mysqld.service
您可以使用以下命令檢查MySQL服務的狀態:
systemctl status mysqld.service
開機自啟動mysql服務:
systemctl enabled mysqld.service
MySQL服務器初始化(從MySQL 5.7開始):在服務器初始啟動時,如果服務器的數據目錄為空,則會發生以下情況:
-
服務器已初始化。
-
在數據目錄中生成SSL證書和密鑰文件。
-
該validate_password插件安裝並啟用。
-
將
'root'@'localhost'
創建一個超級用戶帳戶。設置超級用戶的密碼並將其存儲在錯誤日志文件中。要顯示它,請使用以下命令: -
grep 'temporary password' /var/log/mysqld.log
通過使用生成的臨時密碼登錄並為超級用戶帳戶設置自定義密碼,盡快更改root密碼:
-
mysql -uroot -p
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';
注意:
MySQL的 validate_password 插件默認安裝。這將要求密碼包含至少一個大寫字母,一個小寫字母,一個數字和一個特殊字符,並且密碼總長度至少為8個字符。
4.MySQL數據庫遠程訪問權限如何打開(兩種方法)
在我們使用mysql數據庫時,有時我們的程序與數據庫不在同一機器上或者有時候我們需要通過自己電腦用可視化sqlyog,或者navicat圖形化來操作一下數據庫,這時我們需要遠程訪問數據庫。缺省狀態下,mysql的用戶沒有遠程訪問的權限。
下面介紹兩種方法,解決這一問題。
1、改表法
可能是你的帳號不允許從遠程登陸,只能在localhost。這個時候只要在localhost的那台服務器,登入mysql后,更改 "mysql" 數據庫里的 "user" 表里的 "host" 項,從"localhost"改稱"%"就能遠程訪問了!
[root@localhost ~]# mysql -u root -p mysql>use mysql; mysql>update user set host = '%' where user = 'root'; mysql>select host, user from user; mysql>flush privileges;
2、授權法
在安裝mysql的服務器上面執行:
[root@localhost ~]# mysql -h localhost -u root
#進入mysql服務以后輸入下面命令對root用戶遠程授權
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION
#賦予任何主機訪問數據的權限
##如果你想Juser用戶使用Jpassword密碼從任何主機連接到mysql服務器的話。
mysql>GRANT ALL PRIVILEGES ON *.* TO 'Juser'@'%'IDENTIFIED BY 'Jpassword' WITH GRANT OPTION;
如果你想允許用戶Juser從ip為192.168.0.100的主機連接到mysql服務器,並使用Jpassword作為密碼
mysql>GRANT ALL PRIVILEGES ON *.* TO 'Juser'@'192.168.0.100'IDENTIFIED BY 'Jpassword' WITH GRANT OPTION;
#重新加載權限語句讓權限生效
mysql>FLUSH PRIVILEGES;
#退出MySQL服務器,這樣就可以在其它任何的主機上以root身份登錄
mysql>exit