Mysql安裝過程問題總結及處理方法
首次安裝、執行MySQL時,可能會遇到一些錯誤,使MySQL伺服器不能啟動。本文件的目的是幫助診斷並糾正這些錯誤。
首先在安裝mysql時,請關閉防火牆以及防毒軟體,因為防火牆和部分防毒軟體會導致mysql安裝、配置失敗,從而無法啟動mysql服務。
解決伺服器問題時的第一資料是錯誤日誌。MySQL伺服器使用錯誤日誌來記錄伺服器不能啟動的資訊。錯誤日誌位於my.ini檔案指定的資料目錄中。預設資料目錄位於C:Program FilesMySQLMySQL Server 5.1dat。
另一個錯誤相關資訊源是MySQL服務啟動時控制檯上顯示的訊息。將mysqld安裝為服務後,從命令列通過NET START mysql命令來檢視MySQL服務啟動相關的錯誤訊息。
下面說明首次安裝並啟動MySQL服務時會遇到的最常見的錯誤訊息:
1. System error 1067 has occurred.
Fatal error: Can`t open privilege tables: Table `mysql.host` doesn`t exist
當MySQL伺服器找不到MySQL許可權資料庫或關鍵檔案時會出現這些訊息。當MySQL基或資料目錄沒有安裝在預設位置(C:mysql和 C:Program FilesMySQLMySQL Server 5.1data),而是安裝到其它位置時通常會遇到該問題。
發生該問題的一種情況是對MySQL進行升級或安裝到了新位置,但是沒有對配置檔案進行更新以對應新的安裝位置。此外還可能是新舊配置檔案衝突,當升級MySQL時,一定要刪除或重新命名舊的配置檔案。
如果你沒有將MySQL安裝到C:Program FilesMySQLMySQL Server 5.1目錄下,而是安裝到了其它目錄下,你需要通過使用配置(my.ini)檔案讓MySQL伺服器知道安裝目錄。my.ini檔案應位於Windows目錄下,典型為C:WINNT或C:WINDOWS。可以在命令提示符下輸入下面的命令從WINDIR環境變數值中確定確切位置:
C:> echo %WINDIR%
可以通過文字編輯器(例如記事本)來建立並修改選項檔案。例如,如果MySQL安裝在E:mysql下,資料目錄在D:MySQLdata,你可以建立選項檔案並設定[mysqld]來指定basedir和datadir引數的值:
[mysqld]
# set basedir to your installation path
basedir=E:/mysql
# set datadir to the location of your data directory
datadir=D:/MySQLdata
請注意應使用(正)斜線而不是反斜線在選項檔案中指定Windows路徑名。如果使用反斜線,則必須使用雙斜線:
[mysqld]
# set basedir to your installation path
basedir=C:\Program Files\MySQL\MySQL Server 5.1
# set datadir to the location of your data directory
datadir=D:\MySQLdata
如果在MySQL配置檔案中更改datadir值,在重新啟動MySQL伺服器之前,必須移動已有MySQL資料目錄中的內容。
2. 安裝mysql時可能產生cannot create windows service for mysql.error:0
錯誤,錯誤的原因多數由於重新安裝mysql或者對mydql升級,使用MySQL Configuration Wizard而產生.
可以使用mysql以外的服務名,比如mysql11,等.但這不是最好的解決方法,我們可以使用windows的sc程式刪除mysql服務.
C:>sc delete mysql
[SC] DeleteService SUCCESS
再重新使用MySQL Configuration Wizard,就不會有此錯誤了.
還有可能這步過了.可是無法啟動.
一般我們在解除安裝前個mysql服務後記得伺服器要重啟下.
然後再安裝.一般就不會出現這樣的錯誤了l
原來只要在HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices中刪除對應服務即可…
3. 在Windows中,一個root賬戶用來從本機連線MySQL伺服器,另一個允許從任何主機連線。
可以用幾種方法為root賬戶指定密碼。以下介紹了三種方法:
·使用SET PASSWORD語句
·使用mysqladmin命令列客戶端程式
·使用UPDATE語句
要想使用SET PASSWORD指定密碼,用root連線伺服器並執行兩個SET PASSWORD語句。一定要使用PASSWORD()函式來加密密碼。
在Windows中的語句:
shell> mysql -u root
mysql> SET PASSWORD FOR `root`@`localhost` = PASSWORD(`newpwd`);
mysql> SET PASSWORD FOR `root`@`%` = PASSWORD(`newpwd`);
在Unix中的語句:
shell> mysql -u root
mysql> SET PASSWORD FOR `root`@`localhost` = PASSWORD(`newpwd`);
mysql> SET PASSWORD FOR `root`@`host_name` = PASSWORD(`newpwd`);
用伺服器主機名替換第二個SET PASSWORD語句中的host_name。這是指定匿名賬戶密碼的主機名。
要想使用mysqladmin為root賬戶指定密碼,執行下面的命令:
shell> mysqladmin -u root password “newpwd”
shell> mysqladmin -u root -h host_name password “newpwd”
上述命令適用於Windows和Unix。用伺服器主機名替換第二個命令中的host_name。不一定需要將密碼用雙引號引起來,但是如果密碼中包含空格或專用於命令解釋的其它字元,則需要用雙引號引起來。
還可以使用UPDATE直接修改user表。下面的UPDATE語句可以同時為兩個root賬戶指定密碼:
shell> mysql -u root
mysql> UPDATE mysql.user SET Password = PASSWORD(`newpwd`) WHERE User = `root`;
mysql> FLUSH PRIVILEGES;
ERROR 1045 (28000): Access denied for user `root`@`localhost`
第一步:開啟開始裡Mysql的MySQL Command Line Client 輸入密碼[就是安裝時設的那個]
第二步:在mysql>後輸入:UPDATE mysql.user SET Password = OLD_PASSWORD(`密碼`) WHERE Host = `localhost` AND User = `使用者名稱`;
回車後提示:Query OK, 0 rows affected (0.16 sec)
Rows matched: 0 Changed: 0 Warnings:
第三步:在mysql>後輸入:FLUSH PRIVILEGES;
回車後提示:Query OK, 0 rows affected (0.19 sec)
4. ERROR 1130:不能遠端連線mysql伺服器,但是可以本地連線:
遠端連結mysql伺服器的時候發生的這個錯誤:ERROR 1130:…….
User表中存在兩行,其中localhost是允許本機登陸Mysql伺服器的,host是允許遠端客戶端連線該伺服器若host為“%”則表示任何遠端均可登陸該mysql伺服器,若host為具體IP則只允許相應的IP的PC登陸該伺服器;
更改 mysql 資料庫裡的 user表裡的 host項localhost改稱%
mysql -u root –proot
mysql>use mysql;
mysql>update user set host = `%` where user =`root`;
mysql>flush privileges;
mysql>select `host`,`user` from user where user=`root`;
現在就可以連線了
安裝完MySQL後,連線資料庫的時候,出現 ERROR 1130 (HY000): Host `192.168.0.1` is not allowed to connect to this MySQL server提示資訊,不能遠端連線資料庫。考慮可能是因為系統資料庫mysql中user表中的host是localhost的原因,於是,我嘗試把這個值改為自己伺服器的ip,果然就好用了,不過用 mysql -u root -p命令就連不上資料庫了,需要用mysql -h 伺服器ip -u root -p因為預設的連線mysql資料庫user表中host的值,而這個命令的預設host是localhost,就連不上了,
具體操作方法:
用localhost連線上mysql後,
use mysql;
update user set host=`123.145.214.188`;
q;
退出mysql,然後重新啟動mysql就可以了。
其他解決方案
2. 改表法。可能是你的帳號不允許從遠端登陸,只能在localhost。這個時候只要在localhost的那臺電腦,登入mysql後,更改 “mysql” 資料庫裡的 “user” 表裡的 “host” 項,從”localhost”改稱”%”,與之前講解的修改方法一致;
mysql -u root –proot
mysql>use mysql;
mysql>update user set host = `%` where user = `root`;
mysql>select host, user from user;
3. 授權法。例如,想myuser使用mypassword從任何主機連線到mysql伺服器的話。
GRANT ALL PRIVILEGES ON *.* TO `myuser`@`%` IDENTIFIED BY `mypassword` WITH GRANT OPTION;
如果想允許使用者myuser從ip為192.168.1.3的主機連線到mysql伺服器,並使用mypassword作為密碼
GRANT ALL PRIVILEGES ON *.* TO `myuser`@`192.168.0.1` IDENTIFIED BY `mypassword` WITH GRANT OPTION;
備註:若出現1130錯誤時提示“localhost”不能登陸mysql伺服器
時,此時只能將Mysql解除安裝,並刪除相應的配置檔案重新安裝,否則無法解決;
5. 不能啟動mysql服務,錯誤顯示為無法啟動mysql服務:
剛開始的解決辦法是刪除my.ini配置檔案,然後重新配置mysql,但是在配置的過程中仍然會出現無法重新啟動mysql服務的問題;
最後解決的辦法是:解除安裝mysql程式,並且將安裝路徑下的mysql所有資料夾全部刪除,然後再重新安裝並且配置,則無問題。
相關文章
- PHP5.2.4安裝中出現問題及處理過程PHP
- mysql5.7安裝及問題處理MySql
- ovm安裝過程及中斷處理
- RAC安裝配置和使用過程的問題解決方法總結一
- RAC安裝配置和使用過程的問題解決方法總結二
- rman建立catalog過程及問題處理
- Mysql安裝過程中遇到的問題及解決辦法MySql
- 接續:RAC安裝配置和使用過程的問題解決方法總結二
- ambari安裝過程中的問題彙總
- mysql 原始碼安裝過程中錯誤總結MySql原始碼
- 【mysql】配置MySQL,解決安裝過程中的問題MySql
- 總結logminer使用及各種問題處理
- elk(單機)安裝過程中遇到的問題及解決方法
- Oracle RAC之--安裝過程中碰到的問題及解決方法Oracle
- [zt] 總結logminer使用及各種問題處理
- npm 安裝錯誤及處理方法NPM
- 二、Git 問題彙總及處理Git
- mysql常用語句及問題處理MySql
- flutter安裝問題總結Flutter
- 安裝mysql資料庫及問題解決方法MySql資料庫
- MySQL儲存過程的異常處理方法MySql儲存過程
- oracle taf unknown 問題處理過程Oracle
- Java工作中的併發問題處理方法總結Java
- oracle 10g R2 安裝過程遇到的問題及解決方法Oracle 10g
- Library cache pin問題的處理過程
- 3大問題!Redis快取異常及處理方案總結Redis快取
- 線上MYSQL同步報錯故障處理方法總結MySql
- 瀏覽器相容問題處理總結瀏覽器
- HIVEMapJoin異常問題處理總結Hive
- Linux Yum 安裝失敗處理過程整理Linux
- nuxtjs 安裝過程中出現問題UXJS
- 安裝yeoman,grunt過程中的問題
- vue-cli安裝過程遇到問題Vue
- STATSPACK安裝過程中遇到的問題
- jive2.5安裝過程的問題
- Mac遊戲安裝常見問題處理Mac遊戲
- Docker Centos安裝Redis以及問題處理DockerCentOSRedis
- MYSQL實戰-MHA搭建及問題總結MySql