因為直接使用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';