1. 程式人生 > >linux下yum安裝指定的mysql版本

linux下yum安裝指定的mysql版本

 

因為直接使用yum安裝的mysql會是預設版本5.1的版本  但是有的同學不滿足又想要其他版本的怎麼辦呢?

曾時候我來提供一種方案(僅供參考):

我們可以使用rpm包來進行指定mysql版本的安裝,

1、首先我們要選擇你的要安裝的msyql版本,然後去官網找到版本對應的路徑

https://dev.mysql.com/downloads/mysql/ 

選擇你要下載的版本:

 

 

 

因為我用的是centos版本所以我就用 RED Hat 紅帽的包

 

2、選擇你要下載的版本點選download

 

 3、然後記住這個連結地址

 

 

 你再去你的linux上進行路徑的拼接即可

 

wget https://dev.mysql.com/get/+要下載的版本rpm路徑

如:
wget https://dev.mysql.com/get/mysql-community-embedded-compat-5.7.24-1.el7.x86_64.rpm   # 這就是要下載上面的 5.7.24mysql版本的rpm包

 

 

最重要的一點先看看你的機器中有沒有其他的多餘的包

yum list installed | grep mysql

這裡寫圖片描述

 

如果有一點要刪除不然會報錯

刪除已安裝mysql

輸入命令:yum -y remove mysql+版本包

切記上面出現兩個  兩個都要刪除

這裡寫圖片描述

這裡寫圖片描述

 

 

 

這個時候你一定要確保之前的沒有其他的多餘的包

下面我來下載5.7.24演示:

wget https://dev.mysql.com/get/mysql57-community-release-el6-9.noarch.rpm

 

安裝用來配置mysql的yum源的rpm包

rpm -Uvh mysql57-community-release-el6-9.noarch.rpm

 

yum localinstall -y mysql57-community-release-el6-9.noarch.rpm   

安裝成功後在/etc/yum.repos.d/下會多出幾個mysql的yum源的配置,如下:

 

2.安裝mysql

yum install mysql-community-server

 

3.開啟mysql服務

service mysqld start

 

 mysql安裝成功後建立的超級使用者'root'@'localhost'的密碼會被儲存在/var/log/mysqld.log,可以使用如下命令檢視密碼

grep 'temporary password' /var/log/mysqld.log

 

然後最初的時候我們要拿著這個密碼去登陸的  它不要預設安裝的不需要密碼 也是需要密碼的

使用mysql生成的'root'@'localhost'使用者和密碼登入資料庫,並修改 其密碼,具體命令

shell> mysql -uroot -p 

 

 

登陸進去之後修改密碼 以防止忘記以前的

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '新密碼';
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'LaowangNi123!';   # 初始設定的必須滿足有大小寫特殊符號8位,不滿足會報錯 下面再強制修改

 

4.開啟遠端連線

設定iptables開放3306埠

vi /etc/sysconfig/iptables

 

如果此時使用telnet遠端登入mysql服務會出錯:

 

 

解決此問題的方法為:

將localhost改成%

進入mysql的BIN目錄

 程式碼如下  

mysql -u root -p

mysql>use mysql;

mysql>update user set host =’%'where user =’root’;

mysql>flush privileges;

 

 

 

具體分析

1、在本機登入mysql後,更改“mysql”資料庫裡的“user”表裡的“host”項,從”localhost”改為'%'。(必須要切換到mysql庫內)

 程式碼如下  
mysql>
mysql>use mysql;
mysql>select 'host' from user where user='root';     

 

  #檢視mysql庫中的user表的host值(即可進行連線訪問的主機/IP名稱)

 

然後執行:

mysql>   update user set host = '%' where user ='root';

mysql>flush privileges;

 

 再進行檢視:

 此時的顯示就是:

 

#修改host值(以萬用字元%的內容增加主機/IP地址,當然也可以直接增加某個特定IP地址,如果執行update語句時出現ERROR 1062 (23000): Duplicate entry '%-root' for key 'PRIMARY' 錯誤,需要select host from user where user = 'root';
檢視一下host是否已經有了%這個值,如果有了直接執行下面的flush privileges;即可)

 

 

下面是強制改密碼:

5.7之後的強制改密碼和之前的不同於了

update user set authentication_string=password("新密碼") where user='root';

5.7之前的修改密碼

方法二:
通過登入mysql系統,

mysql -uroot -p
Enter password: 【輸入原來的密碼】
mysql>use mysql;
mysql> update user set password=password("新密碼") where user='root';
mysql> exit; 

 

所有的修改密碼都要在mysql庫中

 

忘記原來的myql的root的密碼;

方法三:

首先拿到作業系統的root許可權,然後kill掉Mysql服務或者手動stop掉,這裡我推薦使用手動stop;

#service mysql stop

 


然後執行

# mysqld_safe --skip-grant-tables &

 


1
&,表示在後臺執行,不再後臺執行的話,就再開啟一個終端吧。
接著登陸MySQL修改密碼

# mysql
mysql> use mysql;
mysql> UPDATE user SET password=password("新密碼") WHERE user='root'; 
mysql> exit; 

 



注意:如果Mysql的版本是5.7及以上的話update語句如下:

mysql> update user set authentication_string=password("新密碼") where user='root';

 



踏實一些,不要著急,你想要的,歲月都會給你。