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';
踏實一些,不要著急,你想要的,歲月都會給你。