mysql關閉遠程訪問許可權
① windows遠程連接Mysql失敗
MySQL我用的是apt安裝的,有很多問題,建議大家用二進製程序安裝。
問題描述
在伺服器上登錄MySQL只能用本地的127.0.0.1地址,用伺服器本身地址會提示拒絕訪問
嘗試修改MySQL遠程訪問許可權
修改後發現沒有用,MySQL依然拒絕遠程訪問
查看3306埠
root@sfpql:~# netstat -an|grep 3306
修改MySQL服務地址:
嘗試遠程連接
telnet sfpql 3306
結語
MySQL遠程連接不上是常見問題,一般設置好MySQL的遠程訪問許可權就可以了。
apt安裝的MySQL會自己將啟動地址設置在本地,同時apt安裝的MySQL的服務查看命令是 systemctl status mysql 其他安裝方式的常看命令是 systemctl status mysqld
② mysql root 關閉遠程訪問
停止mysql服務,然後用下面的方式啟動mysql:
mysqld --skip-grant-tables
或
mysqld-nt --skip-grant-tables
(以上2個命令根據不同版本選擇其中一個合適的運行就可以)
然後就用mysql客戶端直接伺服器本地登陸mysql(不用密碼的),然後增加本地的登陸帳號即可:
grant all on *.* to 'root'@'localhost' IDENTIFIED BY '密碼' with grant option;
flush privlieges;
grant all on *.* to 'root'@'127.0.0.1' IDENTIFIED BY '密碼' with grant option;
flush privlieges;
接著kill掉上面啟動的mysql服務進程,重新按平時正常的方式啟動mysql即可.
③ mysql 設置遠程訪問許可權 需要重啟嗎
需要重啟mysql的。
1、轉到/etc/mysql/mysql.conf.d文件夾下
cd /etc/mysql/mysql.conf.d
2、打開mysql.cnf文件
vim mysqld.cnf
3、按i對文件進行編輯,找到bind-address = 127.0.0.1 這一行
在其最前便加一個 # ,將其注釋掉,然後保存退出。
4、通過service腳本重啟mysql服務
service mysql restart
5、登錄進MySQL執行下面的SQL語句,對root賬戶進行授權,允許任何IP地址的計算機都可以用root賬戶和密碼(root)來訪問MySQL伺服器
④ MYSQL遠程訪問問題,沒有許可權。
默認賬號只能本地訪問,需要添加遠程用戶
語法如下
GRANT [privilage] ON [database Name].[Table Name] TO [User Name]@"[Server IP]" IDENTIFIED BY '[User Password]';
例:
比如添加遠程用戶為abcde,密碼為abcde
GRANT ALL PRIVILEGES ON *.* TO abcde@"%" IDENTIFIED BY 'abcde' WITH GRANT OPTION;
%代表不限制遠程ip
with grant option代表可以為其他用戶授權,如不需要可不加。
⑤ mysql無法遠程連接,本地可以
查看MySQL進程是否正常,可以阿里雲伺服器 ECS 伺服器上輸入:ps -ef|grep mysqld
mysqld_safe和mysqld都在,說明MySQL進程是正常,若沒有這兩進程,執行/etc/init.d/mysqld start,啟動msyql。
MySQL在本地能連接上,遠程連接不上的解決辦法
查看mysql監聽IP和埠是否正常。
使用:netstat -anpt
監聽得地址如果是:::3306或者是0.0.0.0:3306,表示監聽所有IP地址,這監聽狀態是正常。若出現127.0.0.0:3306,說明監聽的本地地址,需要在mysql配置文件中將bind-address選項設置為bind-address = 0.0.0.0,重啟mysql。
MySQL在本地能連接上,遠程連接不上的解決辦法
查看用於遠程訪問的mysql用戶許可權是否正確。
在本地登入mysql伺服器,
use mysql;
SELECT user, host from mysql.user; 查看用於遠程訪問的mysql用戶host的許可權,%表示允許所有機器訪問。若host為127.0.0.1/localhost,那麼這個用戶就只能本機訪問,則需要將host改為%,可以使用update user set host='%' where user='root';
MySQL在本地能連接上,遠程連接不上的解決辦法
MySQL在本地能連接上,遠程連接不上的解決辦法
若以上操作都正常,還是遠程還是不能訪問的話,可以使用tcpmp在伺服器端抓一下3306埠,看是否有數據包,排查以下網路原因。
在服務上輸入抓包命令:tcpmp port 3306
然後遠程連接mysql資料庫,看一下服務端是否有數據包。
MySQL在本地能連接上,遠程連接不上的解決辦法
如果沒有數據包,查一下阿里雲伺服器 ECS下的安全組件中的配置
MySQL在本地能連接上,遠程連接不上的解決辦法
若安全組件中的配置中,入口未對資料庫服務監聽的3306埠放開,則需要將3306埠放開。如下圖,並沒有3306埠,則表示未放開該埠。
MySQL在本地能連接上,遠程連接不上的解決辦法
MySQL在本地能連接上,遠程連接不上的解決辦法
在阿里雲伺服器 ECS下的安全組件中的配置,放開3306埠。單擊添加安全組規則,如下圖:
MySQL在本地能連接上,遠程連接不上的解決辦法
MySQL在本地能連接上,遠程連接不上的解決辦法
⑥ mysql怎麼設置不允許外部連接
首先看報錯窗口。
2
經查閱,錯誤原因是:本地IP(xxx.xxx.xxx.xxx)沒有訪問遠程資料庫的許可權。
於是下面開啟本地IP(xxx.xxx.xxx.xxx)對遠程mysql資料庫的訪問許可權。
3
首先遠程連接進入伺服器,在cms中輸入mysql -u root -p,然後回車,輸入密碼後回車進入mysql命令行。
4
輸入use mysql;
5
輸入select user,password,host from user;
可以看到host中只有localhost主機。我們需要將xxx.xxx.xxx.xxx也添加到這里才對。
6
添加方法如下:
輸入
grant all privileges on *.* to root@"xxx.xxx.xxx.xxx" identified by "密碼";
這相當於是給IP-xxx.xxx.xxx.xxx賦予了所有的許可權,包括遠程訪問許可權。
然後再輸入
flush privileges;
這相當於是重新載入一下mysql許可權,這一步必須有。
7
再次輸入select user,password,host from user;
可以看到host中已經有了新加的IP。
8
現在再次用Navicat for MySQl訪問遠程mysql資料庫,已經能正常打開了。
問題解決。
9
不過還有一個問題,發現雙擊打開某張表的時候很慢,至少要3秒。
原因是:
當遠程訪問mysql時, mysql會解析域名, 所以會導致訪問速度很慢, 會有2,3秒延時!
解決辦法:
修改mysql安裝目錄下的my.ini,加上下面這個配置可解決此問題。在[mysqld]下加入:skip-name-resolve
保存退出後重啟mysql服務。
然後訪問速度就和本地一樣快啦。
⑦ centos7安裝的mysql怎麼遠程連接
1.安裝MySQL
CentOS7中默認安裝了MySQL系列的資料庫,需要先卸載掉。
查看當前安裝的mariadb包:
[root@bogon desktop]# rpm -qa | grep mariadb
將它們統統強制性卸載掉:
[root@bogon 桌面]# rpm -e --nodeps mariadb-libs-5.5.35-3.el7.x86_64
在官網下載RPM安裝包,http://dev.mysql.com/downloads/mysql/,下載完成後解壓。
雙擊安裝MySQL-server,MySQL-client和MySQL-devel三個安裝包。
2. 啟動MYSQL
[root@bogon desktop]#service mysql start
得到錯誤:ERROR!The server quit without updating PID file
我們這里主要是因為:selinux惹的禍,如果是centos系統,默認會開啟selinux。解決方法是關閉它,打開/etc/selinux/config,把SELINUX=enforcing改為SELINUX=disabled後存檔退出重啟機器。
然後再啟動mysql就沒問題了:
[root@bogon desktop]#service mysql start
查看MySQL運行狀態:
[root@bogon desktop]# service mysql status
SUCCESS! MySQL running (2377)
3. 設置密碼
安裝之後root用戶默認沒有密碼,通過命令設置密碼。
[root@bogon desktop]# /usr/bin/mysqladmin -u root password 'passok'
然後設置root用戶的遠程訪問許可權
在mysql控制台執行
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'MyPassword' WITH GRANT OPTION;
FLUSH PRIVILEGES;
4.開啟遠程連接
需要安裝iptables,
yum install -y iptables
然後編輯系統的開放埠列表,增加3306埠,重啟防火牆即可。
⑧ 怎麼設置mysql伺服器要設置遠程ip訪問許可權
你的MYSQL資料庫裡面有一個資料庫,名字教做mysql,裡面有個表,名字叫做user,你看一下這個表的結構和現有數據,你就知道應該怎麼做了,比如你可以添加一條數據,Host為你指定的IP,user可以是%,password就不管了,後面設置相應的許可權(可以全部都是Y),這樣那個機器無論用什麼用戶和密碼都可以連接資料庫,而擁有你指定的許可權。
耐心點吧,我相信你一看就明白。
參考資料: http://blog.chinaunix.net/u2/73743/showart_1094545.html
⑨ MySQL資料庫不允許從遠程訪問怎麼辦
本文提供了三種解決方法:
1、改表法。可能匙你d帳號不允許從遠程登陸,只能在localhost。這個時候只要在localhostd那台電腦,登入mysql後,更改
"mysql"
資料庫里d
"user"
表裡d
"host"
項,從"localhost"改稱"%"
mysql
-u
root
-pvmwaremysql>use
mysql;
mysql>update
user
set
host
=
'%'
where
user
=
'root';
mysql>select
host,
user
from
user;
2、授權法。
GRANT
ALL
PRIVILEGES
ON
*.*
TO
'myuser'@'%'IDENTIFIED
BY
'mypassword'
WI
TH
GRANT
OPTION;
如果你想允許用戶myuser從ip為192.168.1.6d主機連接到mysql伺服器,並使用mypassword作為密碼
GRANT
ALL
PRIVILEGES
ON
*.*
TO
'myuser'@'192.168.1.3'IDENTIFIED
BY
'mypassword'
WITH
GRANT
OPTION;
我用d第一個方法,剛開始發現不行,在網上查了一下,少執行一個語句
mysql>FLUSH
RIVILEGES
使修改生效,就可以了
另外一種方法:
在安裝mysqld機器上運行:
1、d:/mysql/bin/>mysql
-h
localhost
-u
root
//這樣應該可以進入MySQL伺服器
2、mysql>GRANT
ALL
PRIVILEGES
ON
*.*
TO
'root'@'%'WITH
GRANT
OPTION
//賦予任何主機訪問數據d許可權
3、mysql>FLUSH
PRIVILEGES
//修改生效
4、mysql>EXIT
//退出MySQL伺服器
這樣就可以在其它任何d主機上以root身份登錄啦。
⑩ 如何設置mysql遠程訪問及防火牆設置
打開mysql伺服器,然後使用下面的命令模式:
mysql>usemysql;
mysql>GRANTALLON*.*TOadmin@'%'IDENTIFIEDBY'admin'WITHGRANTOPTION;