mysql免安裝版配置和一些常見問題


博客原文點我

今天在Windows Server 2003下安裝mysql,遇到不少問題。之前在另外兩台服務器安裝的時候也遇到了幾個問題,最后找到不少文章解決了,記錄一下。

所有版本都是免安裝的32和64一樣配置,另外幾個問題下面有寫到。

 

mysql5.5.58

1、下載解壓

首先從官網下載安裝包,下載連接:http://dev.mysql.com/downloads/mysql/5.1.html#downloads

由於最新的版本5.7.20和5.6.38下載解壓之后都沒有my-small.ini配置文件,因此下載的是5.5.58-win64版本。解壓到要安裝的盤,我放的是C:\Program Files (x86)。

2、配置環境變量

右擊“我的電腦”--屬性--高級系統設置--環境變量--系統變量

新建環境變量:變量名 MYSQL_HOME,變量值C:\Program Files (x86)\mysql-5.5.58-winx64;(解壓后文件夾的路徑)

在系統變量中找到path--編輯--在最后面加上 ;%MYSQL_HOME%/bin ;注意前面一定要加分號,后面最好不要加分號,不確定加了分號之后對不對

 

3、配置my-small.ini文件

在安裝文件夾下找到 my-small.ini 配置文件, 打開進行編輯, 在 [mysqld] 下添加兩行:

basedir = C:\Program Files (x86)\mysql-5.5.58-winx64

datadir = C:\Program Files (x86)\mysql-5.5.58-winx64\data

port = 3306

且在[Client]和 [mysqld] 下均添加一行: default-character-set = utf8

修改之后的文件內容如下圖所示

 

4、安裝

開始---搜索欄中輸入cmd----enter,用管理員權限打開系統命令窗口,

輸入:mysqld --install

提示service successfully installed安裝成功;

 

5、啟動mysql

啟動:net  start  mysql

停止:net  stop  mysql

啟動:net  start  mysql,出現系統錯誤2,系統找不到指定文件

 

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

 

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

 

mysql5.5.57

以下的步驟作為基本的步驟,能夠確保你能運行一個基本的mysql:

1、將mysql-5.5.57-win32解壓到C盤根目錄下,更改文件夾名稱為mysql-5.5.57;

2、在C盤根目錄下建立一個文件夾mysqldb,內含1個文件夾data;

3、在C:\mysql-5.5.57文件夾下,新建一個my.ini文件(ANSI格式),主要配置內容如下:

 

[mysqld]

port=3306

character_set_server=utf8

basedir=C:\\mysql-5.5.57

datadir=C:\\mysqldb\\data

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

[client]

port=3306

default-character-set=utf8

[mysql]

default-character-set=utf8

 

4、將C:\mysql-5.5.57\data文件夾下的所有文件復制到C:\mysqldb\data文件夾下;

5、cmd控制台cd到C:\mysql-5.5.57\bin目錄內,執行下面的命令:

mysqld --install

以上命令回車后正常的結果是:Servicesuccessfully installed

6、再輸入下面的命令:

mysqld --console

以上命令會導致命令等待(不會退出:https://dev.mysql.com/doc/refman/5.5/en/server-options.html#option_mysqld_console)

7、ctrl+C后,再輸入下面的命令:

net start mysql

以上命令回車后正常的結果是:MySQL服務正在啟動\n MySQL服務已經啟動成功。

8、系統環境變量的配置。繼續輸入命令:

sysdm.cpl

以上打開“系統屬性”對話框,切換到“高級”|“環境變量”內;

9、對Path環境變量添加;C:\mysql-5.5.57\bin;

10、輸入mysql -hlocalhost -uroot -p,默認的密碼為空;

11、進行其他的操作。比如首先做的第一件事是修改密碼:

>use mysql;

>update user set password=password(‘root’)where user=’root’;

>flush privileges;

*停止mysql服務的命令是net stop mysql;

*刪除mysql服務的命令是mysqld --remove;

mysql5.7

1、解壓下載的文件、解壓后的目錄(data目錄和my.ini是后來創建的)

image.png

 

2、添加環境變量(能安裝mysql的人應該都知道如何配置環境變量)

image.png

 

3、新建my.ini文件(該文件是mysql啟動時依賴的配置文件,解壓后的文件中竟然沒有一個默認的配置,也是醉了)

image.png

 

4、新建數據存儲目錄(即第3步中,datadir指定的目錄)

image.png

 

5、啟動控制台(必須以管理員權限啟動,命令提示符),進入到mysql的解壓目錄

image.png

 

6、裝載mysql服務(由於免安裝版不會自動裝載mysql服務,必須手動裝載)

mysqld --install

image.png

 

7、初始化數據庫(免安裝版中不會自動創建數據庫,需要手動創建)

mysqld --initialize-insecure --user=mysql;

image.png

 

8、啟動mysql服務(由於my.ini中制定了啟動的參數,本次啟動為忽略密碼的方式,此時通過navicate連接本地數據庫會成功登錄,並且mysql為名的數據庫已經創建成功)

net start mysql

image.png

image.png

9、登錄數據庫,並修改密碼(由於本次啟動為忽略密碼,提示輸入密碼時直接回車就可以登錄)

mysql –u root –p

update mysql.user set authentication_string=password('123456789') where user='root' and Host = 'localhost';

 

10、將mysql服務停掉,修改my.ini中的配置,修改為密碼驗證模式之后再次啟動mysql,以后就可以正常使用mysql了

net stop mysql

注:本文大部分內容都是引用的,原文中第7和第8兩步是顛倒的,親測發現顛倒之后,在初始化數據庫的時候會提示錯誤。

image.png

分析之后,講服務停掉,並刪除data下的文件。先初始化數據庫,再啟動服務,可以保證數據庫初始化成功,並且服務正常啟動。

 

Skip-External-Locking參數介紹

MySQL的配置文件my.cnf中默認存在一行skip-external-locking的參數,即跳過外部鎖定。根據MySQL開發網站的官方解釋,External-locking用於多進程條件下為MyISAM數據表進行鎖定

如果你有多台服務器使用同一個數據庫目錄(不建議),那么每台服務器都必須開啟external locking;

 

參數解釋

當外部鎖定(external-locking)起作用時,每個進程若要訪問數據表,則必須等待之前的進程完成操作並解除鎖定。由於服務器訪問數據表時經常需要等待解鎖,因此在單服務器環境下external locking會讓MySQL性能下降。所以在很多Linux發行版的源中,MySQL配置文件中默認使用了skip-external-locking來避免external locking。
當使用了skip-external-locking后,為了使用MyISAMChk檢查數據庫或者修復、優化表,你必須保證在此過程中MySQL服務器沒有使用需要操作的表。如果沒有停止服務器,也至少需要先運行


代碼如下:

mysqladmin flush-tables

命令,否則數據表可能出現異常。
參數使用說明
如果是多服務器環境,希望打開external locking特征,則注釋掉這一行即可


代碼如下:

# skip-external-locking

如果是單服務器環境,則將其禁用即可,使用如下語句


代碼如下:

skip-external-locking

注意事項
在老版本的MySQL中,此參數的寫法為:


代碼如下:

skip-locking

如果在新版本MySQL配置中依然使用此寫法,則可能出現:
[Warning] ‘–skip-locking' is deprecated and will be removed in a future release. Please use ‘–skip-external-locking' instead.錯誤。

 

navicat連接數據庫1045錯誤

1045    Access denied for user 'root'@'localhost' (using password:YES)

這個意思是說:用戶“root”@本地主機的訪問被拒絕

這種問題的本質是用戶密碼出現錯誤。

解決經驗:

1.找到MySQL安裝路徑下的my.ini文件,用記事本的方式打開;

2.打開后,找到mysqld這個位置,這個文件的內容中有多個mysqld,注意看箭頭所指位置

3.在 [mysqld] 底下添加語句:skip-grant-tables,添加完畢后保存。如果提示不讓修改這個文件,則可將它復制到桌面,再用記事本打開它,添加完畢后,將桌面上的文件復制到原來的地方,賦值時選擇替換目標文件;

好學的你肯定也想知道這個skip-grant-tables是什么意思,如下介紹:

skip-grant-tables作為啟動參數的作用:MYSQL服務器不加載權限判斷,任何用戶都能訪問數據庫。

也就是說,啟用這個參數之后,數據庫的安全性會降低。

4.WIN+R —>cmd—>mysql -u root -p,這個命令是連接數據庫服務器的命令;遇到Enter  passward:直接回車;

5.繼續執行如下操作:

mysql>use mysql          //使用這個數據庫

mysql>uodate user set passward=passward("123456") whrer user="root";   //修改數據庫的密碼

mysql>flush privileges;      //刷新數據庫

這要步驟已經完成,我們來看看修改后的用戶和密碼:

到這里修改密碼的工作已經完成。接下來要將在my.ini中添加的語句刪掉。刪掉之后再重啟服務器,在測試鏈接,如果沒有錯誤,一切OK;如果刪掉語句,重啟服務器之后任然有1045錯誤,那么,還是在my.ini原來刪掉這條語句的位置中添加這條語句:skip-grant-tables,再重啟服務器,再測試,一切OK。

 

 

mysql 在Windows2003安裝,系統無法執行指定程序

 

問題出現:

 

后來各種百度谷歌。。。然后學會看系統日志了,計算機管理-事件查看器-系統。。。

發現了錯誤

還是想問這是啥???????

 

事件ID為32的描述是這樣的:找不到附屬匯編 Microsoft.VC90.CRT,上一個錯誤是 參照的匯編沒有安裝在系統上。
事件ID為59的描述是這樣的:Resolve Partial Assembly 為 Microsoft.VC90.CRT 失敗。 參考錯誤消息: 參照的匯編沒有安裝在系統上。
另一個事件ID為59的描述是:Generate Activation Context 為 E:\***\php.exe 失敗。 參考錯誤消息: 參照的匯編沒有安裝在系統上。

然后借用一位大哥的博客:

 

http://www.deepseath.com/?p=858

 

下載安裝地址:http://download.microsoft.com/download/9/7/7/977B481A-7BA6-4E30-AC40-ED51EB2028F2/vcredist_x86.exe

 

下載安裝一下就ok了:

 

————————————————

以上參考CSDN和博客園整理而來,后面遇到就不用遍地找了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM