今天在Windows Server 2003下安裝mysql,遇到不少問題。之前在另外兩台服務器安裝的時候也遇到了幾個問題,最后找到不少文章解決了,記錄一下。
所有版本都是免安裝的32和64一樣配置,另外幾個問題下面有寫到。
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服務,然后啟動:
以下的步驟作為基本的步驟,能夠確保你能運行一個基本的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是后來創建的)
2、添加環境變量(能安裝mysql的人應該都知道如何配置環境變量)
3、新建my.ini文件(該文件是mysql啟動時依賴的配置文件,解壓后的文件中竟然沒有一個默認的配置,也是醉了)
4、新建數據存儲目錄(即第3步中,datadir指定的目錄)
5、啟動控制台(必須以管理員權限啟動,命令提示符),進入到mysql的解壓目錄
6、裝載mysql服務(由於免安裝版不會自動裝載mysql服務,必須手動裝載)
mysqld --install
7、初始化數據庫(免安裝版中不會自動創建數據庫,需要手動創建)
mysqld --initialize-insecure --user=mysql;
8、啟動mysql服務(由於my.ini中制定了啟動的參數,本次啟動為忽略密碼的方式,此時通過navicate連接本地數據庫會成功登錄,並且mysql為名的數據庫已經創建成功)
net start mysql
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兩步是顛倒的,親測發現顛倒之后,在初始化數據庫的時候會提示錯誤。
分析之后,講服務停掉,並刪除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和博客園整理而來,后面遇到就不用遍地找了