1. 程式人生 > >linux 安裝mysql 5.7.21 32位安裝包

linux 安裝mysql 5.7.21 32位安裝包

最近在我的阿里雲伺服器上配置目前最新版的mysql5.7.20,期間出現各種奇葩問題,針對自己的各種問題也是網上各種扒資料,各個擊破,最後終於大功告成。

趁熱打鐵,以下將自己的安裝登入過程以及遇到的問題盡力按照流程詳細還原!

1.準備工作(由於個人有強迫症並且力求完美,所以檔案的存放位置,也儘量按照linux標準,我是linux小小白~吐舌頭

(說明:此次下載原始碼存放位置都在:/usr/local/src  解壓後的程式碼存放在:/usr/local下的mysql中,當然需要在/usr/local中使用mkdir mysql 建立mysql資料夾)

mysql5.7.20的下載:

https://dev.mysql.com/downloads/mysql/


如圖選擇 linux的通用版本,我的是64位系統(注意:我這個下載的不是原始碼版本,而是二進位制版本,不需要編譯,之前想要使用原始碼版本,由於編譯時間久且總是出現我解決不了的問題,故而沒有深究直接放棄了),所以我選擇64為版本,下載第一個,點選第一個後面的“download”跳轉到頁面https://dev.mysql.com/downloads/file/?id=473559看到:

這裡你可以選擇登入也可以選擇不登入。點選下面的紅框可以直接下載。因為我這裡是遠端登入阿里雲伺服器,所以右鍵->複製鏈,然後到我的阿里雲伺服器中使用wget下載,將mysql5.7的二進位制原始碼下載到/usr/local/src中。以下是下載步驟:

(1)進入/usr/local/src資料夾      cd /usr/local/src

(2)下載mysql: wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz

(3)解壓下載的問價: 

 tar -zxvf mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz

(4)將加壓後的檔案內容移動到 /usr/local/mysql中,沒有此資料夾就使用mkdir /usr/local/mysql建立

mvmysql-5.7.20-linux-glibc2.12-x86_64/* mysql

(5)建立使用者和使用者組並賦予許可權(這一步我也不是特別明白為什麼這麼做,還需要多多學習linux,多多去研究,不放過任何知識)

[root@dbserver ~]#groupadd mysql  #建立使用者組mysql

[root@dbserver ~]# useradd -r -g mysql mysql //useradd -r引數表示mysql使用者是系統使用者,不可用於登入系統,建立使用者mysql並將其新增到使用者組mysql中

[root@dbserverlocal]#chown -R mysql mysql/

[root@dbserverlocal]# chgrp -R mysql mysql/


2.開始安裝並配置my.cnf

(6)安裝和初始化資料庫

⚠️初始化資料庫:在5.7.6之前初始化的方法是:bin/mysql_install_db

5.7.6之後的版本初始化資料庫不再使用mysql_install_db,而是使用: bin/mysqld --initialize

mysql5.7初始化資料庫後會預設生成一個初始的登入密碼,第一次登入要使用初始密碼,初始密碼的獲取下面會講到

安裝和初始化資料庫有兩種方式,建議使用a,個人使用的是b

a.初始化資料庫後配置

<1>初始化資料庫:

[root@dbservermysql]# bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --lc_messages_dir=/usr/local/mysql/share --lc_messages=en_US

<2>獲取初始登入密碼:

執行上一步操作後會在命令列輸出[email protected]: gFamcspKm2+u localhost: 後面的這一串便是你首次登陸mysql需要的初始密碼

<3>配置my.cnf

接下來進入/usr/local/mysql/support-files/目錄下 
檢視是否存在my-default.cnf檔案,如果存在直接copy到/etc/my.cnf檔案中

    [root@dbserver mysql]# cp -a ./support-files/my-default.cnf /etc/my.cnf
  • 1

如果不存在my-default.cnf檔案,則在/etc/目錄下建立my.cnf,並寫入以下內容,例如我的是這樣的:

[mysqld]

character_set_server=utf8

init_connect='SET NAMES utf8'

basedir=/usr/local/mysql

datadir=/usr/local/mysql/data

socket=/tmp/mysql.sock

log-error=/var/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid

b.配置後初始化資料庫

<1>同a中的<3>

<2>同a中的<1>

<3>獲取初始登入密碼

這個的初始登入密碼將不會在執行第二步之後被輸出到命令列中,而是會被存放在錯誤日誌中。錯誤日誌路徑就是你在my.cnf中配置的log-error=/var/log/mysqld.log

執行:

cat/var/log/mysqld.log

能夠看到一行資訊,例如我的是:

2017-11-29T01:55:23.192210Z 1 [Note] A temporary password is generated for [email protected]: Q5Sck93kdK/*

localhost: 後面的一串就是你mysql登入的初始密碼。

⚠️如果你的初始密碼丟失,可以備份data資料:mv /usr/local/mysql/data data.bak 或者直接刪除data資料:rm -rf /usr/local/mysql/data 然後初始化資料庫:

[root@dbservermysql]# bin/mysqld--initialize --user=mysql重新生成初始密碼然後檢視並記住。此處還有其他的方法,大家可以嘗試一下,參考:http://blog.csdn.net/ljbmxsm/article/details/50612777


3.啟動服務

[root@dbserver mysql]# cd bin/

[root@dbserver bin]# ./mysqld_safe --user=mysql &


4.設定開機啟動

進入 /usr/local/mysql資料夾

[[email protected] support-files]# cp mysql.server /etc/init.d/mysql //設定開機啟動


5.使用service mysqld命令啟動/停止服務

例如我的mysql:啟動/停止/暫停:

service mysqld start/stop/restart

執行命令出現OK時說明成功,如果有其他提示,可以在看看出現了什麼問題


6.登入mysql

[root@dbserver bin]# ./mysql -u root -p //密碼是第2步產生的初始密碼


7.設定密碼

mysql>  set password=password("new password");
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> flush privileges;
 
 

8.退出當前的mysql服務,並重啟,再用新的密碼登入mysql,成功!


出現的問題:

http://www.bkjia.com/Mysql/1075391.html(bin/mysqld: error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or directory)
http://blog.csdn.net/sinat_26696701/article/details/49619207(-bash: mysqld: command not found)
https://www.cnblogs.com/fnlingnzb-learner/archive/2016/09/01/5830661.html(允許mysql可以遠端連線)
http://blog.csdn.net/zzq900503/article/details/16120355(解決MySQL server PID file could not be found)