开启本地MySql数据库远程连接
解決MySQL不允許從遠(yuǎn)程訪問的方法
?
開啟 MySQL 的遠(yuǎn)程登陸帳號(hào)有兩大步:
1、確定服務(wù)器上的防火墻沒有阻止 3306 端口。
MySQL 默認(rèn)的端口是 3306 ,需要確定防火墻沒有阻止 3306 端口,否則遠(yuǎn)程是無法通過 3306 端口連接到 MySQL 的。
如果您在安裝 MySQL 時(shí)指定了其他端口,請(qǐng)?jiān)诜阑饓χ虚_啟您指定的 MySQL 使用的端口號(hào)。
如果不知道怎樣設(shè)置您的服務(wù)器上的防火墻,請(qǐng)向您的服務(wù)器管理員咨詢。
2、增加允許遠(yuǎn)程連接 MySQL 用戶并授權(quán)。
1)首先以 root 帳戶登陸 MySQL
在 Windows 主機(jī)中點(diǎn)擊開始菜單,運(yùn)行,輸入“cmd”,進(jìn)入控制臺(tái),MySQL 的 bin 目錄下,然后輸入下面的命令。
在 Linux 主機(jī)中在命令提示行下輸入下面的命令。
?
CODE:?- > MySQL -uroot -p123456
123456 為 root 用戶的密碼。
2)創(chuàng)建遠(yuǎn)程登陸用戶并授權(quán)
?
CODE:?- > grant all PRIVILEGES on discuz.* to ted@'123.123.123.123' identified by '123456';
上面的語句表示將 discuz 數(shù)據(jù)庫的所有權(quán)限授權(quán)給 ted 這個(gè)用戶,允許 ted 用戶在 123.123.123.123 這個(gè) IP 進(jìn)行遠(yuǎn)程登陸,并設(shè)置 ted 用戶的密碼為 123456 。
下面逐一分析所有的參數(shù):
all PRIVILEGES 表示賦予所有的權(quán)限給指定用戶,這里也可以替換為賦予某一具體的權(quán)限,例如:select,insert,update,delete,create,drop 等,具體權(quán)限間用“,”半角逗號(hào)分隔。
discuz.* 表示上面的權(quán)限是針對(duì)于哪個(gè)表的,discuz 指的是數(shù)據(jù)庫,后面的 * 表示對(duì)于所有的表,由此可以推理出:對(duì)于全部數(shù)據(jù)庫的全部表授權(quán)為“*.*”,對(duì)于某一數(shù)據(jù)庫的全部表授權(quán)為“數(shù)據(jù)庫名.*”,對(duì)于某一數(shù)據(jù)庫的某一表授 權(quán)為“數(shù)據(jù)庫名.表名”。
ted 表示你要給哪個(gè)用戶授權(quán),這個(gè)用戶可以是存在的用戶,也可以是不存在的用戶。
123.123.123.123 表示允許遠(yuǎn)程連接的 IP 地址,如果想不限制鏈接的 IP 則設(shè)置為“%”即可。
123456 為用戶的密碼。
執(zhí)行了上面的語句后,再執(zhí)行下面的語句,方可立即生效。
?
CODE:? > flush privileges;?
做網(wǎng)站,要經(jīng)常更新數(shù)據(jù)庫,接觸的數(shù)據(jù)庫肯定都是mysql。有時(shí)候建站的時(shí)候因?yàn)閿?shù)據(jù)庫和網(wǎng)站放在不同的IP,這個(gè)時(shí)候就需要用程序進(jìn)行mysql的遠(yuǎn)程連接,而mysql因?yàn)榘踩囊蛩?#xff0c;默認(rèn)的時(shí)候用戶設(shè)置的是不能遠(yuǎn)程連接,只能本地連接,這個(gè)時(shí)候就需要自己去修改其中的設(shè)置。下面小編就介紹一下操作方法。?
進(jìn)入cmd命令模式。
mysql -h localhost-u mysql -p?
Enter password: ******
?
連接數(shù)據(jù)庫。
mysql> use mysql; (此DB存放MySQL的各種配置信息)
Database changed
mysql> select host,user from user; (查看用戶的權(quán)限情況)
+-------------+-------+
| host | user |
+-------------+-------+
| localhost | |
| localhost | root |
| localhost | |
| localhost | mysql |
+-------------+-------+
6 rows in set (0.02 sec)
由此可以看出,只能以localhost的主機(jī)方式訪問。
mysql> Grant all privileges on *.* to 'root'@'%' identified by ‘password’with grant option;
(%表示是所有的外部機(jī)器,如果指定某一臺(tái)機(jī),就將%改為相應(yīng)的機(jī)器名;‘root’則是指要使用的用戶名,里面的password需要自己修改成root的密碼)
mysql> flush privileges; (運(yùn)行為句才生效,或者重啟MySQL)
Query OK, 0 rows affected (0.03 sec)
mysql> select host,user from user; (再次查看用戶的權(quán)限情況)
+-------------+-------+
| host | user |
+-------------+-------+
| % | mysql |
| % | root |
| localhost | |
| localhost | root |
| localhost | |
| localhost | mysql |
+-------------+-------+
mysql>exit
現(xiàn)在再試試:從遠(yuǎn)程cmd那邊看能不能登錄,能登錄的話,一般用代碼也是可以連接的到的。
?
總結(jié)
以上是生活随笔為你收集整理的开启本地MySql数据库远程连接的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ToolStripStatusLabel
- 下一篇: 第九章 硬件抽象层:HAL