資料庫基礎系列之一 MySQL賬戶

2022-03-12 14:18:43 字數 4573 閱讀 3156

1.mysql使用者建立:

shell> mysql --user=root mysql

mysql> grant all privileges on *.* to monty@localhost 

identified by 'something' with grant option;

mysql> grant all privileges on *.* to monty@"%" 

identified by 'something' with grant option;

mysql> grant reload,process on *.* to admin@localhost;

mysql> grant usage on *.* to dummy@localhost;

這些grant

語句安裝

3個新使用者:

monty

可以從任何地方連線伺服器的乙個完全的超級使用者,但是必須使用乙個口令

'something'

做這個。注意,我們必須對

monty@localhost

和monty@"%"

發出grant

語句。如果我們增加

localhost

條目,對

localhost

的匿名使用者條目在我們從本地主機連線接時由

mysql_install_db

建立的條目將優先考慮,因為它有更特定的

host

字段值,所以以

user

表排列順序看更早到來。

admin

可以從localhost

沒有乙個口令進行連線並且被授予

reload

和process

管理許可權的使用者。這允許使用者執行

mysqladmin reload

、mysqladmin refresh

和mysqladmin flush-*

命令,還有

mysqladmin processlist

。沒有授予資料庫有關的許可權。他們能在以後通過發出另乙個

grant

語句授權。

dummy

可以不用乙個口令連線的乙個使用者,但是只能從本地主機。全域性許可權被設定為

'n'--usage

許可權型別允許你無需許可權就可設定乙個使用者。它假定你將在以後授予資料庫相關的許可權。

2.通過直接修改授權表設定使用者許可權,執行這些命令(注意,在結束時flush privileges)

shell> mysql --user=root mysql

mysql> insert into user (host,user,password) 

values('localhost','custom',password('stupid'));

mysql> insert into user (host,user,password) 

values('server.domain','custom',password('stupid'));

mysql> insert into user (host,user,password) 

values('whitehouse.gov','custom',password('stupid'));

mysql> insert into db 

(host,db,user,select_priv,insert_priv,update_priv,delete_priv, 

create_priv,drop_priv)

values 

('localhost','bankaccount','custom','y','y','y','y','y','y');

mysql> insert into db

(host,db,user,select_priv,insert_priv,update_priv,delete_priv, 

create_priv,drop_priv)

values 

('whitehouse.gov','expenses','custom','y','y','y','y','y','y');

mysql> insert into db 

(host,db,user,select_priv,insert_priv,update_priv,delete_priv, 

create_priv,drop_priv)

values('%','customer','custom','y','y','y','y','y','y');

mysql> flush privileges;

3.改動密碼時有時候會遇到忘記先前的密碼,這時可以採用以下方式:

修改你的

my.ini

配置檔案,

在裡面的

[mysqld]

節中某處加入下面的一行

skip-grant-tables

然後儲存,重啟

mysqld

服務,這樣你可以使用任何使用者名稱以超級管理員的身體登入

mysql

服務了。

然後轉到

mysql

資料庫中修改

user

表:update user set password=password('1234') where user='root';

一定記住要用

password

函式,否則將來將要輸入的密碼是『

1234

』的密文。

最後刪除上面所添中的內容,重啟服務。

另外,如果可以從本機或其它機器上找到可以正常使用的

mysql

資料庫,那麼也可拷貝其

mysql

庫中的檔名為

user

的相關檔案,覆蓋忘記密碼的資料庫中的同名檔案,這樣也能以被拷貝者的賬戶密碼登入。

4.如何設定mysql賬戶使其可以從遠端訪問伺服器

在5.0

版本中,其實有乙個圖形介面的配置嚮導工具,在設定

root

賬戶密碼時,可以選擇是否允許其從遠端訪問。預設情況下是不允許的。

在命令列下,可以有兩種大同小異的方法來作此設定:

(1)mysql>grant all privileges on *.* to root@localhost identified by 'something' with grant option;

mysql>grant all privileges on *.* to root@"%" identified by 'something' with grant option;

第一句增加了乙個

root

使用者授權通過本地機

(localhost)

訪問,密碼「

something

」。第二句則是使用萬用字元,授與

root

使用者從任何其它主機發起的訪問。

(2)亦可直接使用

update

語句修改

user

表:使用

root

使用者或其他使用者登入

mysql

,轉到mysql

資料庫update user set host='localhost' where user='root';

flush privileges;//

只允許root

在本機登入

update user set host='%' where user='root';

flush privileges;//

允許root

遠端訪問

注意,以上一定要加

flush

語句。另外,如果要建新使用者,則用

grant

語句比較方便,記住語句

grant

總是建立新使用者

5.關於mysql3306

一次在伺服器上新裝

5.0.18

時,提示

3306

埠已被占用,強制使用該埠,則發現所連線上的資料庫是

4.1.8

版本,始終無法訪問到新建立的伺服器。後來發現機器上原來裝有乙個

mysql

伺服器,

4.1.8

版本。此時,應重新配置新版本的資料庫,

將埠設為其他的,如

3307

,那麼在訪問時,可以通過加上選項:

--port=3307

來訪問,在

.net

程式中也須將連線字串添上

port=3307,

即可。(以上部分內容**於網路) 

資料庫基礎系列之一 MySQL賬戶

1.mysql使用者建立 shell mysql user root mysql mysql grant all privileges on to monty localhost identified by something with grant option mysql grant all pr...

MySQL資料庫基礎(一)

create database 為使用者自己定義的資料庫名 create table 資料名 資料型別 字尾,資料名 資料型別 字尾 為使用者自己定義的表名 資料型別包括int varchar char 其中varchar和char括號裡的內容為乙個阿拉伯數字,如果將阿拉伯數字傳進去則代表不同的意思...

MySQL資料庫基礎(一)

資料庫概述 資料庫 database 是按照資料結構來組織 儲存 管理資料的倉庫。資料庫分大型資料庫和小型資料庫,資料庫的大小不是按照軟體大小來定義的,而是根據資料庫能儲存的資料量,大型資料庫儲存的資料很多,但隨著資料量的增加資料提取速度不會明顯下降。資料庫中資料以 形式出現,每行是記錄,每列是各個...