使用MySQL踩過的坑

   首先從MySQL官方網站下載MySQL,我選擇的是5.6的非安裝版本,是在Windows系統系,MySQL下載地址。而後解壓到你想要的目錄,把my-default.ini拷貝一份重命名爲my.ini這個是MySQL服務啓動時默認讀取的配置文件。以下圖所示:mysql

                      

1  MySQL目錄sql

   爲了方便,把MySQLbin目錄加入到path環境變量中,當在程序在搜索可執行程序的時候會搜索path指定的目錄。咱們就能夠直接像這樣mysql –u root –p執行命令,而不用像D:\db\mysql\mysql-5.6.31-winx64\bin\mysql –u root –p這樣來執行命令。數據庫

1、添加環境變量安全

1.      右鍵計算機選擇屬性服務器

2 計算機屬性函數

 

2.      選擇高級系統設置工具

3 系統高級設置測試

 

3.      選擇環境變量網站

4 系統環境變量編碼

 

4.      選擇Path變量,單擊編輯按鈕

5 編輯環境變量

 

5.      添加MySQLbin目錄

6 添加MySQL環境變量

注意:上面是添加MySQLbin目錄,不是覆蓋,只須要使用分號(;)把前面的目錄隔開就能夠了。

2、MySQL服務

 

1MySQL客戶端(mysql)與MySQL服務(msyqld

   這裏首先要區分一下MySQL的服務器和MySQL的客戶端,由於可能會有同窗對這2個概念有點混淆。有的同窗可能會看到過下載MySQL的時候有不少包可選,有的只有幾兆,十幾兆,有的卻有幾百兆。這裏除了版本、針對的系統不同以外,還有就是有的只有MySQL客戶端工具,有的只有MySQL服務器,有的是包含各類套件,包括客戶端,服務器以及測試套件等。

   這裏最重要的也是最容易混淆的區分就是MySQL的客戶端和MySQL的服務。咱們通常經過mysql命令只是一個客戶端工具而已,並不包含MySQL的服務,mysqlMySQL客戶端)和mysqld(MySQL服務)是分開的。咱們能夠經過只下載一個幾兆的MySQL的客戶端也可使用遠程的MySQL服務。而若是要使用本地MySQL服務,就要啓動MySQL服務。

2. MySQL服務啓動

能夠直接經過下面2個命令來啓動服務

mysqld

mysqld --defaults-file="D:\db\mysql\mysql-5.6.31-winx64\my.ini"

一個是指定了配置文件一個是沒有指定配置文件啓動MySQL服務的。若是啓動成功就會看到以下圖所示的界面:

              

7 啓動MySQL

 

   而後上面的窗口就能夠關閉了,能夠在Windows任務管理器中就能夠看到一個mysqld進程:

8 mysqld進程

 

接下來就能夠直接經過下面的命令直接回車鏈接MySQL服務了

mysql –u root -p

           

9 鏈接MySQL服務

   這是由於MySQL非安裝版默認有2個用戶,一個是root,一個是空(不是null),都是沒有密碼的。能夠經過root用戶執行下面的命令來查看:

Select host,user,password from mysql.user

 

                 

10 MySQL默認用戶

 

   當用戶密碼爲空(’’不是null)的時候能夠直接鏈接數據庫服務,如上圖host列表示能夠鏈接的主機iplocalhost127.0.0.1::1都是表示本機,::1IPV6的表示方法。就是說只容許主機沒有密碼鏈接,還有一個通配符%表示任意,例如,最多見的表示就是host設置爲192.168.%.%用來限制只有指定的網段可以經過這個用戶這個密碼鏈接MySQL服務。

   爲了安全,仍是爲root用戶設置一個密碼吧,能夠經過下面的語句來設置MySQL的密碼。

update mysql.user set password=password(123456) where user='root';

   上面的SQL語句是將用戶名爲root的用戶密碼修改成123456password(123456)是調用MySQLpassword函數對密碼123456進行加密處理。由於MySQL存儲的密碼都是加密的。

 

3. 安裝MySQL服務

若是以爲每一次都要執行命令啓動MySQL服務麻煩就能夠安裝MySQL服務,而後設置自動啓動。能夠經過下面的命令來安裝MySQL服務:

mysqld --install mysql --defaults-file="D:\db\mysql\mysql-5.6.31-winx64\my.ini"

   其中mysql是要安裝服務的名字。若是出現像下面的狀況那麼就恭喜你,你踩到坑了,並且仍是天坑。

             

11 啓動MySQL服務

   誒,不是明明提示Service successfully installed嗎?就算我這英語渣渣也是知道提示我服務安裝成功了啊。下面咱們來嘗試啓動一下MySQL服務,執行命令。

net start mysql

              

12 使人崩潰的錯誤

   發生了系統錯誤2,系統找不到指定文件。那畫面太美我不敢看,人與電腦最基本的信任呢?這到底是道德的淪喪,仍是系統的扭曲。嗯,咱們仍是來看一下咱們安裝的服務吧。執行services.msc命令打開service服務查看窗口找到咱們安裝的mysql服務,右鍵選擇屬性。

              

13 查看服務屬性

   發現安裝的mysql服務的可執行文件根本就不是咱們的MySQLbin目錄下的mysqld服務啊,這是什麼鬼。

                        

14 服務屬性

 

   怎麼解決呢?首先先刪除原來的服務,而後在咱們的mysqlbin目錄下來執行安裝服務。

刪除服務,能夠經過下面的命令來執行

sc delete mysql

mysqld –remove mysql

 

   而後在MySQLbin目錄下執行安裝服務命令,能夠發現一樣的命令只是換了一個目錄執行就成功了。

               

15 啓動MySQL服務成功

3、編碼配置

   在剛剛開始使用MySQL的時候,遇到最多的問題確定是MySQL的編碼問題了。能夠執行下面的命令查看MySQL的各個編碼設置。

show variables like ‘char%’

show variables like ‘char%’

          

16 查看MySQL編碼

   通常狀況下爲了偷懶,咱們會把除了character_set_filesystem的編碼外的全部編碼設置爲utf-8。最簡潔的配置就是在my.ini(Linux下的my.cnf)文件中配置爲下面的樣子。

[client]

default-character-set=utf8

[mysqld]

character-set-server=utf8


sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

           

17 配置以後的MySQL編碼

 

   若是是安裝MySQL服務配置是要在MySQL服務安裝以前配置,若是已經安裝了想從新配置,關閉服務,刪除服務,從新安裝就能夠了。若是發現數據庫中已經有亂碼問題了,才從新配置,須要刪除數據庫從新創建數據庫。

4、一些問題的解決方法

   當咱們遇到問題的時候,有時候根本無從下手,由於沒有進入程序,因此也得不到應用程序的任何日子,就能夠經過Windows的日子中的應用日子來獲得一些信息,有時候這些信息是很是有用的。例如,常見的的my.ini編碼配置錯誤的時候出現的錯誤提示:

18 啓動MySQL錯誤

   經過通常的信息可能不是很清楚發生了什麼,就能夠執行win+R 而後輸入compmgmt.msc,而後回車肯定打開Windows的組件管理器。

                        

19 啓動Windows組件管理器

 

             

20 查看Windows應用系統日誌

   經過上面的方法若是對於MySQL熟悉的話,仍是能得到不少有用的信息,好比啓動了那些組件,在何時出的錯誤執行的關閉流程,根據這些信息結合一些MySQL的知識基本就能夠知道MySQL出現錯誤的緣由了。

相關文章
相關標籤/搜索