服務器上安裝mysql的服務端 server版本,然後通過遠程mysql workbench連接,報錯host is not allowed to connect to this mysql。
解決方法:
第一步:啓動服務端mysql,通過 net start mysql。報錯,啓動失敗。
查看事件查看器之應用程序錯誤,提示 no such file....., ->Google->3306被佔用。
通過netstat -ano 找到與該端口關聯的進程ID,再通過tasklist找到該進程ID對應的進程,發現是mysqld.exe,通過任務
管理器結束之。然後重新net start mysql, 成功。
第二步:配置實例的安全組策略,開放3306端口
第三步: 可能是mysql未開啓mysql遠程訪問權限導致。
錯誤一:Access denied for user 'root'@'localhost' (using password:YES)
解決方法:
- 打開MySQL目錄下的my.ini文件,在文件的最後添加一行“skip-grant-tables”,保存並關閉文件。( my.ini在C:\ProgramData\MySQL\MySQL Server 5.6)
- 重啓MySQL服務。
- 通過命令行進入MySQL的BIN目錄,輸入“mysql -u root -p”(不輸入密碼),回車即可進入數據庫。
- 執行“use mysql;”,使用mysql數據庫。
- 執行“update user set password=PASSWORD("123456") where user='root';”(修改root的密碼)
- 打開MySQL目錄下的my.ini文件,刪除最後一行的“skip-grant-tables”,保存並關閉文件。
- 重啓MySQL服務。
- 在命令行中輸入“mysql -u root -p”,然後輸入密碼,即可成功連接數據庫。
錯誤二:Host 'xxx' is not allowed to connect to this MySQL server.
解決方法:
- 修改host字段的值,將localhost修改成需要遠程連接數據庫的ip地址。或者直接修改成%。修改成%表示,所有主機都可以通過root用戶訪問數據庫。爲了方便,我直接修改成%。命令:mysql> update user set host = '%' where user = 'root';
- select host,user,password from user;