1、下載mysql安裝包:
下載地址:http://dev.mysql.com/downloads/mysql/5.6.html#downloads
下載版本:我這里選擇的5.6.33,通用版,linux下64位
也可以直接復制64位的下載地址,通過命令
wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.33-linux-glibc2.5-x86_64.tar.gz --no-check-certificate
tar -xvf mysql-5.6.33-linux-glibc2.5-x86_64.tar.gz
2、卸載老版本MySQL
查找並刪除mysql有關的文件
find / -name mysql rm -rf 上邊查找到的路徑,多個路徑用空格隔開 #或者下邊一條命令即可 find / -name mysql|xargs rm -rf

3、在安裝包存放目錄下執行命令解壓文件:
tar -xvf mysql-5.6.31-linux-glibc2.5-x86_64.tar.gz

4、重命名解壓后的文件
mv mysql-5.6.31-linux-glibc2.5-x86_64/ mysql

5、添加mysql用戶組和mysql用戶
先檢查是否有mysql用戶組和mysql用戶
groups mysql

若無,則添加;
groupadd mysql useradd -r -g mysql mysql

若有,則跳過;

6、進入mysql目錄更改權限
cd mysql/ chown -R mysql:mysql ./

7、執行安裝腳本
./scripts/mysql_install_db --user=mysql

安裝完之后修改當前目錄擁有者為root用戶,修改data目錄擁有者為mysql
chown -R root:root ./ chown -R mysql:mysql data

Paste_Image.png
8、更改mysql密碼
上一步安裝腳本執行輸出的日志中告訴我們如何更改密碼了

但是如果直接執行這兩條命令就會報錯

因為這時還沒有啟動mysql,這算是一個坑。啟動方法如下:
./support-files/mysql.server start

如果MySQL啟動報錯,則可能是已經存在MySQL進程,殺掉即可
ps aux|grep mysql kill -9 上邊的進程號 #或者下邊一條命令即可殺掉所有MySQL進程 ps aux|grep mysql|awk '{print $2}'|xargs kill -9

殺掉后再啟動即可。
或者是有其他的mysql文件干擾了mysql的啟動,所以在安裝之前要刪除其他的mysql目錄,如果一直啟動不了,那就刪除掉所有的mysql目錄,重新安裝

MySQL啟動之后再執行如下命令更改密碼:
./bin/mysqladmin -u root -h localhost.localdomain password '123456'

密碼更改后即可登錄MySQL
./bin/mysql -h127.0.0.1 -uroot -p123456

9、修改配置
但是如果./bin/mysql -uroot -p123456登陸,系統會報錯:Can 't connect to local MySQL server through socket '/tmp/mysql.sock '(2) ";
具體可以參考帖子:https://blog.csdn.net/hjf161105/article/details/78850658
驗證辦法:
./bin/mysql -uroot -p -S /var/lib/mysql/mysqld.sock
如果執行上述命令可以連接mysql,則使用下面解決辦法
解決辦法:
ln -s /var/lib/mysql/mysqld.sock /tmp/mysql.sock
ls /tmp/
同時,將etc/my.cnf文件的bind-address = 127.0.0.1 更改為 bind-address = 0.0.0.0,如果配置文件中沒有這個配置,則手動添加上
這一步可有可無:
登錄之后將其他用戶的密碼也可改為root
update mysql.user set password=password('root') where user='root'; flush privileges;

10、關閉防火牆
service iptables stop
11、增加遠程登錄權限
上一步即可本地登錄,但遠程登錄會報錯

為解決這一問題,需要本地登陸MySQL后執行如下命令
grant all privileges on *.* to root@'%' identified by '123456'; flush privileges;

執行之后即可遠程登錄
轉發自鏈接: https://blog.csdn.net/wwd0501/article/details/71171614