概述
原文地址:MySQL安装与配置
作者:庖丁解牛
文档:
http://dev.mysql.com/doc/
v5.1文档: http://downloads.mysql.com/docs/refman-5.1-en.a4.pdf
一、安装
$ sudo apt-get install mysql-admin mysql-server-5.1 mysql-client-5.1
二、数据库保存位置
/var/lib/mysql
三、数据库导入导出
1.导出
1.1 导出数据库
$ mysql -u root -p --max_allowed_packet=1000M wikidb < wikidb.sql
四、数据库操作
$ mysql -u root -p
或者:
$ mysql -uroot -pYOUR_PASSWORD
进入到mysql>的界面
1. 新建数据库
mysql> create database DB_NAME;
如:
mysql> create database wikidb;
2. 显示数据库
mysql> show databases;
3. 显示表
mysql> show tables;
4. 修改口令
4.1 修改root口令
$ mysqladmin -u root -p password "NEW_PASSWORD"
如:
$ mysqladmin -u root -p password "abc"
新口令为:abc
4.2 修改其他用户口令
mysql> update mysql.user set password=password('123') where user="root" and host="localhost";
mysql> flush privileges;
4.3 遗忘root口令
5. 用户操作
5.1 创建用户
mysql> CREATE USER wikiuser IDENTIFIED BY '123 ' ;
创建wikiuser的用户,指定口令为123
5.2 给用户授权
mysql>GRANT all on db.* TO user@% IDENTIFIED BY 'password';
mysql>FLUSH PRIVILEGES;
5.3 显示所有用户
mysql> select user,host,password from mysql.user;
5.4 显示连接用户
mysql> select user();
5.5 删除用户
mysql> delete from mysql.user where user="bugzilla3" and host="localhost";
MySQL中文參考手冊-權限
1 權限系統做什麼
MySQL權限系統的主要功能是証實連接到一台給定主機的一個用戶,並且賦予該用戶在一個資料庫上select、 insert、update和delete的權限。
附加的功能包括有一個匿名的用戶和對於MySQL特定的功能例如LOAD DATA INFILE進行授權及管理操作的能力。
2 MySQL 用戶名和密碼
由MySQL使用用戶名和密碼的方法與Unix或Windows使用的方式有很多不同之處:
* MySQL使用於認証目的的用戶名,與Unix用戶名(登錄名字)或Windows用戶名無關。
* MySQL用戶名最長可以是16各字符﹔典型地,Unix用戶名限制為8個字符。
* MySQL密碼與Unix密碼沒關系。在你使用登錄到一台Unix機器密碼和你使用在那台機器上存取一個資料庫的密碼之間沒有必要有關聯。
* MySQL加密密碼使用了一個Unix登錄期間所用的不同算法,使用 PASSWORD()和ENCRYPT()函數部分。
3 使你的密碼安全
以一種暴露的可被其他用戶發現的方式指定你的密碼是不妥當的。當你咝锌蛻舫淌綍r,你可以使用下列方法指定你的密碼,還有每個方法的風險評估:
* 使用一個在命令行上-pyour_pass或--password=your_pass的選項。這很方便但是不安全,因為你的密碼對系統狀態程式(例如ps)變得可見,它可以被其他的用戶調用來顯示命令行。(一般MySQL客戶在他們的初始化順序期間用零覆蓋命令行參數,但是仍然有一個短暫間隔時間內參數值可見的。)
* 使用一個-p或--password選項(沒有指定your_pass值)。在這種情況下,客戶程式請求來自終端的密碼:
shell>mysql - u user_name - p
Enter password: ********
客戶回應“*”字符到作為輸入你的密碼的終端使得旁觀者不能看見它。因為它對其他用戶不可見,與在命令行上指定它相比,這樣進入你的密碼更安全。然而,這個輸入一個密碼的方法僅僅為你交互式咝谐淌绞呛线m的。如果你想要從非交互式咝械囊粋腳本調用一個客戶,就沒有從終端輸入入密碼的機會。
4 MySQL提供的權限
權限資訊用user、db、host、tables_priv和columns_priv表被儲存在mysql資料庫中(即在名為mysql的資料庫中)。在MySQL啟動時和在6.9 權限修改何時生效所說的情況時,伺服器讀入這些資料庫表內容。
5 權限系統工作原理
MySQL權限系統保証所有的用戶可以嚴格地做他們假定被允許做的事情。當你連接一個MySQL伺服器時, 你的身份由你從那連接的主機和你指定的用戶名來決定,系統根據你的身份和你想做什麼來授予權限。
MySQL在認定身份中考慮你的主機名和用戶名字,是因為有很小的原因假定一個給定的用戶在網際網路上屬於同一個人。例如,用戶從whitehouse.gov連接的bill不必和從mosoft.com連接bill是同一個人。 MySQL通過允許你區分在不同的主機上碰巧有同樣名字用戶來處理它:你可以對從whitehouse.gov連接授與bill一個權限集,而為從microsoft.com的連接授予一個不同的權限集。
MySQL存取控制包含2個階段:
* 階段1:伺服器檢查你是否允許連接。
* 階段2:假定你能連接,伺服器檢查你發出的每個請求。看你是否有足夠的權限實施它。例如,如果你從資料庫中一個表選取 (select)行或從資料庫拋棄一個表,伺服器確定你對表有select權限或對資料庫有drop權限。
6 存取控制, 階段1:連接証實
當你試圖聯接一個MySQL伺服器時,伺服器基於你的身份和你是否能通過供應正確的密碼驗証身份來接受或拒絕連接。如果不是,伺服器完全具結你的存取,否則,伺服器接受連接,然後進入階段2並且等待請求。
你的身份基於2個資訊:
* 你從那個主機連接
* 你的MySQL用戶名
身份檢查使用3個user表(Host, User和Password)範圍字段執行。伺服器只有在一個user表條目匹配你的主機名和用戶名並且你提供了正確的密碼時才接受連接。
在user表範圍字段可以如下被指定:
* 一個Host值可以是主機名或一個IP數字,或'localhost'指出本地主機。
* 你可以在Host字段裡使用通配符字符“%”和“_”。
* 一個Host值'%'匹配任何主機名,一個空白Host值等價於'%'。注意這些值匹配能創建一個連接到你的伺服器的任何主機!
* 通配符字符在User字段中不允許,但是你能指定空白的值,它匹配任何名字。如果user表匹配到來的連接的條目有一個空白的用戶名,用戶被認為是匿名用戶(沒有名字的用戶),而非客戶實際指定的名字。這意味著一個空白的用戶名被用於在連接期間的進一步的存取檢查(即,在階段2期間)。
* Password字段可以是空白的。這不意味著匹配任何密碼,它意味著用戶必須不指定一個密碼進行連接。
非
7 存取控制,階段2:請求証實
一旦你建立了一個連接,伺服器進入階段2。對在此連接上進來的每個請求,伺服器檢查你是否有足夠的權限來執行它,它基於你希望執行的操作類型。這正是在授權表中的權限字段發揮作用的地方。這些權限可以來子user、db、host、tables_priv或columns_priv表的任何一個。授權表用GRANT和REVOKE命令操作。見7.26 GRANT和REVOKE 句法。(你可以發覺參考6.6 權限系統怎樣工作很有幫助,它列出了在每個權限表中呈現的字段。)
user表在一個全局基礎上授予賦予你的權限,該權限不管當前的資料庫是什麼均適用。例如,如果user表授予你delete權限, 你可以刪除在伺服器主機上從任何資料庫刪除行!換句話說,user表權限是超級用戶權限。只把user表的權限授予超級用戶如伺服器或資料庫主管是明智的。對其他用戶,你應該把在user表中的權限設成'N'並且僅在一個特定資料庫的基礎上授權, 使用db和host表。
db和host表授予資料庫特定的權限。在範圍字段的值可以如下被指定:
* 通配符字符“%”和“_”可被用於兩個表的Host和Db字段。
* 在db表的'%'Host值意味著“任何主機”,在db表中一個空白Host值意味著“對進一步的資訊咨詢host表”。
* 在host表的一個'%'或空白Host值意味著“任何主機”。
* 在兩個表中的一個'%'或空白Db值意味著“任何資料庫”。
* 在兩個表中的一個空白User值匹配匿名用戶。
db和host表在伺服器啟動時被讀取和排序 (同時它讀user表)。db表在Host、Db和User範圍字段上排序,並且host表在Host和Db範圍字段上排序。對於user表,排序首先放置最特定的值然後最後最不特定的值,並且當伺服器尋找匹配入條目時,它使用它找到的第一個匹配。
tables_priv和columns_priv表授予表和列特定的權限。在範圍字段的值可以如下被指定:
* 通配符“%”和“_”可用在使用在兩個表的Host字段。
* 在兩個表中的一個'%'或空白Host意味著“任何主機”。
* 在兩個表中的Db、Table_name和Column_name字段不能包含通配符或空白。
tables_priv和columns_priv表在Host、Db和User字段上被排序。這類似於db表的排序,盡管因為只有Host字段可以包含通配符,但排序更簡單。
8 權限更改何時生效
當mysqld啟動時,所有的授權表內容被讀進儲存器並且從那點生效。
用GRANT、REVOKE或SET PASSWORD對授權表施行的修改會立即被伺服器注意到。
如果你手工地修改授權表(使用INSERT、UPDATE等等),你應該執行一個FLUSH PRIVILEGES語句或咝衜ysqladmin flush-privileges告訴伺服器再裝載授權表,否則你的改變將不生效,除非你重啟伺服器。
當伺服器注意到授權表被改變了時,現存的客戶連接有如下影響:
* 表和列權限在客戶的下一次請求時生效。
* 資料庫權限改變在下一個USE db_name命令生效。
全局權限的改變和密碼改變在下一次客戶連接時生效。
9 建立初始的MySQL權限
你的安裝初始時廣開大門,你首先應該做的事情之一是為MySQL root用戶指定一個密碼。你可以做如下(注意,你使用PASSWORD()函數指定密碼):
shell> mysql -u root mysql
mysql> UPDATE user SET Password=PASSWORD('new_password')
WHERE user='root';
mysql> FLUSH PRIVILEGES;
在MySQL 3.22和以上版本中,你可以使用SET PASSWORD語句:
shell> mysql -u root mysql
mysql> SET PASSWORD FOR root=PASSWORD('new_password');
設置密碼的另一種方法是使用mysqladmin命令:
shell> mysqladmin -u root password new_password
注意:如果你使用第一種方法在user表裡直接更新密碼,你必須告訴伺服器再次讀入授權表(用FLUSH PRIVILEGES),因為否則改變將不被注意到。
一旦root密碼被設置,此後當你作為root與伺服器連接時,你必須供應那個密碼。
10 向MySQL增加新用戶權限
你可以有2個不同的方法增加用戶:通過使用GRANT語句或通過直接操作MySQL授權表。比較好的方法是使用GRANT語句,因為他們是更簡明並且好像錯誤少些。
下面的例子顯示出如何使用mysql客戶安裝新用戶。這些例子假定權限根據以前的章節描述的內定被安裝。這意味著為了改變,你必須在mysqld正在咝型惶C器上,你必須作為MySQL root用戶連接,並且root用戶必須對mysql資料庫有insert權限和reload管理權限。另外,如果你改變了root用戶密碼,你必須如下的mysql命令指定它。
你可以通過發出GRANT語句增加新用戶:
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權限類型允許你無需權限就可設置一個用戶。它假定你將在以後授予資料庫相關的權限。
你也可以直接通過發出INSERT語句增加同樣的用戶存取資訊,然後告訴伺服器再次裝入授權表:
shell> mysql --user=root mysql
mysql> INSERT INTO user VALUES('localhost','monty',PASSWORD('something'),
'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y')
mysql> INSERT INTO user VALUES('%','monty',PASSWORD('something'),
'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y')
mysql> INSERT INTO user SET Host='localhost',User='admin',
Reload_priv='Y', Process_priv='Y';
mysql> INSERT INTO user (Host,User,Password)
VALUES('localhost','dummy','');
v5.1文档: http://downloads.mysql.com/docs/refman-5.1-en.a4.pdf
一、安装
$ sudo apt-get install mysql-admin mysql-server-5.1 mysql-client-5.1
二、数据库保存位置
/var/lib/mysql
三、数据库导入导出
1.导出
1.1 导出数据库
$ mysqldump -h 服务器 -u 用户名 -p 数据库名 > 导出的文件名
$ mysqldump -u root -p wikidb > wikidb.sql
$ mysqldump -u root -p bugs > bugs.sql
$ mysqldump -h 10.9.10.17 -u root -p bugs > bugs.sql
$ mysqldump -h 10.9.10.17 -u root -p wikidb > wiki.sql
2. 导入$ mysql -u root -p --max_allowed_packet=1000M wikidb < wikidb.sql
四、数据库操作
$ mysql -u root -p
或者:
$ mysql -uroot -pYOUR_PASSWORD
进入到mysql>的界面
1. 新建数据库
mysql> create database DB_NAME;
如:
mysql> create database wikidb;
2. 显示数据库
mysql> show databases;
3. 显示表
mysql> show tables;
4. 修改口令
4.1 修改root口令
$ mysqladmin -u root -p password "NEW_PASSWORD"
如:
$ mysqladmin -u root -p password "abc"
新口令为:abc
4.2 修改其他用户口令
mysql> update mysql.user set password=password('123') where user="root" and host="localhost";
mysql> flush privileges;
4.3 遗忘root口令
如果忘记了MySQL的root密码,可以用以下方法重新设置:
a. 停止mysql服务
$ sudo service mysql stop(正确)
b. 用以下命令启动MySQL,以不检查权限的方式启动;
$ sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables &
c. 然后用空密码方式使用root用户登录 MySQL;
$ sudo /usr/local/mysql/bin/mysql -uroot -p
d. 修改root用户的密码;
mysql> update mysql.user set password=password("123456") where user="root";
mysql> flush privileges;
mysql> quit
a. 停止mysql服务
$ sudo service mysql stop(正确)
b. 用以下命令启动MySQL,以不检查权限的方式启动;
$ sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables &
c. 然后用空密码方式使用root用户登录 MySQL;
$ sudo /usr/local/mysql/bin/mysql -uroot -p
d. 修改root用户的密码;
mysql> update mysql.user set password=password("123456") where user="root";
mysql> flush privileges;
mysql> quit
5. 用户操作
5.1 创建用户
mysql> CREATE USER wikiuser IDENTIFIED BY '123 ' ;
创建wikiuser的用户,指定口令为123
5.2 给用户授权
mysql>GRANT all on db.* TO user@% IDENTIFIED BY 'password';
mysql>FLUSH PRIVILEGES;
5.3 显示所有用户
mysql> select user,host,password from mysql.user;
5.4 显示连接用户
mysql> select user();
5.5 删除用户
mysql> delete from mysql.user where user="bugzilla3" and host="localhost";
MySQL中文參考手冊-權限
1 權限系統做什麼
MySQL權限系統的主要功能是証實連接到一台給定主機的一個用戶,並且賦予該用戶在一個資料庫上select、 insert、update和delete的權限。
附加的功能包括有一個匿名的用戶和對於MySQL特定的功能例如LOAD DATA INFILE進行授權及管理操作的能力。
2 MySQL 用戶名和密碼
由MySQL使用用戶名和密碼的方法與Unix或Windows使用的方式有很多不同之處:
* MySQL使用於認証目的的用戶名,與Unix用戶名(登錄名字)或Windows用戶名無關。
* MySQL用戶名最長可以是16各字符﹔典型地,Unix用戶名限制為8個字符。
* MySQL密碼與Unix密碼沒關系。在你使用登錄到一台Unix機器密碼和你使用在那台機器上存取一個資料庫的密碼之間沒有必要有關聯。
* MySQL加密密碼使用了一個Unix登錄期間所用的不同算法,使用 PASSWORD()和ENCRYPT()函數部分。
3 使你的密碼安全
以一種暴露的可被其他用戶發現的方式指定你的密碼是不妥當的。當你咝锌蛻舫淌綍r,你可以使用下列方法指定你的密碼,還有每個方法的風險評估:
* 使用一個在命令行上-pyour_pass或--password=your_pass的選項。這很方便但是不安全,因為你的密碼對系統狀態程式(例如ps)變得可見,它可以被其他的用戶調用來顯示命令行。(一般MySQL客戶在他們的初始化順序期間用零覆蓋命令行參數,但是仍然有一個短暫間隔時間內參數值可見的。)
* 使用一個-p或--password選項(沒有指定your_pass值)。在這種情況下,客戶程式請求來自終端的密碼:
shell>mysql - u user_name - p
Enter password: ********
客戶回應“*”字符到作為輸入你的密碼的終端使得旁觀者不能看見它。因為它對其他用戶不可見,與在命令行上指定它相比,這樣進入你的密碼更安全。然而,這個輸入一個密碼的方法僅僅為你交互式咝谐淌绞呛线m的。如果你想要從非交互式咝械囊粋腳本調用一個客戶,就沒有從終端輸入入密碼的機會。
4 MySQL提供的權限
權限資訊用user、db、host、tables_priv和columns_priv表被儲存在mysql資料庫中(即在名為mysql的資料庫中)。在MySQL啟動時和在6.9 權限修改何時生效所說的情況時,伺服器讀入這些資料庫表內容。
5 權限系統工作原理
MySQL權限系統保証所有的用戶可以嚴格地做他們假定被允許做的事情。當你連接一個MySQL伺服器時, 你的身份由你從那連接的主機和你指定的用戶名來決定,系統根據你的身份和你想做什麼來授予權限。
MySQL在認定身份中考慮你的主機名和用戶名字,是因為有很小的原因假定一個給定的用戶在網際網路上屬於同一個人。例如,用戶從whitehouse.gov連接的bill不必和從mosoft.com連接bill是同一個人。 MySQL通過允許你區分在不同的主機上碰巧有同樣名字用戶來處理它:你可以對從whitehouse.gov連接授與bill一個權限集,而為從microsoft.com的連接授予一個不同的權限集。
MySQL存取控制包含2個階段:
* 階段1:伺服器檢查你是否允許連接。
* 階段2:假定你能連接,伺服器檢查你發出的每個請求。看你是否有足夠的權限實施它。例如,如果你從資料庫中一個表選取 (select)行或從資料庫拋棄一個表,伺服器確定你對表有select權限或對資料庫有drop權限。
6 存取控制, 階段1:連接証實
當你試圖聯接一個MySQL伺服器時,伺服器基於你的身份和你是否能通過供應正確的密碼驗証身份來接受或拒絕連接。如果不是,伺服器完全具結你的存取,否則,伺服器接受連接,然後進入階段2並且等待請求。
你的身份基於2個資訊:
* 你從那個主機連接
* 你的MySQL用戶名
身份檢查使用3個user表(Host, User和Password)範圍字段執行。伺服器只有在一個user表條目匹配你的主機名和用戶名並且你提供了正確的密碼時才接受連接。
在user表範圍字段可以如下被指定:
* 一個Host值可以是主機名或一個IP數字,或'localhost'指出本地主機。
* 你可以在Host字段裡使用通配符字符“%”和“_”。
* 一個Host值'%'匹配任何主機名,一個空白Host值等價於'%'。注意這些值匹配能創建一個連接到你的伺服器的任何主機!
* 通配符字符在User字段中不允許,但是你能指定空白的值,它匹配任何名字。如果user表匹配到來的連接的條目有一個空白的用戶名,用戶被認為是匿名用戶(沒有名字的用戶),而非客戶實際指定的名字。這意味著一個空白的用戶名被用於在連接期間的進一步的存取檢查(即,在階段2期間)。
* Password字段可以是空白的。這不意味著匹配任何密碼,它意味著用戶必須不指定一個密碼進行連接。
非
7 存取控制,階段2:請求証實
一旦你建立了一個連接,伺服器進入階段2。對在此連接上進來的每個請求,伺服器檢查你是否有足夠的權限來執行它,它基於你希望執行的操作類型。這正是在授權表中的權限字段發揮作用的地方。這些權限可以來子user、db、host、tables_priv或columns_priv表的任何一個。授權表用GRANT和REVOKE命令操作。見7.26 GRANT和REVOKE 句法。(你可以發覺參考6.6 權限系統怎樣工作很有幫助,它列出了在每個權限表中呈現的字段。)
user表在一個全局基礎上授予賦予你的權限,該權限不管當前的資料庫是什麼均適用。例如,如果user表授予你delete權限, 你可以刪除在伺服器主機上從任何資料庫刪除行!換句話說,user表權限是超級用戶權限。只把user表的權限授予超級用戶如伺服器或資料庫主管是明智的。對其他用戶,你應該把在user表中的權限設成'N'並且僅在一個特定資料庫的基礎上授權, 使用db和host表。
db和host表授予資料庫特定的權限。在範圍字段的值可以如下被指定:
* 通配符字符“%”和“_”可被用於兩個表的Host和Db字段。
* 在db表的'%'Host值意味著“任何主機”,在db表中一個空白Host值意味著“對進一步的資訊咨詢host表”。
* 在host表的一個'%'或空白Host值意味著“任何主機”。
* 在兩個表中的一個'%'或空白Db值意味著“任何資料庫”。
* 在兩個表中的一個空白User值匹配匿名用戶。
db和host表在伺服器啟動時被讀取和排序 (同時它讀user表)。db表在Host、Db和User範圍字段上排序,並且host表在Host和Db範圍字段上排序。對於user表,排序首先放置最特定的值然後最後最不特定的值,並且當伺服器尋找匹配入條目時,它使用它找到的第一個匹配。
tables_priv和columns_priv表授予表和列特定的權限。在範圍字段的值可以如下被指定:
* 通配符“%”和“_”可用在使用在兩個表的Host字段。
* 在兩個表中的一個'%'或空白Host意味著“任何主機”。
* 在兩個表中的Db、Table_name和Column_name字段不能包含通配符或空白。
tables_priv和columns_priv表在Host、Db和User字段上被排序。這類似於db表的排序,盡管因為只有Host字段可以包含通配符,但排序更簡單。
8 權限更改何時生效
當mysqld啟動時,所有的授權表內容被讀進儲存器並且從那點生效。
用GRANT、REVOKE或SET PASSWORD對授權表施行的修改會立即被伺服器注意到。
如果你手工地修改授權表(使用INSERT、UPDATE等等),你應該執行一個FLUSH PRIVILEGES語句或咝衜ysqladmin flush-privileges告訴伺服器再裝載授權表,否則你的改變將不生效,除非你重啟伺服器。
當伺服器注意到授權表被改變了時,現存的客戶連接有如下影響:
* 表和列權限在客戶的下一次請求時生效。
* 資料庫權限改變在下一個USE db_name命令生效。
全局權限的改變和密碼改變在下一次客戶連接時生效。
9 建立初始的MySQL權限
你的安裝初始時廣開大門,你首先應該做的事情之一是為MySQL root用戶指定一個密碼。你可以做如下(注意,你使用PASSWORD()函數指定密碼):
shell> mysql -u root mysql
mysql> UPDATE user SET Password=PASSWORD('new_password')
WHERE user='root';
mysql> FLUSH PRIVILEGES;
在MySQL 3.22和以上版本中,你可以使用SET PASSWORD語句:
shell> mysql -u root mysql
mysql> SET PASSWORD FOR root=PASSWORD('new_password');
設置密碼的另一種方法是使用mysqladmin命令:
shell> mysqladmin -u root password new_password
注意:如果你使用第一種方法在user表裡直接更新密碼,你必須告訴伺服器再次讀入授權表(用FLUSH PRIVILEGES),因為否則改變將不被注意到。
一旦root密碼被設置,此後當你作為root與伺服器連接時,你必須供應那個密碼。
10 向MySQL增加新用戶權限
你可以有2個不同的方法增加用戶:通過使用GRANT語句或通過直接操作MySQL授權表。比較好的方法是使用GRANT語句,因為他們是更簡明並且好像錯誤少些。
下面的例子顯示出如何使用mysql客戶安裝新用戶。這些例子假定權限根據以前的章節描述的內定被安裝。這意味著為了改變,你必須在mysqld正在咝型惶C器上,你必須作為MySQL root用戶連接,並且root用戶必須對mysql資料庫有insert權限和reload管理權限。另外,如果你改變了root用戶密碼,你必須如下的mysql命令指定它。
你可以通過發出GRANT語句增加新用戶:
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權限類型允許你無需權限就可設置一個用戶。它假定你將在以後授予資料庫相關的權限。
你也可以直接通過發出INSERT語句增加同樣的用戶存取資訊,然後告訴伺服器再次裝入授權表:
shell> mysql --user=root mysql
mysql> INSERT INTO user VALUES('localhost','monty',PASSWORD('something'),
'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y')
mysql> INSERT INTO user VALUES('%','monty',PASSWORD('something'),
'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y')
mysql> INSERT INTO user SET Host='localhost',User='admin',
Reload_priv='Y', Process_priv='Y';
mysql> INSERT INTO user (Host,User,Password)
VALUES('localhost','dummy','');
最后
以上就是友好奇异果为你收集整理的[转载]MySQL安装与配置_拔剑-浆糊的传说_新浪博客的全部内容,希望文章能够帮你解决[转载]MySQL安装与配置_拔剑-浆糊的传说_新浪博客所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复