MySQL安裝常見問題(找不到文件,系統服務無法啟動...)

来源:http://www.cnblogs.com/rancrazy/archive/2016/08/13/5768509.html
-Advertisement-
Play Games

在安裝mysql時總是會遇到問題,每次重新安裝都會花很多時間來排查。在網上其實有很多相關的文章,但很多都只講了方法,但沒講具體細節問題,導致無法解決問題。其實有時候知道問題的原因,但總是因為一些細節問題沒有註意到,反覆的嘗試,浪費了很多時間。現在把我安裝過程中遇到的問題以及該註意的問題記錄下來。 環 ...


在安裝mysql時總是會遇到問題,每次重新安裝都會花很多時間來排查。在網上其實有很多相關的文章,但很多都只講了方法,但沒講具體細節問題,導致無法解決問題。其實有時候知道問題的原因,但總是因為一些細節問題沒有註意到,反覆的嘗試,浪費了很多時間。現在把我安裝過程中遇到的問題以及該註意的問題記錄下來。

環境:windows7

mysql版本:mysql-5.6.10-win32

如果是預設安裝,那麼mysql會被安裝到目錄C:\Program Files\MySQL\MySQL Server 5.6中,特別要註意該目錄,下麵會說明原因。

一般情況下,安裝完mysql後,我們都希望直接可以連接使用,但是實際情況卻不一定能這樣順利。安裝完成後,直接在CMD中輸入命令:

 

[plain] view plain copy 在CODE上查看代碼片派生到我的代碼片 01.C:\Windows\system32>mysql -uroot  02.'mysql' 不是內部或外部命令,也不是可運行的程式或批處理文件。 

 

 

這是由於沒有配置環境變數導致的,當然也可以先切換到mysql的安裝目錄再執行命令,不過那不是麻煩麽。

首先配置環境變數,把mysql所在目錄的bin目錄添加到path環境變數中(如何設置環境變數的具體操作省略,可以google一大把)。

 

配置好環境變數後,該可以連接mysql了吧?試試看mysql -uroot,咦,怎麼回事:

 

[plain] view plain copy 在CODE上查看代碼片派生到我的代碼片 01.C:\Windows\system32>mysql -uroot  02.ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061) 

 

 

什麼原因?難道是服務沒有啟動,來啟動服務看看:

 

 

[plain] view plain copy 在CODE上查看代碼片派生到我的代碼片 01.C:\Windows\system32>net start mysql  02.服務名無效。  03.  04.請鍵入 NET HELPMSG 2185 以獲得更多的幫助。 

 

 

居然服務名無效?打開windows服務一看,原來是安裝完mysql後根本沒有安裝mysql服務,需要我們手動安裝。

安裝mysql的服務很“簡單”,在命令行中輸入:

 

[html] view plain copy 在CODE上查看代碼片派生到我的代碼片 01.C:\Users\MikanMu>mysqld --install  02.Install/Remove of the Service Denied! 

 

 

咦,怎麼回事?這是由於沒有許可權造成的,需要在啟動命令行時以管理員身份運行才行。關閉當前cmd視窗重新以管理員身份運行:

 

 

[plain] view plain copy 在CODE上查看代碼片派生到我的代碼片 01.C:\Windows\system32>mysqld --install  02.Service successfully installed. 

 

 

提示成功安裝。很好,安裝完服務後,啟動起來看看:

 

 

[plain] view plain copy 在CODE上查看代碼片派生到我的代碼片 01.C:\Windows\system32>net start mysql  02.發生系統錯誤 2。  03.  04.系統找不到指定的文件。 

 

 

我了個去,這又是怎麼回事?上網各種查,都說是需要在mysql配置文件中添加路徑:

basedir=C:/Program Files/MySQL/MySQL Server 5.6  datadir=C:/Program Files/MySQL/MySQL Server 5.6/data

 

 

好吧,我試試,mysql-5.6.10-win32預設的配置文件是在C:/Program Files/MySQL/MySQL Server 5.6/my-default.ini,或者自己建立一個my.ini文件,在其中添加配置:

[mysqld]  basedir=C:/Program Files/MySQL/MySQL Server 5.6  datadir=C:/Program Files/MySQL/MySQL Server 5.6/data

 

 

註意:1、安裝目錄下由於許可權的原因不能直接建立文件,需要在其他地方建立並添加好相應的配置後,再拷貝到安裝目錄C:/Program Files/MySQL/MySQL Server 5.6下。

2、網上有的說配置中的目錄分隔符必須是正斜杠‘/’,但是經過實驗,‘/’、‘\’、‘\\’都沒有問題,都是可以的。

3、basedir這個配置是mysql的安裝目錄,記住,一定是要配置到C:/Program Files/MySQL/MySQL Server 5.6這個目錄,不能到C:/Program Files/MySQL就完了。

4、my.ini文件的編碼必須是英文編碼(如windows中的ANSI),不能是UTF-8或GBK等。

上面操作完成後(一定要註意細節),再來啟動一下服務:

 

 

[plain] view plain copy 在CODE上查看代碼片派生到我的代碼片 01.C:\Windows\system32>net start mysql  02.發生系統錯誤 2。  03.  04.  05.系統找不到指定的文件。 

 

 

怎麼還是報這個錯?難道不是由於配置的原因?對,不是由於上面的配置的問題,但上面的配置添加後也沒有錯。那是什麼原因?

這裡是最需要註意的地方,在安裝mysql服務時,一定要切換到mysql安裝目錄的bin目錄下,不管你是否配置環境變數,否則在安裝完後啟動服務還是會報上面的錯誤。

切換到bin目錄後,先刪除前面安裝的mysql服務(刪除服務不一定要到bin目錄),再重新在bin目錄下安裝mysql服務,然後啟動: 一定要cd :進入bin目錄即使你配了環境變數

 

 

[plain] view plain copy 在CODE上查看代碼片派生到我的代碼片 01.C:\Windows\system32>cd ../..  02.  03.C:\>cd Program Files\MySQL\MySQL Server 5.6\bin  04.  05.C:\Program Files\MySQL\MySQL Server 5.6\bin>mysqld --remove  06.Service successfully removed.  07.  08.C:\Program Files\MySQL\MySQL Server 5.6\bin>mysqld --install  09.Service successfully installed.  10.  11.C:\Program Files\MySQL\MySQL Server 5.6\bin>net start mysql  12.MySQL 服務正在啟動 .  13.MySQL 服務已經啟動成功。 

 

 哇,終於成功了!!

現在來驗證一下不需要添加my.ini文件,也是可以正常啟動服務的,只要是在bin目錄下安裝的服務就行。只需要停止mysql服務,把服務刪除後,再把mysql安裝目錄下的my.ini文件刪除掉,再重新安裝服務,啟動mysql服務,看看能不能正常啟動即可,實驗證明,是可以正常啟動的。

 

 

[plain] view plain copy 在CODE上查看代碼片派生到我的代碼片 01.C:\Program Files\MySQL\MySQL Server 5.6\bin>net stop mysql  02.MySQL 服務正在停止.  03.MySQL 服務已成功停止。  04.  05.C:\Program Files\MySQL\MySQL Server 5.6\bin>mysqld --remove  06.Service successfully removed.  07.  08.C:\Program Files\MySQL\MySQL Server 5.6\bin>mysqld --install  09.Service successfully installed.  10.  11.C:\Program Files\MySQL\MySQL Server 5.6\bin>net start mysql  12.MySQL 服務正在啟動 .  13.MySQL 服務已經啟動成功。 

 

 

終於大功告成!!!看看能不能連接:

 

 

[plain] view plain copy 在CODE上查看代碼片派生到我的代碼片 01.C:\Program Files\MySQL\MySQL Server 5.6\bin>mysql -uroot  02.Welcome to the MySQL monitor.  Commands end with ; or \g.  03.Your MySQL connection id is 3  04.Server version: 5.6.10 MySQL Community Server (GPL)  05.  06.Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.  07.  08.Oracle is a registered trademark of Oracle Corporation and/or its  09.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.  13.  14.mysql> 

 

 

完全沒有問題。

 

另外,mysql預設的root用戶是沒有設置密碼的,我們可以修改root用戶密碼,方法如下:

1、直接在cmd命令行,不需要進入mysql

 

[plain] view plain copy 在CODE上查看代碼片派生到我的代碼片 01.mysqladmin -u root password '新密碼' 

 

 

2、在mysql中,一定要連接到某個資料庫

 

[plain] view plain copy 在CODE上查看代碼片派生到我的代碼片 01.mysql> use mysql  02.Database changed  03.mysql> update user set password=password('新密碼') where user='root';  04.Query OK, 3 rows affected (0.00 sec)  05.Rows matched: 3  Changed: 3  Warnings: 0  06.  07.mysql> flush privileges;  08.Query OK, 0 rows affected (0.00 sec) 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 問題描述:在使用AndroidStudio開發項目時,使用環信重寫了聊天界面後,運行時app就崩掉了,查看日誌報告,提示報錯如下: 根據提示,明顯是配置出現問題,找環信的客服咨詢,他們只說讓我去掉引用的v7包,可是仍然不好使。 解決方案:後來機智如我,查看環信Demo的Activity,是繼承Eas ...
  • 一.上拉刷新 1.為什麼要做上拉刷新? 想要看一些舊的(更多)數據,就需要上拉刷新,載入更多數據 2.上拉刷新永遠都顯示在tableView最底部,用什麼搭建? tableFootView永遠在tableView最底部,可以用它來搭建 3.上拉刷新業務邏輯 3.1當上拉刷新控制項(footView)全 ...
  • 寫android通知的時候發現Notification的setLatestEventInfo被棄用,於是搜素並整理了一下新的android通知的基本用法。 一、獲取NotificationManager實例 二、創建Notification實例 在這裡需要根據project的min sdk來選擇實現 ...
  • 10
    10 ...
  • 最近手機界開始流行雙攝像頭,大光圈功能也應用而生。所謂大光圈功能就是能夠對照片進行後期重新對焦,其實現的原理主要是對拍照期間獲取的深度圖片與對焦無窮遠的圖像通過演算法來實現重新對焦的效果。 在某雙攝手機的大光圈操作界面有個光圈的操作圖標,能夠模擬光圈調節時的真實效果,感覺還不錯,於是想著實現該效果。現 ...
  • 用代碼獲取APP啟動頁圖片 源碼 - swift 源碼 - Objective-C ...
  • RxJava的核心內容很簡單,就是進行非同步操作。類似於Handler和AsyncTask的功能,但是在代碼結構上不同。 RxJava使用了觀察者模式和建造者模式中的鏈式調用(類似於C#的LINQ)。 觀察者模式:Observable(被觀察者)被Observer(觀察者)訂閱(Subscribe)之 ...
  • 錯誤日誌圖 被這弱智的錯誤吭了半個小時,項目本來好好的,然後因為改版加了很多東西,所以就超限了,一開始總是報下麵那圖的錯,搞的我總以為是retrofit的錯,但是好好的框架而且沒改過,怎麼可能會出錯呢,然後就總是猜測或者是編譯器的吭,運行的是上次的代碼,可是試了好多次還是如此,最後我卸載app在重裝 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...