一、連接遠程資料庫:
1、顯示密碼
如:MySQL 連接遠程資料庫(192.168.5.116),埠「3306」,用戶名為「root」,密碼「123456」
C:/>mysql -h 192.168.5.116 -P 3306 -u root -p123456
2、隱藏密碼
如:MySQL 連接本地資料庫,用戶名為「root」,
C:/>mysql -h localhost -u root -p
Enter password:
二、配置mysql允許遠程鏈接
默認情況下,mysql帳號不允許從遠程登陸,只能在localhost登錄。本文提供了二種方法設置mysql可以通過遠程主機進行連接。
一、改表法
在localhost登入mysql後,更改 "mysql" 資料庫里的 "user" 表裡的 "host" 項,將"localhost"改稱"%"
例如:
#mysql -u root -p
Enter password:
……
mysql>
mysql>update user set host = '%' where user = 'root';
mysql>select host, user from user;
二、授權法
例如: 你想myuser使用mypassword(密碼)從任何主機連接到mysql伺服器的話。
mysql>GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%'IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
如果你想允許用戶myuser從ip為192.168.1.6的主機連接到mysql伺服器,並使用mypassword作為密碼
mysql>GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3'IDENTIFIED BY
'mypassword' WITH GRANT OPTION;
mysql>FLUSH PRIVILEGES
使修改生效,就可以了
常見問題:
1、在採用法二授權法之後,無法在本地登錄mysql(如:#mysql -u root -p -h 192.168.5.116
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'loadb116' (using password: YES)
上例中loadb116是主機名.
解決方法:
1、這時可以使用:mysql -u root -p 登錄,進入到mysql後。
mysql> grant all privileges on *.* to 'root'@'loadb116'
identified by '123456' with grant option;
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
2、在本地使用ip地址登錄
# mysql -u root -p -h 192.168.5.116
Enter password:
Welcome to the MySQL monitor. Commands end with ; or /g.
Your MySQL connection id is 60
Server version: 5.1.45 MySQL Community Server (GPL)
Type 'help;' or '/h' for help. Type '/c' to clear the buffer.
mysql>
② 怎麼設置才能讓外網ip可以訪問mysql資料庫
1、首先檢查mysql所在伺服器的防火牆,如果限制了外網對3306埠的連接,那麼放開限制
Linux伺服器中執行
iptables -L 可以查看當前的防火牆規則
iptables -F 可以清空所有防火牆規則
2、確保mysql的監聽地址是0.0.0.0
監聽地址是0.0.0.0 ,表示該mysql允許所有IP地址進行連接,這是允許遠程連接的基礎
監聽地址是127.0.0.1,則代表該mysql只允許所在伺服器本機連接,外網是無法連接的
怎麼知道mysql的監聽地址是多少
Linux伺服器中執行如下命令可以查看: netstat -nutlp|grep mysql
3、添加遠程連接mysql的賬號
此步驟是必須要操作的,mysql本身的用戶只能在本機上連接資料庫,外網連接的話,需要先添加遠程用戶並授權。
在mysql命令行模式下,或者phpmyadmin中執行sql語句添加遠程連接用戶
> grant all on *.* to root@'%' identified by '123456';
> flush privileges;
命令解釋:
*.* 第一個*表示庫,第二個*表示表; *.*對全部資料庫的全部表授權,so.ok 表示只對so這個庫中的ok表授權
root 表示要給哪個用戶授權,這個用戶可以是存在的用戶,也可以是不存在的
'%' 表示允許遠程連接的IP地址,%代表允許所有IP連接
只允許某個IP遠程連接,可以寫成'123.123.123.123'
只允許123.123.123.*這個網段遠程連接,可以寫成 '123.123.123.%' '123456' 是設置授權用戶的連接密碼
flush privileges; 代表立即刷新許可權表,使添加的用戶生效
上面三步都設置好了,就可以再次嘗試遠程連接mysql了。
③ 本地mysql 怎樣設置,外網也可以訪問
/etc/mysql/my.cnf 找到 bind-address =127.0.0.1 將其注釋掉;//作用是使得不再只允許本地訪問; 重啟mysql:/etc/init.d/mysql restart; 2:登錄mysql資料庫:mysql -u root -p mysql> use mysql; 查詢host值: mysql> select user,host from ...
④ 區域網怎麼做實現外網訪問內網mysql資料庫
默認情況下,mysql資料庫用的是3306的埠,你只要在路由器里把3306埠映射到mysql 伺服器的IP就可以了, 你外網訪問時直接訪問路由器的外網地址+埠號就行了。路由器可以用花生殼來實現外網地址和域名的轉換。最終你訪問就是: 」花生殼的域:3306「就可以了。
⑤ 伺服器的MySQL不能遠程訪問
添加配置:
確定使用的mysql版本,如果為5.0以上的版本需要在mysql的配置文件 (windows下my.ini,linux下my.cnf)中添加如下代碼:
[mysqld]
skip-name-resolve
注意配置完成後重啟mysql服務,5.0一下的就不需要添加了。
分配許可權:
這里我們建議單獨創建一個用戶,不要使用root用戶,這個用戶最好是指定需要連接的計算機。
代碼如下:
MySQL> use MySQL;
Database changed
MySQL> grant all privileges on *.* to 『yourUser』@'%' identified by 『yourPassword』;
Query OK, 0 rows affected (0.00 sec)
*.*標示所有資料庫下的所有表,』*』.*標示資料庫*下的所有表
MySQL> grant all on *.* to 『yourUser』@'%' identified by 『yourPassword』;
Query OK, 0 rows affected (0.00 sec)
%號出可以填寫允許訪問的IP地址或者主機名,%標示所有的IP
Flush privileges;
Query OK, 0 rows affected (0.00 sec)
Mysql> exit;
Bye
啟動連接:
C:\Program Files\MySQL\bin> mysql –h 需要遠程連接的IP或者是主機名 –u 分配的遠程連接賬戶 –p
Enter password:密碼
⑥ 如何使用mysql workbench從外網訪問內網mysql伺服器
一台電腦上安裝了Workbench,現需要訪問另一台ubuntu伺服器上的MySQL資料庫,但mysql默認是不允許訪問的,考慮到安全性問題,也不適合使用root用戶來訪問mysql。
這時我們就需要開放mysql伺服器並創建新的用戶來訪問mysql。
1,開放mysql
mysql的配置文件在/etc/mysql/my.cnf文件內,裡面有一行bind-address = 127.0.0.1表示只允許本地訪問,將這行注釋即可
2,創建新的mysql用戶
(1)首先在本地進入mysql資料庫的mysql庫內
(2)創建用戶:GRANT ALL ON *.* to user@'IP' IDENTIFIED BY 'password'; 其中user表示需要創建用戶的名字;IP表示哪台客戶端想要訪問mysql資料庫;password表示密碼;並賦予所有的許可權。
(3)FLUSH PRIVILEGES; 刷新mysql的系統許可權相關表,否則會出現拒絕訪問。重啟資料庫也能達到這樣的效果
⑦ 如何設置mysql遠程訪問
使用「Ctrl + R」組合鍵快速打開cmd窗口,並輸入「cmd」命令,打開cmd窗口。
使用「mysql -uroot -proot」命令可以連接到本地的mysql服務。
使用「use mysql」命令,選擇要使用的資料庫,修改遠程連接的基本信息,保存在mysql資料庫中,因此使用mysql資料庫。
使用「GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;」命令可以更改遠程連接的設置。
使用「flush privileges;」命令刷新剛才修改的許可權,使其生效。
6
使用「select host,user from user;」查看修改是否成功。
⑧ 如何讓mysql資料庫允許被遠程連接訪問就是從其他的電腦連接我的電腦上的mysql
第一:更改 「mysql」 資料庫里的 「user」 表裡的 「host」 項,從」localhost」改稱'%'。
或者新加條記錄,「host」 項為要訪問的ip地址,並授權。重啟mysql服務。
第二:在系統防火牆添加例外埠:3306,並允許例外。
錯誤提示:
ERROR 1130: Host '192.168.1.3' is not allowed to connect to this MySQL server
的解決方法:
1。改表法。可能是你的帳號不允許從遠程登陸,只能在localhost。這個時候只要在localhost的那台電腦,登入mysql後,更改 "mysql" 資料庫里的 "user" 表裡的 "host" 項,從"localhost"改稱"%"
1.mysql -u root -pvmware
mysql>use mysql;
mysql>update user set host = '%' where user = 'root';
mysql>select host, user from user;
2. 授權法。例如,你想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.1.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
3.在window自帶的防火牆里的例外添加3306埠
總結:
mysql -u root -p
mysql>use mysql;
mysql>select 'host' from user where user='root';
mysql>update user set host = '%' where user ='root';
mysql>flush privileges;
mysql>select 'host' from user where user='root';
第一句是以許可權用戶root登錄
第二句:選擇mysql庫
第三句:查看mysql庫中的user表的host值(即可進行連接訪問的主機/IP名稱)
第四句:修改host值(以通配符%的內容增加主機/IP地址),當然也可以直接增加IP地址
第五句:刷新MySQL的系統許可權相關表
第六句:再重新查看user表時,有修改。。
重起mysql服務即可完成。
⑨ 怎樣設置才能允許外網訪問MySQL
設置mysql服務允許外網訪問,修改mysql的配置文件,有的是my.ini,有的是my.cnf【linux】.
1:設置mysql的配置文件
/etc/mysql/my.cnf
找到 bind-address =127.0.0.1 將其注釋掉;//作用是使得不再只允許本地訪問;
重啟mysql:/etc/init.d/mysql restart;
2:登錄mysql資料庫:mysql -u root -p
mysql> use mysql;
查詢host值:
mysql> select user,host from user;
如果沒有"%"這個host值,就執行下面這兩句:
mysql> update user set host='%' where user='root';
mysql> flush privileges;
或者也可以執行:
mysql>grand all privileges on *.* to root@'%' identifies by ' xxxx';
其中 第一個*表示資料庫名;第二個*表示該資料庫的表名;如果像上面那樣 *.*的話表示所有到資料庫下到所有表都允許訪問;
『%':表示允許訪問到mysql的ip地址;當然你也可以配置為具體到ip名稱;%表示所有ip均可以訪問;
後面到『xxxx'為root 用戶的password;
舉例:
任意主機以用戶root和密碼mypwd連接到mysql伺服器
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'mypwd' WITH GRANT OPTION;
mysql> flush privileges;
IP為192.168.1.102的主機以用戶myuser和密碼mypwd連接到mysql伺服器
mysql> GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.102' IDENTIFIED BY 'mypwd' WITH GRANT OPTION;
mysql> flush privileges;