在公司工作中,會遇到mysql資料庫存儲於某個人的電腦上,大家要想連接mysql服務,裝有mysql服務的電腦就必須開啟遠程連接。 其實不僅僅是區域網,只要你有資料庫所在伺服器的公網IP地址都能連上。 一. 授權 1. 連接資料庫 mysql -uroot -p 2.選擇系統庫,mysql use ...
工作中,遇到mysql資料庫存儲於我的電腦上,而其他電腦需要共同進行讀寫數據(類似redis併發),所以我的電腦就必須開啟mysql遠程連接。
一. 授權
1. 連接資料庫
mysql -uroot -p
2.選擇系統庫,mysql
use mysql;
當然你也可以看看你mysql里,都創建了哪些庫 : show databases;
3. 授權
開放遠程連接許可權:
grant all privileges on . to ‘root’@’%’ identified by ‘root’ with grant option;
說明:
grant [許可權] on [database.table] to [用戶名]@[IP] identified by [密碼];
(1)在伺服器上開放資料庫埠,一般是開放3306埠,具體埠根據設置的不同而不同。
(2)開放資料庫遠程連接許可權,可以指定給哪個資料庫的哪個表開放許可權給哪個用戶,還可以指定特定的IP地址才能遠程登陸
4.刷新許可權
flush privileges;
不放心還可以查看一下:
select host,user from user;
二.測試
授權區域網IP:192.168.3.189
我的地址IP:
三、禁止許可權,刪除用戶
1.禁止遠程用戶的所有許可權(可以連接資料庫,但不能增刪改查)
刪除用戶許可權:
revoke all on [database.table] from [user];
沒有任何許可權了:
2.刪除用戶許可權(登錄都登錄不了了)
刪除用戶及許可權:
drop user 用戶名@許可權;
四、彙總及補充
MySql中添加用戶,新建資料庫,用戶授權,刪除用戶,修改密碼(註意每行後邊都跟個;表示一個命令語句結束):
1.新建用戶
1.1 登錄MYSQL:
@>mysql -u root -p
@>密碼
1.2 創建用戶:
mysql> insert into mysql.user(Host,User,Password) values("localhost","test",password("1234"));
這樣就創建了一個名為:test 密碼為:1234 的用戶。
註意:此處的"localhost",是指該用戶只能在本地登錄,不能在另外一臺機器上遠程登錄。如果想遠程登錄的話,將"localhost"改為"%",表示在任何一臺電腦上都可以登錄。也可以指定某台機器可以遠程登錄。
1.3 然後登錄一下:
mysql>exit;
@>mysql -u test -p
@>輸入密碼
mysql>登錄成功
2.為用戶授權
授權格式:grant 許可權 on 資料庫.* to 用戶名@登錄主機 identified by "密碼";
2.1 登錄MYSQL(有ROOT許可權),這裡以ROOT身份登錄:
@>mysql -u root -p
@>密碼
2.2 首先為用戶創建一個資料庫(testDB):
mysql>create database testDB;
2.3 授權test用戶擁有testDB資料庫的所有許可權(某個資料庫的所有許可權):
mysql>grant all privileges on testDB.* to test@localhost identified by '1234';
mysql>flush privileges;//刷新系統許可權表
格式:grant 許可權 on 資料庫.* to 用戶名@登錄主機 identified by "密碼";
2.4 如果想指定部分許可權給一用戶,可以這樣來寫:
mysql>grant select,update on testDB.* to test@localhost identified by '1234';
mysql>flush privileges; //刷新系統許可權表
2.5 授權test用戶擁有所有資料庫的某些許可權:
mysql>grant select,delete,update,create,drop on *.* to test@"%" identified by "1234";
//test用戶對所有資料庫都有select,delete,update,create,drop 許可權。
//@"%" 表示對所有非本地主機授權,不包括localhost。(localhost地址設為127.0.0.1,如果設為真實的本地地址,不知道是否可以,沒有驗證。)
//對localhost授權:加上一句grant all privileges on testDB.* to test@localhost identified by '1234';即可。
3. 刪除用戶
@>mysql -u root -p
@>密碼
mysql>Delete FROM user Where User='test' and Host='localhost';
mysql>flush privileges;
mysql>drop database testDB; //刪除用戶的資料庫
刪除賬戶及許可權:>drop user 用戶名@'%';
>drop user 用戶名@ localhost;
4. 修改指定用戶密碼
@>mysql -u root -p
@>密碼
mysql>update mysql.user set password=password('新密碼') where User="test" and Host="localhost";
mysql>flush privileges;
5. 列出所有資料庫
mysql>show database;
6. 切換資料庫
mysql>use '資料庫名';
7. 列出所有表
mysql>show tables;
8. 顯示數據表結構
mysql>describe 表名;
9. 刪除資料庫和數據表
mysql>drop database 資料庫名;
mysql>drop table 數據表名;