mysql訪問失敗怎么辦 mysql連接失敗怎么辦

幫我看下MySQL為什么啟動失敗 我該如何解決

一、無法訪問系統(tǒng)資源

創(chuàng)新互聯(lián)建站主要從事網(wǎng)站設(shè)計(jì)制作、做網(wǎng)站、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)礦區(qū),十余年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):028-86922220

MySQL 不能訪問啟動需要的資源是造成而 MySQL 無法啟動的一個(gè)常見原因,如:文件,端口等。由于 linux 中用于啟動 mysqld 進(jìn)程的 mysql 用戶通常是不能登陸的,可以使用類似下面的命令檢查文件的訪問權(quán)限。

sudo -u mysql touch /var/lib/mysql/b

找出問題后,修改對應(yīng)文件或目錄的權(quán)限或?qū)僦骱笸ǔ?梢越鉀Q問題。但有時(shí) mysql 用戶有訪問文件和目錄的權(quán)限,但仍然會被拒絕訪問,例如下面這個(gè)例子:

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 用戶有這個(gè)目錄的訪問權(quán)限,但創(chuàng)建文件還是失敗,這種情況讓很多人困惑,這個(gè)時(shí)候通常是 mysqld 進(jìn)程的訪問被 linux 的 selinux 或 apparmor 給阻止了,大家可以看到創(chuàng)建的表不是在 mysql 的默認(rèn)目錄下面,因此 selinux 或 apparmor 的 policy 里面沒有包含這個(gè)目錄的訪問權(quán)限,此時(shí)只要對應(yīng)的修改 policy 就行了,當(dāng)然把 selinux 或 apparmor 停了也行。

有時(shí)雖然對系統(tǒng)資源有訪問的權(quán)限,但系統(tǒng)資源已經(jīng)被占用:

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

這個(gè)故障產(chǎn)生的原因是另外一個(gè) mysqld 進(jìn)程已經(jīng)啟動并占用了對應(yīng)的文件。

二、參數(shù)設(shè)置錯(cuò)誤

參數(shù)設(shè)置錯(cuò)誤造成 MySQL 無法啟動的原因也非常常見,此時(shí)先要檢查 MySQL 啟動時(shí)會調(diào)用的參數(shù),下面的命令可以查詢 MySQL 啟動時(shí)調(diào)用參數(shù)文件的順序:

$ 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 參數(shù)文件的調(diào)用順序,我們就可以檢查對應(yīng)的參數(shù)文件,找出其中的錯(cuò)誤,如果覺得參數(shù)文件的可讀性不強(qiáng),可以使用下面的命令顯示 mysqld 程序?qū)⒁{(diào)用的參數(shù):

$ mysqld --print-defaults

/usr/sbin/mysqld would have been started with the following arguments:

......

注意這個(gè)命令顯示完參數(shù)后就退出,不會真正運(yùn)行 mysqld。這個(gè)命令和 my_print_defaults mysqld 完全是等價(jià)的,只不過后者的顯示方式是一行一個(gè)參數(shù)。

然后開始對可疑的參數(shù)進(jìn)行調(diào)試,我個(gè)人喜歡加的參數(shù)和順序如下:

1. 在 mysqld 后加上第一個(gè)參數(shù) --no-defaults ,這個(gè)參數(shù)的作用是通知 mysqld 在啟動的時(shí)候不要讀任何參數(shù)文件;

2. 第二個(gè)參數(shù)是 --console,這個(gè)參數(shù)會把錯(cuò)誤信息輸出到屏幕上,這個(gè)參數(shù)帶來的一個(gè)弊端是所有的信息都輸出到屏幕上,讓屏幕顯得比較亂,但對于我們調(diào)試卻是很方便的;

3. 第三個(gè)參數(shù)是 --log-error-verbosity=3,這個(gè)參數(shù)會顯示詳細(xì)的日志;

4. 然后再在后面加上有把握的參數(shù),可以一次只加一個(gè)參數(shù),然后啟動 mysqld,采用排除法逐步找出錯(cuò)誤的參數(shù)。

mysql連接不上怎么辦

1.排除網(wǎng)絡(luò)或防火墻問題

先看是否能ping通遠(yuǎn)程服務(wù)器,ping 192.168.1.211,如果不可以就是網(wǎng)絡(luò)問題。然后,檢查端口是否被防火墻擋住了,telnet 192.168.1.211 3306,如果連接失敗,配置防火墻。

配置防火墻,開啟3306端口

vi /etc/sysconfig/iptables

-A INPUT -m state –state NEW -m tcp -p tcp –dport 3306 -j ACCEPT(允許3306端口通過防火墻)

/etc/init.d/iptables restart(重啟防火墻使配置生效)

2.檢查MySQL配置

如果開啟了防火墻,telnet還是失敗,通過netstat查看3306的端口狀態(tài):

netstat -apn|grep 3306

tcp6 0 0 127.0.0.1:3306 :::* LISTEN 13524/mysqld

注意地方,這說明3306被綁定到了本地。檢查一下my.cnf的配置,這里可以配置綁定ip地址。

bind-address=addr

不配置或者IP配置為0.0.0.0,表示監(jiān)聽所有客戶端連接。

ps:我開啟3306端口,并且檢查MySQL配置之后,telent仍然失敗,但是在本機(jī)telnet是ok的,再三確認(rèn)了配置沒有問題。后來跟我們的ucloud賬號管理員提了一下,才知道ucloud管理后臺也需要開啟3306端口,用云服務(wù)器的留意這個(gè)。

3.檢查用戶訪問權(quán)限

MySQL建用戶的時(shí)候會指定一個(gè)host,默認(rèn)是127.0.0.1/localhost,那么這個(gè)用戶就只能本機(jī)訪問,其它機(jī)器用這個(gè)用戶帳號訪問會提示沒有權(quán)限,host改為%,表示允許所有機(jī)器訪問。

最后,別忘了重啟mysql使配置生效。

# /etc/init.d/mysql restart

望采納

windows遠(yuǎn)程連接MySQL失敗

MySQL我用的是apt安裝的,有很多問題,建議大家用二進(jìn)制程序安裝。

問題描述

在服務(wù)器上登錄MySQL只能用本地的127.0.0.1地址,用服務(wù)器本身地址會提示拒絕訪問

嘗試修改MySQL遠(yuǎn)程訪問權(quán)限

修改后發(fā)現(xiàn)沒有用,MySQL依然拒絕遠(yuǎn)程訪問

查看3306端口

root@sfpql:~# netstat -an|grep 3306

修改MySQL服務(wù)地址:

嘗試遠(yuǎn)程連接

telnet sfpql 3306

結(jié)語

MySQL遠(yuǎn)程連接不上是常見問題,一般設(shè)置好MySQL的遠(yuǎn)程訪問權(quán)限就可以了。

apt安裝的MySQL會自己將啟動地址設(shè)置在本地,同時(shí)apt安裝的MySQL的服務(wù)查看命令是 systemctl status mysql 其他安裝方式的常看命令是 systemctl status mysqld

連接mysql數(shù)據(jù)庫失敗怎么辦

1 mysql 錯(cuò)誤 ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost'

解決辦法:關(guān)閉防火墻,linux下命令

[root@etl01 bin]# chkconfig --list | grep -i iptables ====check fire wall

iptables 0:off 1:off 2:on 3:on 4:on 5:on 6:off

[root@etl01 bin]# /sbin/service iptables stop ====stop fire wall

Flushing firewall rules: [ OK ]

Setting chains to policy ACCEPT: nat filter [ OK ]

Unloading iptables modules: [ OK ]

2 報(bào)錯(cuò):1130-host ... is not allowed to connect to this MySql server

解決辦法:

授權(quán)形式

比如賬戶為root,密碼為root

use mysql;

用root賬戶從任何主機(jī)上訪問mysql數(shù)據(jù)庫了

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;

如果你想允許用戶zz從ip為192.168.1.3的主機(jī)連接到mysql服務(wù)器,并使用123456作為密碼

GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.3' IDENTIFIED BY '123456' WITH GRANT OPTION;

啟動MySql服務(wù)器失敗怎么辦?

怎么解決mysql服務(wù)無法啟動的問題

一:服務(wù)啟動

1.我們可以在Windows搜索欄中搜索服務(wù)應(yīng)用功能,或者其他方式打開服務(wù),右鍵單擊選擇以管理員運(yùn)行。

2.在服務(wù)中找到MySQL,手動點(diǎn)擊啟動。

不過用這個(gè)方法很可能還是無法啟動mysql服務(wù)。

二:刪除Data

網(wǎng)站標(biāo)題:mysql訪問失敗怎么辦 mysql連接失敗怎么辦
網(wǎng)站鏈接:http://muchs.cn/article32/hgsipc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、網(wǎng)站建設(shè)、手機(jī)網(wǎng)站建設(shè)、網(wǎng)站收錄、微信公眾號、網(wǎng)站導(dǎo)航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司