Mysql安裝常見問題



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

環境:windows7

mysql版本:mysql-5.6.10-win32

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

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

  1. C:\Windows\system32>mysql -uroot  
  2. 'mysql' 不是內部或外部命令,也不是可運行的程序或批處理文件。  
C:\Windows\system32>mysql -uroot
'mysql' 不是內部或外部命令,也不是可運行的程序或批處理文件。

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

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


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

  1. C:\Windows\system32>mysql -uroot  
  2. ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061)  
C:\Windows\system32>mysql -uroot
ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061)

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

  1. C:\Windows\system32>net start mysql  
  2. 服務名無效。  
  3.   
  4. 請鍵入 NET HELPMSG 2185 以獲得更多的幫助。  
C:\Windows\system32>net start mysql
服務名無效。

請鍵入 NET HELPMSG 2185 以獲得更多的幫助。

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

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

  1. C:\Users\MikanMu>mysqld --install  
  2. Install/Remove of the Service Denied!  
C:\Users\MikanMu>mysqld --install
Install/Remove of the Service Denied!

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

  1. C:\Windows\system32>mysqld --install  
  2. Service successfully installed.  
C:\Windows\system32>mysqld --install
Service successfully installed.

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

  1. C:\Windows\system32>net start mysql  
  2. 發生系統錯誤 2。  
  3.   
  4. 系統找不到指定的文件。  
C:\Windows\system32>net start mysql
發生系統錯誤 2。

系統找不到指定的文件。

我了個去,這又是怎麼回事?上網各種查,都說是需要在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等。

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

  1. C:\Windows\system32>net start mysql  
  2. 發生系統錯誤 2。  
  3.   
  4.   
  5. 系統找不到指定的文件。  
C:\Windows\system32>net start mysql
發生系統錯誤 2。


系統找不到指定的文件。

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

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

切換到bin目錄後,先刪除前面安裝的mysql服務(刪除服務不一定要到bin目錄),再重新在bin目錄下安裝mysql服務,然後啓動:

  1. C:\Windows\system32>cd ../..  
  2.   
  3. C:\>cd Program Files\MySQL\MySQL Server 5.6\bin  
  4.   
  5. C:\Program Files\MySQL\MySQL Server 5.6\bin>mysqld --remove  
  6. Service successfully removed.  
  7.   
  8. C:\Program Files\MySQL\MySQL Server 5.6\bin>mysqld --install  
  9. Service successfully installed.  
  10.   
  11. C:\Program Files\MySQL\MySQL Server 5.6\bin>net start mysql  
  12. MySQL 服務正在啓動 .  
  13. MySQL 服務已經啓動成功。  
C:\Windows\system32>cd ../..

C:\>cd Program Files\MySQL\MySQL Server 5.6\bin

C:\Program Files\MySQL\MySQL Server 5.6\bin>mysqld --remove
Service successfully removed.

C:\Program Files\MySQL\MySQL Server 5.6\bin>mysqld --install
Service successfully installed.

C:\Program Files\MySQL\MySQL Server 5.6\bin>net start mysql
MySQL 服務正在啓動 .
MySQL 服務已經啓動成功。

哇,終於成功了!!

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

  1. C:\Program Files\MySQL\MySQL Server 5.6\bin>net stop mysql  
  2. MySQL 服務正在停止.  
  3. MySQL 服務已成功停止。  
  4.   
  5. C:\Program Files\MySQL\MySQL Server 5.6\bin>mysqld --remove  
  6. Service successfully removed.  
  7.   
  8. C:\Program Files\MySQL\MySQL Server 5.6\bin>mysqld --install  
  9. Service successfully installed.  
  10.   
  11. C:\Program Files\MySQL\MySQL Server 5.6\bin>net start mysql  
  12. MySQL 服務正在啓動 .  
  13. MySQL 服務已經啓動成功。  
C:\Program Files\MySQL\MySQL Server 5.6\bin>net stop mysql
MySQL 服務正在停止.
MySQL 服務已成功停止。

C:\Program Files\MySQL\MySQL Server 5.6\bin>mysqld --remove
Service successfully removed.

C:\Program Files\MySQL\MySQL Server 5.6\bin>mysqld --install
Service successfully installed.

C:\Program Files\MySQL\MySQL Server 5.6\bin>net start mysql
MySQL 服務正在啓動 .
MySQL 服務已經啓動成功。

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

  1. C:\Program Files\MySQL\MySQL Server 5.6\bin>mysql -uroot  
  2. Welcome to the MySQL monitor.  Commands end with ; or \g.  
  3. Your MySQL connection id is 3  
  4. Server version: 5.6.10 MySQL Community Server (GPL)  
  5.   
  6. Copyright (c) 2000, 2013, 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.  
  13.   
  14. mysql>  
C:\Program Files\MySQL\MySQL Server 5.6\bin>mysql -uroot
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.6.10 MySQL Community Server (GPL)

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

完全沒有問題。


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

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

  1. mysqladmin -u root password '新密碼'  
mysqladmin -u root password '新密碼'

2、在mysql中,一定要連接到某個數據庫

  1. mysql> use mysql  
  2. Database changed  
  3. mysql> update user set password=password('新密碼') where user='root';  
  4. Query OK, 3 rows affected (0.00 sec)  
  5. Rows matched: 3  Changed: 3  Warnings: 0  
  6.   
  7. mysql> flush privileges;  
  8. Query OK, 0 rows affected (0.00 sec)  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章