博客原文:https://www.zjhuiwan.cn/info/20191211/1912111259500160023.html#abc3
今天在Windows Server 2003下安裝mysql素标,遇到不少問題席噩。之前在另外兩臺服務(wù)器安裝的時候也遇到了幾個問題掌眠,最后找到不少文章解決了扣囊,記錄一下淮逻。
所有版本都是免安裝的32和64一樣配置片迅,另外幾個問題下面有寫到浪谴。
Skip-External-Locking參數(shù)介紹
mysql 在Windows2003安裝值骇,系統(tǒng)無法執(zhí)行指定程序
mysql5.5.58
1、下載解壓
首先從官網(wǎng)下載安裝包而柑,下載連接: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颅围、配置環(huán)境變量
右擊“我的電腦”--屬性--高級系統(tǒng)設(shè)置--環(huán)境變量--系統(tǒng)變量
新建環(huán)境變量:變量名 MYSQL_HOME伟葫,變量值C:\Program Files (x86)\mysql-5.5.58-winx64;(解壓后文件夾的路徑)
在系統(tǒng)變量中找到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
修改之后的文件內(nèi)容如下圖所示
4渐溶、安裝
開始---搜索欄中輸入cmd----enter,用管理員權(quán)限打開系統(tǒng)命令窗口弄抬,
輸入:mysqld --install
提示service successfully installed安裝成功茎辐;
5、啟動mysql
啟動:net start mysql
停止:net stop mysql
啟動:net start mysql,出現(xiàn)系統(tǒng)錯誤2拖陆,系統(tǒng)找不到指定文件
這里是最需要注意的地方弛槐,在安裝mysql服務(wù)時,一定要切換到mysql安裝目錄的bin目錄下依啰,不管你是否配置環(huán)境變量乎串,否則在安裝完后啟動服務(wù)還是會報上面的錯誤。
切換到bin目錄后速警,先刪除前面安裝的mysql服務(wù)(刪除服務(wù)不一定要到bin目錄)叹誉,再重新在bin目錄下安裝mysql服務(wù),然后啟動:
mysql5.5.57
以下的步驟作為基本的步驟闷旧,能夠確保你能運行一個基本的mysql:
1长豁、將mysql-5.5.57-win32解壓到C盤根目錄下,更改文件夾名稱為mysql-5.5.57忙灼;
2蕉斜、在C盤根目錄下建立一個文件夾mysqldb,內(nèi)含1個文件夾data缀棍;
3宅此、在C:\mysql-5.5.57文件夾下,新建一個my.ini文件(ANSI格式)爬范,主要配置內(nèi)容如下:
[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文件夾下的所有文件復(fù)制到C:\mysqldb\data文件夾下;
5青瀑、cmd控制臺cd到C:\mysql-5.5.57\bin目錄內(nèi)璧亮,執(zhí)行下面的命令:
mysqld --install
以上命令回車后正常的結(jié)果是:Servicesuccessfully installed
6、再輸入下面的命令:
mysqld --console
以上命令會導(dǎo)致命令等待(不會退出:https://dev.mysql.com/doc/refman/5.5/en/server-options.html#option_mysqld_console)
7斥难、ctrl+C后枝嘶,再輸入下面的命令:
net start mysql
以上命令回車后正常的結(jié)果是:MySQL服務(wù)正在啟動\n MySQL服務(wù)已經(jīng)啟動成功。
8哑诊、系統(tǒng)環(huán)境變量的配置群扶。繼續(xù)輸入命令:
sysdm.cpl
以上打開“系統(tǒng)屬性”對話框,切換到“高級”|“環(huán)境變量”內(nèi)镀裤;
9竞阐、對Path環(huán)境變量添加;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服務(wù)的命令是net stop mysql矫俺;
*刪除mysql服務(wù)的命令是mysqld --remove;
mysql5.7
1横辆、解壓下載的文件矩距、解壓后的目錄(data目錄和my.ini是后來創(chuàng)建的)
2咖摹、添加環(huán)境變量(能安裝mysql的人應(yīng)該都知道如何配置環(huán)境變量)
3糠悯、新建my.ini文件(該文件是mysql啟動時依賴的配置文件,解壓后的文件中竟然沒有一個默認的配置盏道,也是醉了)
4稍浆、新建數(shù)據(jù)存儲目錄(即第3步中,datadir指定的目錄)
5猜嘱、啟動控制臺(必須以管理員權(quán)限啟動衅枫,命令提示符),進入到mysql的解壓目錄
6朗伶、裝載mysql服務(wù)(由于免安裝版不會自動裝載mysql服務(wù)弦撩,必須手動裝載)
mysqld --install
7、初始化數(shù)據(jù)庫(免安裝版中不會自動創(chuàng)建數(shù)據(jù)庫论皆,需要手動創(chuàng)建)
mysqld --initialize-insecure --user=mysql;
8益楼、啟動mysql服務(wù)(由于my.ini中制定了啟動的參數(shù),本次啟動為忽略密碼的方式点晴,此時通過navicate連接本地數(shù)據(jù)庫會成功登錄感凤,并且mysql為名的數(shù)據(jù)庫已經(jīng)創(chuàng)建成功)
net start mysql
9、登錄數(shù)據(jù)庫粒督,并修改密碼(由于本次啟動為忽略密碼陪竿,提示輸入密碼時直接回車就可以登錄)
mysql –u root –p
update mysql.user set authentication_string=password('123456789') where user='root' and Host = 'localhost';
10、將mysql服務(wù)停掉屠橄,修改my.ini中的配置族跛,修改為密碼驗證模式之后再次啟動mysql,以后就可以正常使用mysql了
net stop mysql
注:本文大部分內(nèi)容都是引用的锐墙,原文中第7和第8兩步是顛倒的礁哄,親測發(fā)現(xiàn)顛倒之后,在初始化數(shù)據(jù)庫的時候會提示錯誤溪北。
分析之后桐绒,講服務(wù)停掉,并刪除data下的文件刻盐。先初始化數(shù)據(jù)庫掏膏,再啟動服務(wù)劳翰,可以保證數(shù)據(jù)庫初始化成功敦锌,并且服務(wù)正常啟動。
Skip-External-Locking參數(shù)介紹
MySQL的配置文件my.cnf中默認存在一行skip-external-locking的參數(shù)佳簸,即跳過外部鎖定乙墙。根據(jù)MySQL開發(fā)網(wǎng)站的官方解釋颖变,External-locking用于多進程條件下為MyISAM數(shù)據(jù)表進行鎖定
如果你有多臺服務(wù)器使用同一個數(shù)據(jù)庫目錄(不建議),那么每臺服務(wù)器都必須開啟external locking听想;
參數(shù)解釋
當外部鎖定(external-locking)起作用時腥刹,每個進程若要訪問數(shù)據(jù)表,則必須等待之前的進程完成操作并解除鎖定汉买。由于服務(wù)器訪問數(shù)據(jù)表時經(jīng)常需要等待解鎖衔峰,因此在單服務(wù)器環(huán)境下external locking會讓MySQL性能下降。所以在很多Linux發(fā)行版的源中蛙粘,MySQL配置文件中默認使用了skip-external-locking來避免external locking垫卤。
當使用了skip-external-locking后,為了使用MyISAMChk檢查數(shù)據(jù)庫或者修復(fù)出牧、優(yōu)化表穴肘,你必須保證在此過程中MySQL服務(wù)器沒有使用需要操作的表。如果沒有停止服務(wù)器舔痕,也至少需要先運行
代碼如下:
mysqladmin flush-tables
命令评抚,否則數(shù)據(jù)表可能出現(xiàn)異常。
參數(shù)使用說明 如果是多服務(wù)器環(huán)境伯复,希望打開external locking特征慨代,則注釋掉這一行即可
代碼如下:
skip-external-locking
如果是單服務(wù)器環(huán)境,則將其禁用即可啸如,使用如下語句
代碼如下:
skip-external-locking
注意事項 在老版本的MySQL中鱼响,此參數(shù)的寫法為:
代碼如下:
skip-locking
如果在新版本MySQL配置中依然使用此寫法,則可能出現(xiàn):
[Warning] ‘–skip-locking' is deprecated and will be removed in a future release. Please use ‘–skip-external-locking' instead.錯誤组底。
navicat連接數(shù)據(jù)庫1045錯誤
1045 Access denied for user 'root'@'localhost' (using password:YES)
這個意思是說:用戶“root”@本地主機的訪問被拒絕
這種問題的本質(zhì)是用戶密碼出現(xiàn)錯誤丈积。
解決經(jīng)驗:
1.找到MySQL安裝路徑下的my.ini文件,用記事本的方式打開债鸡;
2.打開后江滨,找到mysqld這個位置,這個文件的內(nèi)容中有多個mysqld厌均,注意看箭頭所指位置
3.在 [mysqld] 底下添加語句:skip-grant-tables唬滑,添加完畢后保存。如果提示不讓修改這個文件棺弊,則可將它復(fù)制到桌面晶密,再用記事本打開它,添加完畢后模她,將桌面上的文件復(fù)制到原來的地方稻艰,賦值時選擇替換目標文件;
好學的你肯定也想知道這個skip-grant-tables是什么意思侈净,如下介紹:
skip-grant-tables作為啟動參數(shù)的作用:MYSQL服務(wù)器不加載權(quán)限判斷尊勿,任何用戶都能訪問數(shù)據(jù)庫僧凤。
也就是說,啟用這個參數(shù)之后元扔,數(shù)據(jù)庫的安全性會降低躯保。
4.WIN+R —>cmd—>mysql -u root -p,這個命令是連接數(shù)據(jù)庫服務(wù)器的命令澎语;遇到Enter passward:直接回車途事;
5.繼續(xù)執(zhí)行如下操作:
mysql>use mysql //使用這個數(shù)據(jù)庫
mysql>uodate user set passward=passward("123456") whrer user="root"; //修改數(shù)據(jù)庫的密碼
mysql>flush privileges; //刷新數(shù)據(jù)庫
這要步驟已經(jīng)完成,我們來看看修改后的用戶和密碼:
到這里修改密碼的工作已經(jīng)完成擅羞。接下來要將在my.ini中添加的語句刪掉盯孙。刪掉之后再重啟服務(wù)器,在測試鏈接祟滴,如果沒有錯誤振惰,一切OK;如果刪掉語句垄懂,重啟服務(wù)器之后任然有1045錯誤骑晶,那么,還是在my.ini原來刪掉這條語句的位置中添加這條語句:skip-grant-tables草慧,再重啟服務(wù)器桶蛔,再測試,一切OK漫谷。
mysql 在Windows2003安裝仔雷,系統(tǒng)無法執(zhí)行指定程序
問題出現(xiàn):
后來各種百度谷歌。舔示。碟婆。然后學會看系統(tǒng)日志了,計算機管理-事件查看器-系統(tǒng)惕稻。竖共。。
發(fā)現(xiàn)了錯誤
還是想問這是啥俺祠?公给??蜘渣?淌铐??蔫缸?
事件ID為32的描述是這樣的:找不到附屬匯編 Microsoft.VC90.CRT腿准,上一個錯誤是 參照的匯編沒有安裝在系統(tǒng)上。
事件ID為59的描述是這樣的:Resolve Partial Assembly 為 Microsoft.VC90.CRT 失敗捂龄。 參考錯誤消息: 參照的匯編沒有安裝在系統(tǒng)上释涛。
另一個事件ID為59的描述是:Generate Activation Context 為 E:***\php.exe 失敗加叁。 參考錯誤消息: 參照的匯編沒有安裝在系統(tǒng)上倦沧。
然后借用一位大哥的博客:
http://www.deepseath.com/?p=858
下載安裝地址:http://download.microsoft.com/download/9/7/7/977B481A-7BA6-4E30-AC40-ED51EB2028F2/vcredist_x86.exe
下載安裝一下就ok了:
————————————————
以上參考CSDN和博客園整理而來唇撬,后面遇到就不用遍地找了