1、mysql怎麼開啟遠程登錄功能
進入cmd命令模式。
mysql -h localhost-u mysql -p
Enter password: ******
連接資料庫。
mysql> use mysql; (此DB存放MySQL的各種配置信息)
Database changed
mysql> select host,user from user; (查看用戶的許可權情況)
+-------------+-------+
| host | user |
+-------------+-------+
| localhost | |
| localhost | root |
| localhost | |
| localhost | mysql |
+-------------+-------+
6 rows in set (0.02 sec)
由此可以看出,只能以localhost的主機方式訪問。
mysql> Grant all privileges on *.* to 'root'@'%' identified by 『password』with grant option;
(%表示是所有的外部機器,如果指定某一台機,就將%改為相應的機器名;『root』則是指要使用的用戶名,裡面的password需要自己修改成root的密碼)
mysql> flush privileges; (運行為句才生效,或者重啟MySQL)
Query OK, 0 rows affected (0.03 sec)
mysql> select host,user from user; (再次查看用戶的許可權情況)
+-------------+-------+
| host | user |
+-------------+-------+
| % | mysql |
| % | root |
| localhost | |
| localhost | root |
| localhost | |
| localhost | mysql |
+-------------+-------+
mysql>exit
現在再試試:從遠程cmd那邊看能不能登錄,能登錄的話,一般用代碼也是可以連接的到的。
2、如何給遠程主機開啟mysql遠程登錄許可權
基於安全考慮root賬戶一般只能本地訪問,但是在開發過程中可能需要打開root的遠程訪問許可權。下面是基本的步驟:
1、登錄到MySQL中,為root進行遠程訪問的授權,執行下面的命令:
mysql> GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "root";
mysql> flush privileges;
第一句中"%"表示任何主機都可以遠程登錄到該伺服器上訪問。如果要限制只有某台機器可以訪問,將其換成相應的IP即可,如:
GRANT ALL PRIVILEGES ON *.* TO root@"172.168.193.25" IDENTIFIED BY "root";
第二句表示從mysql資料庫的grant表中重新載入許可權數據。因為MySQL把許可權都放在了cache中,所以在做完更改後需要重新載入。
2、修改/etc/mysql/my.cnf,需要root用戶許可權。找到文件中的:
[ruby] view plain copy print?
bind-address = 127.0.0.1
將其注釋掉,保存。
3、重新啟動MySQL伺服器。執行下面的幾條命令即可:
# /usr/bin/mysqladmin -u root -p shutdown
# /usr/bin/mysqld_safe &
如果mysqladmin和mysql_safe不在/usr/bin目錄中,可以通過whereis命令查找,例如:
# whereis mysqladmin
mysqladmin: /usr/bin/mysqladmin /usr/share/man/man1/mysqladmin.1.gz
執行完上面的三步後,就可以通過遠程機器連接了資料庫了。
3、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服務即可完成。
4、怎麼給mysql開啟遠程訪問許可權
1、改表法。
可能是你的帳號不允許從遠程登陸,只能在localhost。這個時候只要在localhost的那台電腦,登入mysql後,更改 "mysql" 資料庫里的 "user" 表裡的 "host" 項,從"localhost"改稱"%"
mysql -u root -pvmwaremysql>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' WI
TH GRANT OPTION;
如果你想允許用戶myuser從ip為192.168.1.6的主機連接到mysql伺服器,並使用mypassword作為密碼
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3'IDENTIFIED BY
'mypassword' WITH GRANT OPTION;
我用的第一個方法,剛開始發現不行,在網上查了一下,少執行一個語句 mysql>FLUSH RIVILEGES
使修改生效,就可以了
另外一種方法:
在安裝mysql的機器上運行:
1、d:\mysql\bin\>mysql -h localhost -u root
//這樣應該可以進入MySQL伺服器
2、mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION
//賦予任何主機訪問數據的許可權
3、mysql>FLUSH PRIVILEGES
//修改生效
4、mysql>EXIT
//退出MySQL伺服器
這樣就可以在其它任何的主機上以root身份登錄啦。
5、mysql如何遠程連接伺服器?
1、 停止mysql的服務。
2、 進入命令窗口,然後進入MySQL的安裝目錄,比如安裝目錄是c:\mysql,進入c:\mysql\bin。
3、 進入mysql資料庫伺服器。
c:\mysql\bin>mysql –u root –p hkgt123。
4、 選中資料庫mysql :use mysql。
5、 查詢mysql資料庫中的用戶:Select host,user,password from mysql。
6、 授權給root用戶可以從任何主機使用密碼為』hkgt123』登錄MYSQL資料庫:
GRANT ALL PRIVILEGES ON *.* TO root@』%』 IDENTIFIED BY 『hkgt123』 WITH GRANT OPTION。
7、 提交:commit。
8、 刷新許可權:flush privileges。
6、伺服器mysql資料庫怎麼開啟遠程
第一中方法:比較詳細
以下的文章主要介紹的是MySQL 資料庫開啟遠程連接的時機操作流程,其實開啟MySQL
資料庫遠程連接的實際操作步驟並不難,知識方法對錯而已,今天我們要向大家描述的是MySQL 資料庫開啟遠程連接的時機操作流程。
1、d:\MySQL\bin\>MySQL -h localhost -u root
這樣應該可以進入MySQL伺服器
復制代碼
代碼如下:
MySQL>update user set host = '%' where
user = 'root';
MySQL>select host, user from user;
2、MySQL>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY
'mypassword' WITH GRANT OPTION
予任何主機訪問數據的許可權
3、MySQL>FLUSH
PRIVILEGES
修改生效
4、MySQL>EXIT
退出MySQL伺服器
這樣就可以在其它任何的主機上以root身份登錄啦!
以上的相關內容就是對MySQL 資料庫開啟遠程連接的介紹,望你能有所收獲。
第二種方法:
1、在控制台執行 mysql -u root -p
mysql,系統提示輸入資料庫root用戶的密碼,輸入完成後即進入mysql控制台,這個命令的第一個mysql是執行命令,第二個mysql是系統數據名稱,不一樣的。
2、在mysql控制台執行 GRANT ALL PRIVILEGES ON *.* TO 『root'@'%' IDENTIFIED BY
『MyPassword' WITH GRANT OPTION;
3、在mysql控制台執行命令中的 『root'@'%' 可以這樣理解:
root是用戶名,%是主機名或IP地址,這里的%代表任意主機或IP地址,你也可替換成任意其它用戶名或指定唯一的IP地址;'MyPassword'是給授權用戶指定的登錄資料庫的密碼;另外需要說明一點的是我這里的都是授權所有許可權,可以指定部分許可權,GRANT具體操作詳情見:http://dev.mysql.com/doc/refman/5.1/en/grant.html
4、不放心的話可以在mysql控制台執行 select host, user from user; 檢查一下用戶表裡的內容
7、mysql,伺服器上的mysql沒有開啟遠程埠,我該如何通過我電腦遠程操作它呢?現在要把我本地的
ftp或者sftp可以的吧?
如果表結構有,只是同步數據,
本地:
SELECT * INTO OUTFILE 『tbl_name.bak』 FROM tbl_name;
然後把這個bak文件上專傳到服屬務器上。
LOAD DATA LOW_PRIORITY INFILE 『tbl_name』 REPLACE INTO TABLE tbl_name;
這樣就可以把數據導入了。
如果沒有表結構,那就這邊直接資料庫備份,然後到那邊恢復就行:
本地導出指定的資料庫:
mydqlmp --databases db1 db1>db.bak
伺服器端導入資料庫:
mysql db_name< db.bak -uroot -p
8、如何開啟MySQL的遠程帳號
開啟 MySQL 的遠程登陸帳號有兩大步:
1、確定伺服器上的防火牆沒有阻止 3306 埠。
MySQL 默認的埠是 3306 ,需要確定防火牆沒有阻止 3306 埠,否則遠程是無法通過 3306 埠連接到 MySQL 的。
如果您在安裝 MySQL 時指定了其他埠,請在防火牆中開啟您指定的 MySQL 使用的埠號。
如果不知道怎樣設置您的伺服器上的防火牆,請向您的伺服器管理員咨詢。
2、增加允許遠程連接 MySQL 用戶並授權。
1)首先以 root 帳戶登陸 MySQL
在 Windows 主機中點擊開始菜單,運行,輸入「cmd」,進入控制台,MySQL 的 bin 目錄下,然後輸入下面的命令。
在 Linux 主機中在命令提示行下輸入下面的命令。
CODE: [COPY]
> MySQL -uroot -p123456
123456 為 root 用戶的密碼。
2)創建遠程登陸用戶並授權
CODE: [COPY]
> grant all PRIVILEGES on discuz.* to ted@'123.123.123.123' identified by '123456';
上面的語句表示將 discuz 資料庫的所有許可權授權給 ted 這個用戶,允許 ted 用戶在 123.123.123.123 這個 IP 進行遠程登陸,並設置 ted 用戶的密碼為 123456 。
下面逐一分析所有的參數:
all PRIVILEGES 表示賦予所有的許可權給指定用戶,這里也可以替換為賦予某一具體的許可權,例如:select,insert,update,delete,create,drop 等,具體許可權間用「,」半形逗號分隔。
discuz.* 表示上面的許可權是針對於哪個表的,discuz 指的是資料庫,後面的 * 表示對於所有的表,由此可以推理出:對於全部資料庫的全部表授權為「*.*」,對於某一資料庫的全部表授權為「資料庫名.*」,對於某一資料庫的某一表授 權為「資料庫名.表名」。
ted 表示你要給哪個用戶授權,這個用戶可以是存在的用戶,也可以是不存在的用戶。
123.123.123.123 表示允許遠程連接的 IP 地址,如果想不限制鏈接的 IP 則設置為「%」即可。
123456 為用戶的密碼。
執行了上面的語句後,再執行下面的語句,方可立即生效。
CODE: [COPY]
> flush privileges;
-----------------------------------------------------------------------------------------------------------------
解決方法:
1、改表法:
可能是你的帳號不允許從遠程登陸,只能在localhost。這個時候只要在localhost的那台電腦,登入mysql後,更改 「mysql」 資料庫里的 「user」 表裡的 「host」 項,從「localhost」改稱「%」
x:\>mysql -u root -pvmware
mysql> use mysql;
mysql> update user set host = 『%』 where user = 『root』;
mysql> select host, user from user;
mysql> flush privileges;
註:mysql> flush privileges; 使修改生效。
2、授權法:
例如,你想myuser使用mypassword從任何主機連接到mysql伺服器的話。
mysql> GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
如果你想允許用戶myuser從ip為192.168.1.3的主機連接到mysql伺服器,並使用mypassword作為密碼
mysql> GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY 'mypassword』 WITH GRANT OPTION;
轉自:http://hi.baidu.com/593313600/blog/item/52c13d3d4640d208baa167cf.html/cmtid/df0698f382f04d5d352acce8
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
二、問如何開啟MySQL的遠程連接
Q:
最近學習PHP,裝了個phpwind論壇和FTP流量插件,需要遠程連接MySQL資料庫.不知道如何打開本地伺服器的遠程連接.現在本地伺服器上的論壇和FTP流量插件都運行正常,在另一台伺服器上安裝插件,連不上資料庫.到PW官方求助沒人回貼.因此來這尋求幫助.
伺服器信息
PHP程式版本: 4.3.11
MySQL 版本: 4.1.10-nt
伺服器端信息: Microsoft-IIS/5.0
裝有phpMyAdmin
A1:
遠程連接到MySQL需要做的
1. 進入MySQL,創建一個新用戶xuys:
格式: grant 許可權 on 資料庫名.表名 用戶@登錄主機 identified by "用戶密碼";
grant select,update,insert,delete on *.* to [email protected] identified by "xuys1234";
查看結果,執行:
use mysql;
select host,user,password from user;
可以看到在user表中已有剛才創建的xuys用戶,host欄位表示登錄的主機,其值可以用IP,也可用主機名,將host欄位的值改為%就表示在任何客戶端機器上能以xuys用戶登錄到MySQL伺服器,建議在開發時設為%.
update user set host = '%' where user = 'xuys';
2.
./mysqladmin -u root -p pwd reload
./mysqladmin -u root -p pwd shutdown
3.
./mysqld_safe --user=root &
記住: 對授權表的任何修改都需要重新reload,即執行第3步.
如果經過以上3個步驟還是無法從客戶端連接,請執行以下操作,在MySQL資料庫的db表中插入一條記錄:
use mysql;
insert into db values('192.168.88.234','%','xuys','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
update db set host = '%' where user = 'xuys';
重復執行上面的第2,3步.
A2:
Web與MySQL資料庫分離開來是一個不錯的選擇,避免因為大量的資料庫查詢佔用CPU而使Web資源不足,同時可以使Web伺服器的資源盡最大的提供瀏覽服務,而資料庫伺服器單獨的只處理資料庫事務.
我對這方面的原理不甚太十分了解,我的做法其實就是下面要說的,很簡單.大家有更好的經驗和技巧不妨提出來分享一下.
適用范圍: 擁有獨立主機許可權
硬體配置: 兩台伺服器,至於具體伺服器硬體配置就不在本文范圍內了
其中: A為Web伺服器(假設IP為: 192.192.192.192),B為MySQL數據伺服器(假設IP為: 168.168.168.168)
著手動作:
1. 在Web伺服器A配置好Web服務.關於這方面文章很多了.假設Web伺服器的IP為: 192.192.192.192
2. 在資料庫伺服器B安裝好MySQL服務
3. 現在新版的MySQL一般默認都不允許遠程連接的,需要建立遠程連接賬號才可以
以命令行方式使用root賬號進入MySQL
mysql -u root -p pass
選擇進入MySQL資料庫
use mysql;
查看所有存在的賬號和地址
SELECT `Host`,`User` FROM `user`;
比如我的就是:
+------------+-------+
| Host | User |
+------------+-------+
| localhost | |
| localhost | pma |
| localhost | root |
+------------+-------+
3 rows in set (0.00 sec)
也就是說,存在三個只允許本地連接的(localhost)賬號,分別為root,pma,空用戶.
現在決定讓root具有上面那個Web伺服器A的遠程鏈接的許可權,那麼就這樣:
UPDATE `user` SET `Host` = '192.192.192.192' WHERE `User` = 'root' LIMIT 1;
這樣192.192.192.192這台Web伺服器就可以遠程連接到這個資料庫伺服器了,假如你想讓任何遠程機器都可以連接這個資料庫,就將192.192.192.192換為%,不過不建議這樣做,原因你知道啦!
假如你想新建一個用戶new_user具備遠程鏈接的許可權的話,就這樣:
INSERT INTO `user` ( `Host` , `User` , `Password` , `Select_priv` , `Insert_priv` , `Update_priv` , `Delete_priv` , `Create_priv` , `Drop_priv` , `Reload_priv` , `Shutdown_priv` , `Process_priv` , `File_priv` , `Grant_priv` , `References_priv` , `Index_priv` , `Alter_priv` , `Show_db_priv` , `Super_priv` , `Create_tmp_table_priv` , `Lock_tables_priv` , `Execute_priv` , `Repl_slave_priv` , `Repl_client_priv` , `ssl_type` , `ssl_cipher` , `x509_issuer` , `x509_subject` , `max_questions` , `max_updates` , `max_connections` ) VALUES ('192.192.192.192', 'new_user', PASSWORD( 'new_user_password' ) , 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', '', '', '', '', '0', '0', '0');
將new_user改為你想要的名字就可以了,密碼是: new_user_password,當然你可以隨意設置.
當你的資料庫可以遠程連接後,你就可以在你的Web伺服器的論壇config.inc.php中設置$dbhost變數為你的MySQL資料庫伺服器B的IP了:
$dbhost = '168.168.168.168';
實際操作中,最好兩台機器在同一個機房的同一網段/防火牆內.當然如果有可能的話,將資料庫伺服器放置於Web伺服器網路內的區域網中就更好了.
Q3:
還是這樣簡潔些:
grant all on yourdb.* to yourUsername@yourHost identified by "yourPassword";
flush privileges; //使許可權立刻生效
9、mysql怎麼開啟遠程連接
一、連接遠程資料庫:
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>
10、伺服器mysql怎麼配置才能遠程連接
設置復mysql資料庫遠程連接:
Windows系統
1、 停止制mysql的服務。
2、 進入命令窗口,然後進入MySQL的安裝目錄,比如我的安裝目錄是c:\mysql,進入c:\mysql\bin
3、 進入mysql資料庫伺服器
c:\mysql\bin>mysql –u root –p hkgt123
4、 選中資料庫mysql :use mysql
5、 查詢mysql資料庫中的用戶:
Select host,user,password from mysql;
6、 授權給root用戶可以從任何主機使用密碼為』hkgt123』登錄MYSQL資料庫:
GRANT ALL PRIVILEGES ON *.* TO root@』%』 IDENTIFIED BY 『hkgt123』 WITH GRANT OPTION;
7、 提交:commit;
8、 刷新許可權:flush privileges;