linux-centos7 安裝 mysql5.7.27 二進制包

目錄

一:卸載,必須卸載乾淨,否則會被坑。特別是配置文件。不刪乾淨可能會走原有配置,打亂安裝過程

 二:安裝


二進制包 mysql-5.7.27-linux-glibc2.12-x86_64.tar.gz 的安裝過程

一:卸載,必須卸載乾淨,否則會被坑。特別是配置文件。不刪乾淨可能會走原有配置,打亂安裝過程


具體流程就是 :    暫停服務 --> 查看 MySQL文件在哪些位置 --> 刪除這些文件

1:檢查 MySQL服務 並關閉服務進程。

[root@localhost local]# ps -ef | grep mysql                // 查看 mysql 服務的進程

[root@localhost local]# service mysqld status              // 查看 mysqld 服務的狀態

[root@localhost local]# service mysqld stop                // 關閉 mysqld 服務

[root@localhost local]# service mysqld status              // 查看 mysqld 服務的狀態

2:查找 MySQL組件和相關文件

[root@localhost local]# whereis mysql                  // 查詢 mysql 服務位置

[root@localhost local]# find / -name mysql*          // 從 / 目錄查詢文件名稱爲 mysql* 的文件

[root@localhost local]# rm -rf $'上一步結果'          // 刪除對應文件,我是手動一個個文件刪的,不熟悉那個刪除 find 結果集的命令

3:刪除一些配置文件

配置文件一般有 /etc/my.cnf 或  /etc/init.d/mysql.server,視具體安裝配置情況而定。

可以使用 find 命令查看文件位置,如 find / -name my.cnf

[root@localhost local]# /etc/my.cnf                    // 自有的 mysql 配置文件, 集羣等個性化配置

[root@localhost local]# /etc/init.d/mysql.server       // mysql 服務啓動腳本,用來配置開機啓動

4:刪除 MySQL 用戶以及用戶組(不太需要,之後新裝的 MySQL 還要配置)

[root@localhost local]# id mysql

[root@localhost local]# userdel mysql

 二:安裝


0:重要的事情說三遍!按 步驟一 刪除乾淨,按 步驟一 刪除乾淨,按 步驟一 刪除乾淨。

1:進入壓縮包存放目錄

[root@localhost ~]# cd /usr/local

2:解壓壓縮包並刪除

[root@localhost local]# tar -xzvf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz

[root@localhost local]# rm -rf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz

3:修改文件夾名字

將解壓後的文件夾修改名字,文件夾名字改爲 mysql

[root@localhost local]# mv mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz mysql

4:檢查並創建用戶和用戶組

[root@localhost local]# cat /etc/group | grep mysql

[root@localhost local]# cat /etc/passwd |grep mysql

[root@localhost local]# groupadd mysql

[root@localhost local]# useradd -r -g mysql mysql

5:創建 data 文件夾:某個版本之後就沒有 data 文件夾了

[root@localhost local]# mkdir /usr/local/mysql/data

6:授權目錄和用戶

[root@localhost /]# cd /usr/local/

[root@localhost local]# chown -R mysql:mysql mysql/

[root@localhost local]# chmod -R 755 mysql/

7:安裝並初始化

執行下面之前去 /etc/ 目錄下查看是否有 my.cnf 配置文件,如果有,刪除或者修改名字備份起來!不然會出現各種 PID 或者 SOCK 有關的問題

[root@localhost local]# /usr/local/mysql/bin/mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql

執行完上面之後,檢查是否有 Error,有的話及時解決。默認的錯誤文件日誌在 data 目錄中,有些錯誤很坑建議克隆一個虛擬機重新裝(強烈推薦,如果你是運維別論)。

[root@localhost data]# tail -f error.log

最後一行會有默認生成的密碼,記下來

A temporary password is generated for root@localhost: n2ta1yWih9-/

8:複製啓動腳本到資源目錄

[root@localhost local]# cd mysql

[root@localhost mysql]# cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld

提示是否覆蓋的話,可能之前裝過沒刪除,輸入 y 覆蓋。不過還是建議之前就刪除乾淨。

9:增加 mysqld 服務控制腳本執行權限

[root@localhost mysql]# chmod +x /etc/rc.d/init.d/mysqld

10:將 mysqld 服務加入到系統服務

[root@localhost mysql]# chkconfig --add mysqld

11:檢查 mysqld 服務是否已經生效

[root@localhost mysql]# chkconfig --list mysqld

mysqld          0:關閉  1:關閉  2:啓用  3:啓用  4:啓用  5:啓用  6:關閉

12:啓動 MySQL

[root@localhost mysql]# service mysqld start

success!

顯示 SUCCESS 的話,到這裏就已經啓動成功了

12.1:啓動 MySQL 失敗

提示找不到 mysql 命令的話,鏈接二進制執行目錄

[root@localhost mysql]# ln -s /usr/local/mysql/bin/mysql /usr/bin

13:登錄 MySQL ,失敗的話看查看報錯原因,底下的原因是缺少文件目錄

[root@localhost mysql]# service mysqld start

Starting MySQL.2019-07-18T07:41:24.268830Z mysqld_safe Directory '/var/lib/mysql' for UNIX socket file don't exists

The server quit without updating PID file (/var/lib/mysql/z[失敗]pid).

[root@localhost mysql]# mkdir /var/lib/mysql

[root@localhost mysql]# service mysqld start

Starting MySQL.The server quit without updating PID file (/[失敗]b/mysql/localhost.pid).

13.1:登錄 mysql 失敗

[root@localhost mysql]# mysql -uroot -p

Enter password:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

失敗信息:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

[root@localhost mysql]# ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock

然後返回13步繼續登錄

14:(在 mysql 命令行模式下)修改密碼和允許多用戶登錄

[root@localhost mysql]# mysql -uroot -p默認密碼登錄

mysql> flush privileges;                                    // 刷新配置

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';  // 修改密碼

mysql> update user set host='%' where user='root';          // 爲了解決 Host 連接限制 "xxx.xxx.xxx.xxx" is not allowes to connect to this MySQL server.

mysql> flush privileges;                                    // 刷新配置

mysql> quit

15:配置 3306 端口

因爲我使用的是 CentOS 7,使用 iptables 的版本是7以前的,CentOS 7 使用 firewall 作爲防火牆。

輸入命令 "  firewall-cmd --state " 如果出現如圖所示的這種情況說明正在運行,如果沒有正在運行需要執行命令" systemctl start firewalld "開啓防火牆服務

查看已經開放的端口:firewall-cmd --list-ports

開啓端口:firewall-cmd --zone=public --add-port=3306/tcp --permanent

命令含義:

–zone                       #作用域

–add-port=3306/tcp            #添加端口,格式爲:端口/通訊協議

–permanent                  #永久生效,沒有此參數重啓後失效

重啓、停止、禁用、查看防火牆

firewall-cmd --reload                           #重啓 firewall

systemctl stop firewalld.service                #停止 firewall

systemctl disable firewalld.service             #禁止 firewall 開機啓動

firewall-cmd --state                            #查看默認防火牆狀態(關閉後顯示 notrunning,開啓後顯示 running)

因此結合上述命令來看,需要將 3306 端口添加到防火牆的開放端口中,然後重新載入防火牆的配置即可。如下:

sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent    #配置完可以再次輸入返回yes確保已經開啓

firewall-cmd --add-service=http/ftp/ssh                     #開啓服務

sudo firewall-cmd --reload

sudo firewall-cmd --list-ports

16:測試連接

本地使用 Navicat 連接測試,填寫完點擊連接測試

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章