windows安裝及配置mysql5.7

鐵樂貓發表於2018-06-11

引子

mysql官方網站上沒有 windows mysql5.7 64位版本msi的安裝包下載,我們可以通過zip版本解壓縮後手動安裝配置環境。
msi安裝的話有32位的,基本上就是看著圖形介面來一步步操作,沒有技術含量,不在此闡述。

另外截至2018年6月份,mysql 8.0.11版本己經發布,不過大部分公司目前還是在使用mysql5.x版本的吧。有興趣的話可以提前學習一下8.0.11版本的。

不過最推薦的還是mysql被oracle收購後,使用其分支MariaDB。

環境和注意事項

  • win7及以上作業系統
  • MySQL5.7.22 zip格式安裝包
  • 5.7版本和之前的不一樣:
    • 資料夾中沒有DATA目錄
    • 沒有mysql預設庫
    • 沒有預設的my.ini或參考的my-default.ini
    • 那是因為它的初始化方法和之前的不一樣了
  • Windows的路徑使用了反斜槓(),因此,配置中使用時儘量合乎規範將反斜槓改為雙反斜槓()或直接使用斜槓(/)。(也有直接使用而不受影響的)

下載

  • 下載mysql5.7.22 zip安裝包
    • 官網下載壓縮包連結: https://dev.mysql.com/downloads/mysql/5.7.html#downloads
  • 根據電腦配置選擇32/64位版本

  • 將下載回來的mysql壓縮包解壓至適當路徑,也就是你打算以後使用的工作目錄

配置環境變數

  • 配置環境變數:控制皮膚->系統和安全->系統->高階系統設定-環境變數-找到Path變數-點選編輯

  • 如圖,將你自己所定的工作目錄,包含bin的路徑填進去,例如我的就是E:mysqlin,注意和其它變數值以英文的分號;分隔開。
    windows安裝及配置mysql5.7

  • 配置好環境變數是為了方便我們不用每次都進入到mysql的目錄下執行。接下來是配置my.ini檔案,是為了一些自定義設定。
    下載回來的根目錄下沒有my-default.ini 檔案,需要直接在mysql資料夾下新建文字文件,重新命名為my.ini,my.ini配置內容如下:

[mysqld]
# 服務端配置

# 設定mysql的工作目錄,安裝包解壓後的路徑
basedir=E:\mysql

# 資料存放目錄data,需要自行新建
# 也可以使用mysqld --initialize-insecure 命令後也會自動在根目錄中生成data目錄
datadir=E:\mysqldata

# 預設連線埠3306,正式環境一般都會修改
port=3306

# 設定mysql預設字符集為utf-8
character-set-server=utf8

[client]
# 客戶端配置

default-character-set=utf8
#設定mysql預設字符集為utf-8

初始化mysql

  • 在mysql根目錄下新建data空資料夾。(也可不見而等初始化命令自動建)

  • 以管理員身份執行cmd命令

  • mysql初始化
    • 輸入cd 對應mysqlin目錄,例如我的是E:mysqlin,進入bin目錄下
    • 輸入mysqld –initialize(初始化)
    • 或mysqld –initialize-insecure(不安全的選項)
    • 兩者取決於你是否希望伺服器生成一個擁有隨機初始密碼的root@localhost的賬戶。後者直接是空密碼建立。
    • 為了能夠方便檢視初始化過程中的資訊,可以追加 --console 引數使mysqld將輸出資訊寫到控制檯。
    • 一般linux系統才需要追加--user=mysql之類來指定使用者(事先設好讀寫許可權)
    • 例,如圖:
      windows安裝及配置mysql5.7
    • 記下最後一行產生的隨機密碼。

安裝(到windwos)服務

  • 同樣在管理員許可權的cmd中操作,安裝成服務更便利開機啟動。
  • 輸入mysqld --install
  • 成功會如圖顯示Servers Successfully installed
    windows安裝及配置mysql5.7
    • 若需要指定配置檔案(mysql多例項的)則可以在--install後面跟自定義的服務名和--defaults-file選項來指定配置檔案。
      mysqld --install MySQL --defaults-file=E:mysqlmy.ini
      上述命令可以在安裝時指定服務名為 MySQL 以及指定配置檔案路徑,需要注意的是:--install必須是第一個引數, 且服務名(若需指定的話)必須緊跟其後。

    • 如果不想讓MySQL服務每次開機都自動啟動,可以使用--install-manual 引數代替 --install 引數。

  • 控制檯下輸入net start mysql 啟動mysql服務。
  • 在windows的控制皮膚,服務介面下也能檢視到mysql服務。
    windows安裝及配置mysql5.7
    • 解除安裝mysql服務使用的命令是mysqld --remove
    • 正常退出和關閉mysql服務使用net stop mysql
      windows安裝及配置mysql5.7
    • 也有使用mysqladmin自帶的管理工具來關閉的,前提是進入到bin目錄下執行:mysqladmin -u root -p shutdown
      例如我的是E:mysqlin>mysqladmin -u root -p shutdown
  • linux中我們有命令來檢視程式號和殺死程式,windows中也有,檢視相關程式號使用的是tasklist | findstr mysql
    • 殺死程式(不推薦)的是taskkill /F /PID 程式號
      windows安裝及配置mysql5.7
  • 錯誤日誌:如果 mysqld 沒能啟動成功,則可以檢視 error log 檔案,該檔案在配置檔案中指定的 datadir 目錄中,字尾名.errerror log 檔案是可以通過 --log-error 引數指定的,另外,如果想讓 mysqld 將錯誤日誌輸出到控制檯,可以使用 --console 引數。

登入和重設密碼

  • 啟動mysql服務,登入連線到mysql伺服器。
    • mysql -uroot -p輸入前面記下的隨機密碼登入。
      windows安裝及配置mysql5.7
    • 若之前你使用--initialize-insecure 引數初始化,則使用如下命令來連線MySQL:|
      mysql -uroot --skip-password或同樣使用mysql -uroot -p在提示輸入密碼時直接回車即可進入。
  • mysql5.7強制你無論做何操作都要先將隨機密碼重設成自己定義的密碼。
  • 一般第一次可用mysqladmin方式重設root密碼,如圖:
    mysqladmin -uroot -p password
    windows安裝及配置mysql5.7

  • 重新正常登入資料庫後,也可直接在mysql內直接修改使用者許可權或user表方式修改密碼。
    • 例:
      mysql> update mysql.user set authentication_string=password(``) where User="root " and host="localhost";
    • 5.7以前的版本是使用password欄位儲存密碼的,5.7改成了authentication_string,不容易記憶。
    • 修改密碼後需要輸入flush privileges;命令來重新整理生效。
    • 由於authentication_string不太容易記憶,也有直接改許可權的,例:
      ALTER USER `root`@`localhost` IDENTIFIED BY `123456`
      windows安裝及配置mysql5.7
    • 同樣flush privileges;命令來重新整理許可權即生效。

強制跳過密碼登入

  • 適用於忘記密碼或個人學習使用並不想每次連線輸入密碼,但後者可以設定密碼為空,所以此情景主要還是用在忘記密碼了,需要跳過密碼來登入後重設密碼的情景。

  • 第一種,臨時跳過密碼。
    • 執行 mysqld --skip_grant_tables 啟動服務
    • 注意此時應再開多一個cmd視窗來作為客戶端連線服務端,登入的時候直接回車無需密碼。
    • 然後就是重設密碼了。設定成功後記得停止mysqld服務,重新啟動正常需密碼的服務。
  • 第二種,需長期跳過密碼(所有使用者都不用密碼即可連線)。
    • 在配置檔案,my.ini中的[mysqld]下新增一行
      skip_grant_tables表示跳過許可權表。
    • 再執行mysql服務啟動,就是無許可權管理的連線了。極不安全,只適用於個人測試或學習環境。
    • 此配置一成功後,客戶端連線mysql只需敲mysql就直接進mysql了。如圖:
      windows安裝及配置mysql5.7
  • 注意,skip_grant_tables 中間間隔是下劃線。

設定友好提示符

連線上去,使用的時候,你會發覺MySQL 客戶端的預設提示符是 “mysql>”,基本上沒什麼實際作用。
修改這個提示符,讓它顯示一些有用的資訊,例如當前所在的資料庫等。
修改方法有四種,其中前兩種只對當前連線有效,後兩種則對所有連線有效。

  • 1、連線客戶端時通過引數指定。
    mysql --prompt="(u@h) [d]> "
    這樣提示符就會變成 (user@host) [database]>
    其中常用的字元引數有:

D 完整的日期
d 當前資料庫
h 伺服器地址
u 使用者名稱

  • 2、連線上客戶端後,通過 prompt命令 PROMPT (u@h) [d]>修改。
    例:
mysql> PROMPT (u@h)[d]>
PROMPT set to `(u@h)[d]>`
  • 3、在 MySQL 的配置檔案中配置。
[mysql]  
 prompt=\u@\h [\d]>\
  • 4、通過環境變數配置。
    export MYSQL_PS1="u@h [d]> "

【end】

相關文章