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.關於mysql的3306埠
一次在伺服器上新裝
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 是按照資料結構來組織 儲存 管理資料的倉庫。資料庫分大型資料庫和小型資料庫,資料庫的大小不是按照軟體大小來定義的,而是根據資料庫能儲存的資料量,大型資料庫儲存的資料很多,但隨著資料量的增加資料提取速度不會明顯下降。資料庫中資料以 形式出現,每行是記錄,每列是各個...