本文目錄一覽:
- 1、解決MySQL不允許從遠程訪問的方法有哪些?
- 2、服務器mysql 只能訪問執行數據庫原有表,新表無法訪問,高分
- 3、mysql連接不上遠程服務器,如何解決
- 4、服務器上提示mysql服務器啟動失敗怎麼回事
- 5、MySQL為什麼連接不了?
- 6、MYSQL8.0安裝成功但無法訪問是什麼原因?
解決MySQL不允許從遠程訪問的方法有哪些?
解決方法:
1。 改表法。
可能是你的帳號不允許從遠程登陸,只能在localhost。這個時候只要在localhost的那台電腦,登入mysql後,更改 “mysql” 數據庫里的 “user” 表裡的 “host” 項,從”localhost”改稱”%”
mysql -u root -pvmwaremysqluse mysql;
mysqlupdate user set host = ‘%’ where user = ‘root’;
mysqlselect host, user from user;
2. 授權法。
例如,你想myuser使用mypassword從任何主機連接到mysql服務器的話。
GRANT ALL PRIVILEGES ON *.* TO ‘myuser’@’%’ IDENTIFIED BY ‘mypassword’ WITH GRANT OPTION;
FLUSH PRIVILEGES;
如果你想允許用戶myuser從ip為192.168.1.6的主機連接到mysql服務器,並使用mypassword作為密碼
GRANT ALL PRIVILEGES ON *.* TO ‘myuser’@’192.168.1.3’ IDENTIFIED BY ‘mypassword’ WITH GRANT OPTION;
FLUSH PRIVILEGES;
如果你想允許用戶myuser從ip為192.168.1.6的主機連接到mysql服務器的dk數據庫,並使用mypassword作為密碼
GRANT ALL PRIVILEGES ON dk.* TO ‘myuser’@’192.168.1.3’ IDENTIFIED BY ‘mypassword’ WITH GRANT OPTION;
FLUSH PRIVILEGES;
我用的第一個方法,剛開始發現不行,在網上查了一下,少執行一個語句 mysqlFLUSH RIVILEGES 使修改生效.就可以了
另外一種方法,不過我沒有親自試過的,在csdn.net上找的,可以看一下.
在安裝mysql的機器上運行:
1、d:\mysql\bin\mysql -h localhost -u root //這樣應該可以進入MySQL服務器
2、mysqlGRANT ALL PRIVILEGES ON *.* TO ‘root’@’%’ WITH GRANT OPTION //賦予任何主機訪問數據的權限
3、mysqlFLUSH PRIVILEGES //修改生效
4、mysqlEXIT //退出MySQL服務器
這樣就可以在其它任何的主機上以root身份登錄啦!
服務器mysql 只能訪問執行數據庫原有表,新表無法訪問,高分
把你的異常貼出來
(1)保證你的表是建在了正在使用的數據庫中
(2)保證數據庫用戶權限
如果還有錯的話說明你的程序有問題
mysql連接不上遠程服務器,如何解決
遠程服務器連接MySQL,需要創建一個允許遠程訪問的用戶。
創建用戶:
CREATE USER’username’@’host’ IDENTIFIED BY ‘password’;
其中username 是用戶名,host是可以進行遠程訪問數據庫的服務器地址。
給用戶授權:
GRANT privileges ONdatabasename.tablename TO ‘username’@’host’;
給’username’@’host’用戶進行授權,其中privileges是要授予的權限,可以是all privileges、select、update等。databasename.tablename是要訪問的某個數據庫中的某張表,如果是所有的,則可以用*。
服務器上提示mysql服務器啟動失敗怎麼回事
一、無法訪問系統資源
MySQL 不能訪問啟動需要的資源是造成而 MySQL 無法啟動的一個常見原因,如:文件,端口等。由於 linux 中用於啟動 mysqld 進程的 mysql 用戶通常是不能登陸的,可以使用類似下面的命令檢查文件的訪問權限。
sudo -u mysql touch /var/lib/mysql/b
找出問題後,修改對應文件或目錄的權限或屬主後通常可以解決問題。但有時 mysql 用戶有訪問文件和目錄的權限,但仍然會被拒絕訪問,例如下面這個例子:
mysql system sudo -u mysql touch /home/mysql/data/a
mysql create table t1 (
id int primary key,n varchar(10
) data directory
ERROR 1030 (HY000): Got error 168 from storage engine
測試說明 mysql 用戶有這個目錄的訪問權限,但創建文件還是失敗,這種情況讓很多人困惑,這個時候通常是 mysqld 進程的訪問被 linux 的 selinux 或 apparmor 給阻止了,大家可以看到創建的表不是在 mysql 的默認目錄下面,因此 selinux 或 apparmor 的 policy 裏面沒有包含這個目錄的訪問權限,此時只要對應的修改 policy 就行了,當然把 selinux 或 apparmor 停了也行。
有時雖然對系統資源有訪問的權限,但系統資源已經被佔用:
mysqld –no-defaults –console –user mysql
2020-11-03T03:36:07.519419Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.19) starting as process 21171
2020-11-03T03:36:07.740347Z 1 [ERROR] [MY-012574] [InnoDB] Unable to lock ./ibdata1 error: 11
這個故障產生的原因是另外一個 mysqld 進程已經啟動並佔用了對應的文件。
二、參數設置錯誤
參數設置錯誤造成 MySQL 無法啟動的原因也非常常見,此時先要檢查 MySQL 啟動時會調用的參數,下面的命令可以查詢 MySQL 啟動時調用參數文件的順序:
$ mysqld –verbose –help | grep “Default options ” -A 1
Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf ~/.my.cnf
知道了 MySQL 參數文件的調用順序,我們就可以檢查對應的參數文件,找出其中的錯誤,如果覺得參數文件的可讀性不強,可以使用下面的命令顯示 mysqld 程序將要調用的參數:
$ mysqld –print-defaults
/usr/sbin/mysqld would have been started with the following arguments:
……
注意這個命令顯示完參數後就退出,不會真正運行 mysqld。這個命令和 my_print_defaults mysqld 完全是等價的,只不過後者的顯示方式是一行一個參數。
然後開始對可疑的參數進行調試,我個人喜歡加的參數和順序如下:
1. 在 mysqld 後加上第一個參數 –no-defaults ,這個參數的作用是通知 mysqld 在啟動的時候不要讀任何參數文件;
2. 第二個參數是 –console,這個參數會把錯誤信息輸出到屏幕上,這個參數帶來的一個弊端是所有的信息都輸出到屏幕上,讓屏幕顯得比較亂,但對於我們調試卻是很方便的;
3. 第三個參數是 –log-error-verbosity=3,這個參數會顯示詳細的日誌;
4. 然後再在後面加上有把握的參數,可以一次只加一個參數,然後啟動 mysqld,採用排除法逐步找出錯誤的參數。
MySQL為什麼連接不了?
MySQL ‘localhost’ (10061)解決方法
MySQL ‘localhost’ (10061)解決方法
首先檢查MySQL 服務沒有啟動》如果沒有啟動,則要啟動這個服務。
昨天,重起服務器後出現MySQL ‘localhost’ (10061)錯誤,開始以為是因為數據庫鏈接打開過多,數據庫資源耗盡的緣故,但是重啟服務器以後,仍舊出現問題,於是在網上查找解決方法。大體如下:
解決辦法:
第一步
刪除c:\windowns下面的my.ini
第二步
打開c:\mysql\bin\winmysqladmin.exe 輸入用戶名 和密碼
第三步 在dos下 輸入 mysqld-nt -remove 刪除服務
在接着輸入 mysqld-nt -install
第四步 輸入mysql 啟動成功。
其它可參考的方法:
1.看看hosts文件中localhost是不是指向127.0.0.1
2.如果是沒啟動mysql服務,則可運行net start mysql。
3.一些相關命令:
mysqld-nt –install #啟動Mysql
mysql #運行Mysql
mysql -h ipAddress -u username -p
或
者:直接去bin里點mysqld.exe或mysqld-nt.exe,看下它的進程能否正常運行,如不行,再去控制面板,服務里去啟動它,看下是什麼
錯誤。如果不行,就在添加刪除里刪去mysql,然後再重裝mysql,一般都能解決問題,可以在安裝前備份一下DATA。
Error: Can’t connect to MySQL server on ‘localhost’ (10061)
Errno.: 2003
錯誤編號:2003
問題分析:
無法連接到 MySQL 服務器,可能的情況為:
1、MySQL 服務沒有啟動,一般是在異常的情況下 MySQL 無法啟動導致的,比如無可用的磁盤空間,my.ini 里 MySQL 的 basedir 路徑設置錯誤等;
2、MySQL 服務器資源緊張,導致無法連接。
解決方法:
1、如果你是虛擬主機用戶(購買的空間),則聯繫空間商檢查 MySQL 是否正常啟動,並確認 MySQL 的配置信息(是否為 localhost);
2、如果你是獨立主機用戶(擁有管理主機權限),則按下面步驟檢查:
1)檢查磁盤空間是否還有剩餘可用空間,盡量保持有足夠的磁盤空間可用。
2)檢查 my.ini 里的 basedir (MySQL 安裝地址) 和 datadir (數據目錄存放地址)等參數設置是否正確,然後重新啟動下 MySQL 服務。
還有一種方法是將服務器的windows補丁。
微軟9月9日發佈了TCP/IP更新補丁(KB967723),如果服務器開啟自動更新或者有自動更新軟件下載更新了這個補丁,那麼就會出現這個問題。
有人可能會問,為什麼9號出現的補丁,到現在才發現問題?
大家都知道,服務器不是每天都重啟的,有的服務器可能一個月或者一年半載重啟一次,有的可能在9月9日以後重啟過服務器,所以補丁生效了(我個人這麼認為)。
補丁卸載方法:登錄服務器,進入控制面板 — 添加和刪除程序 — (勾選上方的「顯示更新」)
在裏面可以看到更新的KB967723這個補丁,然後就想卸載普通軟件一樣卸載,卸載中會提示你,如果卸載可能導致程序運行出錯,沒關係,選擇「是」,繼續卸載。
卸載完成後程序服務器,一切正常!
至於該補丁修補什麼漏洞,卸載後是否會出現服務器安全隱患,這個先不說,要MYSQL正常運行,臨時的解決辦法只有如此。
還有種情況下,你可以這樣解決
Discuz! info: Can not connect to MySQL server
Time: 2007-11-13 6:25pm
Script: /bbs/index.php
Error: Can’t connect to MySQL server on ‘localhost’ (10061)
Errno.: 2003
Similar error report has beed dispatched to administrator before.
正常情況下原因如下:
網站論壇訪問量過大,數據庫連接超過最大連接數.MYSQL數據庫服務停止了.
解決方法(針對WIN系統):
1, 首先到系統服務裏面找到MYSQL服務並啟動MYSQL服務.
2, 到MYSQL安裝目錄找到MY.INI文件,打開MY.INI查找max_connections 修改連接數為1000 重啟IIS與MYSQL服務.
MYSQL8.0安裝成功但無法訪問是什麼原因?
原因在於MYSQL8.0的密碼驗證方式從mysql_native_password改為了caching_sha2_password。而目前為止,php的pdo和mysqli應該還是不支持的。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/236618.html