十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團隊
量身定制 + 運營維護+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
開啟 MySQL 的遠程登陸帳號有兩大步:
創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比宣城網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式宣城網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務覆蓋宣城地區(qū)。費用合理售后完善,10年實體公司更值得信賴。
1、確定服務器上的防火墻沒有阻止 3306 端口。
MySQL 默認的端口是 3306 ,需要確定防火墻沒有阻止 3306 端口,否則遠程是無法通過 3306 端口連接到 MySQL 的。
如果您在安裝 MySQL 時指定了其他端口,請在防火墻中開啟您指定的 MySQL 使用的端口號。
如果不知道怎樣設(shè)置您的服務器上的防火墻,請向您的服務器管理員咨詢。
2、增加允許遠程連接 MySQL 用戶并授權(quán)。
1)首先以 root 帳戶登陸 MySQL
在 Windows 主機中點擊開始菜單,運行,輸入“cmd”,進入控制臺,MySQL 的 bin 目錄下,然后輸入下面的命令。
在 Linux 主機中在命令提示行下輸入下面的命令。
CODE: [COPY]
MySQL -uroot -p123456
123456 為 root 用戶的密碼。
2)創(chuàng)建遠程登陸用戶并授權(quán)
CODE: [COPY]
grant all PRIVILEGES on discuz.* to ted@'123.123.123.123' identified by '123456';
上面的語句表示將 discuz 數(shù)據(jù)庫的所有權(quán)限授權(quán)給 ted 這個用戶,允許 ted 用戶在 123.123.123.123 這個 IP 進行遠程登陸,并設(shè)置 ted 用戶的密碼為 123456 。
下面逐一分析所有的參數(shù):
all PRIVILEGES 表示賦予所有的權(quán)限給指定用戶,這里也可以替換為賦予某一具體的權(quán)限,例如:select,insert,update,delete,create,drop 等,具體權(quán)限間用“,”半角逗號分隔。
discuz.* 表示上面的權(quán)限是針對于哪個表的,discuz 指的是數(shù)據(jù)庫,后面的 * 表示對于所有的表,由此可以推理出:對于全部數(shù)據(jù)庫的全部表授權(quán)為“*.*”,對于某一數(shù)據(jù)庫的全部表授權(quán)為“數(shù)據(jù)庫名.*”,對于某一數(shù)據(jù)庫的某一表授 權(quán)為“數(shù)據(jù)庫名.表名”。
ted 表示你要給哪個用戶授權(quán),這個用戶可以是存在的用戶,也可以是不存在的用戶。
123.123.123.123 表示允許遠程連接的 IP 地址,如果想不限制鏈接的 IP 則設(shè)置為“%”即可。
123456 為用戶的密碼。
執(zhí)行了上面的語句后,再執(zhí)行下面的語句,方可立即生效。
CODE: [COPY]
flush privileges;
首先讓我們看一下遠端MYSQL的用戶表
mysql select host,user
- from user;
+---------------+------+
| host | user |
+---------------+------+
| localhost | root |
+---------------+------+
5 rows in set (0.00 sec)
由此我們可以看到root用戶僅允許本地(localhost)登錄,如果要遠程登錄該mysql服務器的話,就需要新建一個普通權(quán)限的用戶,新建用戶使用如下命令:
mysql grant select,update,insert,delete on mas.* to duan@localhost identified by "123456";
這句命令的意思是:新建用戶duan,并且只允許該用戶在本地(localhost)登錄,密碼是123456,并且賦予它對mas庫中所有表select,update,insert的權(quán)限。我們在這有一個mas庫,所以用mas.*代表mas庫下的所有表。如果要對所有的表,包括mysql庫的表都有操作權(quán)限則可以替換成“*.*”.
現(xiàn)在該duan用戶,已經(jīng)可以登錄mysql了,但是也還是只能本地登錄。若要duan用戶可以遠程登錄mysql,則還需要如下命令:
mysql update user set host = '%' where user = 'duan';
基于安全考慮root賬戶一般只能本地訪問,但是在開發(fā)過程中可能需要打開root的遠程訪問權(quán)限。下面是基本的步驟:\x0d\x0a1、登錄到MySQL中,為root進行遠程訪問的授權(quán),執(zhí)行下面的命令:\x0d\x0a\x0d\x0amysql GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "root";\x0d\x0amysql flush privileges;\x0d\x0a\x0d\x0a第一句中"%"表示任何主機都可以遠程登錄到該服務器上訪問。如果要限制只有某臺機器可以訪問,將其換成相應的IP即可,如:\x0d\x0aGRANT ALL PRIVILEGES ON *.* TO root@"172.168.193.25" IDENTIFIED BY "root";\x0d\x0a第二句表示從mysql數(shù)據(jù)庫的grant表中重新加載權(quán)限數(shù)據(jù)。因為MySQL把權(quán)限都放在了cache中,所以在做完更改后需要重新加載。\x0d\x0a\x0d\x0a2、修改/etc/mysql/my.cnf,需要root用戶權(quán)限。找到文件中的:\x0d\x0a\x0d\x0a[ruby] view plain copy print?\x0d\x0abind-address = 127.0.0.1 \x0d\x0a\x0d\x0a將其注釋掉,保存。\x0d\x0a\x0d\x0a3、重新啟動MySQL服務器。執(zhí)行下面的幾條命令即可:\x0d\x0a# /usr/bin/mysqladmin -u root -p shutdown\x0d\x0a# /usr/bin/mysqld_safe \x0d\x0a\x0d\x0a如果mysqladmin和mysql_safe不在/usr/bin目錄中,可以通過whereis命令查找,例如:\x0d\x0a# whereis mysqladmin\x0d\x0amysqladmin: /usr/bin/mysqladmin /usr/share/man/man1/mysqladmin.1.gz\x0d\x0a\x0d\x0a執(zhí)行完上面的三步后,就可以通過遠程機器連接了數(shù)據(jù)庫了。