一、下載對應的版本的MySql安裝文件
1、下載路徑
https://dev.mysql.com/downloads/mysql/
2、選擇對應的Linux版本和x86/x64位的安裝文件
查看Linux的版本信息可以參考:查看CentOS/Linux的版本信息
我下載的是:mysql-5.7.20-1.el6.x86_64.rpm-bundle.tar
3、解壓

查看解壓后的文件:

二、添加MySql用戶組和用戶
1、查看用戶組
groups 查看當前登錄用戶的組內成員
groups mysql 查看mysql用戶所在的組,以及組內成員
whoami 查看當前登錄用戶名
2、添加用戶組
groupadd mysql
useradd -r -g mysql -s /bin/false mysql
注:groupadd和useradd的語法或名稱在不同版本的Unix系統上可能略有不同,但在CentOS6.5中應進行如上操作。上述操作只是為了獲得系統的所有權,而不是以登錄為目的;使用useradd命令和-r和-s /bin/false選項來創建一個沒有登錄權限的用戶。
三、卸載舊版本的MySql(沒有的話,則跳過此步驟)
1、查看舊版本MySql
rpm -qa | grep mysql
將會列出舊版本MySql的組件列表,如:

我的電腦這里只顯示一個,有可能會有多個。
2、逐個刪除掉舊的組件
使用命令rpm -e --nodeps {-file-name}進行移除操作,移除的時候可能會有依賴,要注意一定的順序。

第一次沒有刪除成功是因為最后多了一個空格。
三、使用rpm命令安裝MySql組件
使用命令rpm -ivh {-file-name}進行安裝操作。
1 [root@sxl129 Downloads]# rpm -ivh mysql-community-common-5.7.20-1.el6.x86_64.rpm 2 warning: mysql-community-common-5.7.20-1.el6.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY 3 Preparing... ########################################### [100%] 4 1:mysql-community-common ########################################### [100%] 5 [root@sxl129 Downloads]# rpm -ivh mysql-community-libs-5.7.20-1.el6.x86_64.rpm 6 warning: mysql-community-libs-5.7.20-1.el6.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY 7 Preparing... ########################################### [100%] 8 1:mysql-community-libs ########################################### [100%] 9 [root@sxl129 Downloads]# rpm -ivh mysql-community-libs-compat-5.7.20-1.el6.x86_64.rpm 10 warning: mysql-community-libs-compat-5.7.20-1.el6.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY 11 Preparing... ########################################### [100%] 12 1:mysql-community-libs-co########################################### [100%] 13 [root@sxl129 Downloads]# rpm -ivh mysql-community-client-5.7.20-1.el6.x86_64.rpm 14 warning: mysql-community-client-5.7.20-1.el6.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY 15 Preparing... ########################################### [100%] 16 1:mysql-community-client ########################################### [100%] 17 [root@sxl129 Downloads]# rpm -ivh mysql-community-server-5.7.20-1.el6.x86_64.rpm 18 warning: mysql-community-server-5.7.20-1.el6.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY 19 Preparing... ########################################### [100%] 20 1:mysql-community-server ########################################### [100%]
注:ivh中, i-install安裝;v-verbose進度條;h-hash哈希校驗
四、登錄並創建MySql密碼
1、啟動Mysql
安裝完后,使用命令service mysqld start啟動MySQL服務。
2、修改MySql的密碼
由於MySQL5.7.4之前的版本中默認是沒有密碼的,登錄后直接回車就可以進入數據庫,進而進行設置密碼等操作。其后版本對密碼等安全相關操作進行了一些改變,在安裝過程中,會在安裝日志中生成一個隨機密碼。
怎么找到這個隨機密碼呢?
使用:
1 grep 'temporary password' /var/log/mysqld.log
即可查詢到類似於如下的一條日志記錄:
1 [root@sxl129 Downloads]# grep 'temporary password' /var/log/mysqld.log 2 2017-12-03T10:34:49.423162Z 1 [Note] A temporary password is generated for root@localhost: hqQRMP:D)9Q&
hqQRMP:D)9Q&即為登錄密碼。使用這個隨機密碼登錄進去,然后修改密碼,使用命令:
mysql -uroot -p
1 Enter password: (在這里輸入密碼) 2 Welcome to the MySQL monitor. Commands end with ; or \g. 3 Your MySQL connection id is 5
4 Server version: 5.7.20
5
6 Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved. 7
8 Oracle is a registered trademark of Oracle Corporation and/or its 9 affiliates. Other names may be trademarks of their respective 10 owners. 11
12 Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
執行下面的命令修改MySql密碼
1 mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'sxl'; 2 Query OK, 0 rows affected (0.00 sec)
3、創建一個可以外部訪問的賬戶
由於MySql使用的是3306端口,我們要將3306端口加入外網訪問權限,使用如下命令:
iptables -I INPUT 1 -p tcp --dport 3306 -j ACCEPT
啟動Mysql后,你可以查看3306端口是被MySql的進程所占用:
1 root@sxl129 Desktop]# lsof -i:3306
2 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME 3 mysqld 3749 mysql 27u IPv6 23700 0t0 TCP *:mysql (LISTEN)
在MySql中創建一個用戶,然后使用戶能被外網訪問:
1 mysql> CREATE USER 'linglong'@'%' IDENTIFIED BY 'sxl'; 2 Query OK, 0 rows affected (0.00 sec) 3
4 mysql> GRANT ALL PRIVILEGES ON *.* TO 'linglong'@'%' WITH GRANT OPTION; 5 Query OK, 0 rows affected (0.00 sec) 6
7 mysql> flush privileges;(這句一定要加上) 8 Query OK, 0 rows affected (0.00 sec)
PS:如果不能被外網訪問,則會報:host-xxx-xx-xxx-xxx-is-not-allowed-to-connect-to-this-mysql-server的異常。
五、使用Navicat連接訪問MySql

連接成功。

六、RPM安裝MySql時的默認路徑
數據文件:/var/lib/mysql/
配置文件模板:/usr/share/mysql mysql
客戶端工具目錄:/usr/bin
日志目錄:/var/log/pid
sock文件目錄:/tmp/(但是我在tmp目錄下沒有找到,在/var/lib/mysql/目錄下找到了mysql.sock文件,知道的大神麻煩告知一下)
一般配置文件會放置在/etc下
七、參考文檔
http://blog.csdn.net/flyingaga/article/details/62248623
https://stackoverflow.com/questions/1559955/host-xxx-xx-xxx-xxx-is-not-allowed-to-connect-to-this-mysql-server
http://blog.csdn.net/ei__nino/article/details/25069391
https://www.cnblogs.com/bookwed/p/5896619.html
http://blog.csdn.net/zhanngle/article/details/41042631
