一般在為MySql創(chuàng)建用戶時(shí)建議使用GRANT前臺(tái)命令,當(dāng)然如果對(duì)我們開發(fā)者而言,方法還有很多種,比如使用INSERT命令,甚至是直接修改mysql user數(shù)據(jù)表,但仍然建議按照MySQL規(guī)范去授權(quán)賬戶。因?yàn)樗菀淄洠貏e整理方便參考。

成都創(chuàng)新互聯(lián)專業(yè)提供成都主機(jī)托管四川主機(jī)托管成都服務(wù)器托管四川服務(wù)器托管,支持按月付款!我們的承諾:貴族品質(zhì)、平民價(jià)格,機(jī)房位于中國(guó)電信/網(wǎng)通/移動(dòng)機(jī)房,中國(guó)電信成都樞紐中心服務(wù)有保障!
1、登錄MySQL
輸入mysql -u root和密碼即可登錄到Mysql。
2、選擇數(shù)據(jù)庫(kù)
語(yǔ)句如下:use mysql;
3、在mysql的user表中增加連接用戶
GRANT USAGE ON *.* TO 'username'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
其中:
“username”替換為將要授權(quán)的用戶名,比如clientusr;
“password”替換為clientusr設(shè)置的密碼;
4、可訪問數(shù)據(jù)表授權(quán)
創(chuàng)建好帳戶之后,就開始給上面的common user進(jìn)行數(shù)據(jù)表授權(quán),步驟3中增加的連接用戶默認(rèn)權(quán)限都是“N”的,必須在db表中為該帳戶授權(quán),允許其訪問專用數(shù)據(jù)庫(kù),當(dāng)然超級(jí)用戶就不說了。
使用下面語(yǔ)句:
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON dbx.* TO 'username'@'localhost' IDENTIFIED BY 'password';
本語(yǔ)句中的權(quán)限根據(jù)實(shí)際需要確定:
"dbx"替換為授權(quán)訪問的數(shù)據(jù)庫(kù)名,如果只給某張表授權(quán):dbx.tablename
"username"是步驟2授權(quán)用戶名
"password"是步驟2授權(quán)用戶的設(shè)置密碼
這樣就為該用戶授予了對(duì)某數(shù)據(jù)表的SELECT, INSERT, UPDATE, DELETE, CAREATE, DROP權(quán)限。
5、生效授權(quán),創(chuàng)建完畢
FLUSH PRIVILEGES;
備注:
1、不要直接使用INSERT語(yǔ)句添加user記錄,使用INSERT可能出現(xiàn):ERROR 1364 (HY000): Field 'ssl_cipher' doesn't have a default value錯(cuò)誤。不過早期的MYSQL版本筆者倒沒出現(xiàn)這個(gè)錯(cuò)誤,因?yàn)樘炀壱恢倍际侵苯有薷膗ser表或直接使用INSERT語(yǔ)句完成,后來升級(jí)MYSQL到5.1的時(shí)候,發(fā)現(xiàn)可能會(huì)出現(xiàn)這個(gè)錯(cuò)誤。
2、上文3和4,也可使用一句話GRANT ALL ON tbx.* TO 'username' IDENTIFIED BY 'password',這句話會(huì)自動(dòng)創(chuàng)建username并為之授權(quán)。更多授權(quán)權(quán)限可參考MYSQL官方網(wǎng)站。
MySQL命令行能否實(shí)現(xiàn)新建用戶呢?答案無疑是肯定的。而且在使用使用MySQL命令行新建用戶后,還可以為用戶授予權(quán)限。
首先要聲明一下:一般情況下,修改MySQL密碼,授權(quán),是需要有mysql里的root權(quán)限的。
注:本操作是在WIN命令提示符下,phpMyAdmin同樣適用。
用戶:phplamp
用戶數(shù)據(jù)庫(kù):phplampDB
1.MySQL命令行新建用戶
//登錄MYSQL
@mysql -u root -p
@密碼
//創(chuàng)建用戶
mysql insert into mysql.user(Host,User,Password) values('localhost','phplamp',password('1234'));
//刷新系統(tǒng)權(quán)限表
mysqlflush privileges;
這樣就創(chuàng)建了一個(gè)名為:phplamp 密碼為:1234 的用戶。
//退出后登錄一下
mysqlexit;
@mysql -u phplamp -p
@輸入密碼
mysql登錄成功
2.MySQL命令行為用戶授權(quán)
//登錄MYSQL(有ROOT權(quán)限)。我里我以ROOT身份登錄.
@mysql -u root -p
@密碼
//首先為用戶創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)(phplampDB)
mysqlcreate database phplampDB;
//授權(quán)phplamp用戶擁有phplamp數(shù)據(jù)庫(kù)的所有權(quán)限
@grant all privileges on phplampDB.* to phplamp@localhost identified by '1234'; //這里需要注意,如果發(fā)現(xiàn)找不到用戶,需要執(zhí)行命令 flush privilieges;
//刷新系統(tǒng)權(quán)限表
mysqlflush privileges;
mysql其它操作
//如果想指定部分權(quán)限給一用戶,可以這樣來寫:
mysqlgrant select,update on phplampDB.* to phplamp@localhost identified by '1234';
//刷新系統(tǒng)權(quán)限表。
mysqlflush privileges;
mysql grant 權(quán)限1,權(quán)限2,…權(quán)限n on 數(shù)據(jù)庫(kù)名稱.表名稱 to 用戶名@用戶地址 identified by ‘連接口令’;
權(quán)限1,權(quán)限2,…權(quán)限n代表select,insert,update,delete,create,drop,index,alter,grant,references,reload,shutdown,process,file等14個(gè)權(quán)限。
當(dāng)權(quán)限1,權(quán)限2,…權(quán)限n被all privileges或者all代替,表示賦予用戶全部權(quán)限。
當(dāng)數(shù)據(jù)庫(kù)名稱.表名稱被*.*代替,表示賦予用戶操作服務(wù)器上所有數(shù)據(jù)庫(kù)所有表的權(quán)限。
用戶地址可以是localhost,也可以是ip地址、機(jī)器名字、域名。也可以用’%'表示從任何地址連接。
‘連接口令’不能為空,否則創(chuàng)建失敗。
例如:
mysqlgrant select,insert,update,delete,create,drop on vtdc.employee to joe@10.163.225.87 identified by ‘123′;
給來自10.163.225.87的用戶joe分配可對(duì)數(shù)據(jù)庫(kù)vtdc的employee表進(jìn)行select,insert,update,delete,create,drop等操作的權(quán)限,并設(shè)定口令為123。
mysqlgrant all privileges on vtdc.* to joe@10.163.225.87 identified by ‘123′;
給來自10.163.225.87的用戶joe分配可對(duì)數(shù)據(jù)庫(kù)vtdc所有表進(jìn)行所有操作的權(quán)限,并設(shè)定口令為123。
mysqlgrant all privileges on *.* to joe@10.163.225.87 identified by ‘123′;
給來自10.163.225.87的用戶joe分配可對(duì)所有數(shù)據(jù)庫(kù)的所有表進(jìn)行所有操作的權(quán)限,并設(shè)定口令為123。
mysqlgrant all privileges on *.* to joe@localhost identified by ‘123′;
給本機(jī)用戶joe分配可對(duì)所有數(shù)據(jù)庫(kù)的所有表進(jìn)行所有操作的權(quán)限,并設(shè)定口令為123。
角色一個(gè)表,用戶一個(gè)表,在建一個(gè)表3個(gè)字段id,角色表id,用戶表id,
用戶去選擇什么樣的角色,,后臺(tái)做一個(gè)創(chuàng)建角色的功能,更用戶來匹配
一、連接MySQL
格式: mysql -h主機(jī)地址 -u用戶名 -p用戶密碼
1、 連接到本機(jī)上的MYSQL。
首先打開DOS窗口,然后進(jìn)入目錄mysql\bin,再鍵入命令mysql -u root -p,回車后提示你輸密碼.注意用戶名前可以有空格也可以沒有空格,但是密碼前必須沒有空格,否則讓你重新輸入密碼.
如果剛安裝好MYSQL,超級(jí)用戶root是沒有密碼的,故直接回車即可進(jìn)入到MYSQL中了,MYSQL的提示符是: mysql
2、連接到遠(yuǎn)程主機(jī)上的MYSQL。假設(shè)遠(yuǎn)程主機(jī)的IP為:110.110.110.110,用戶名為root,密碼為abcd123。則鍵入以下命 令:
mysql -h110.110.110.110 -u root -p 123;(注:u與root之間可以不用加空格,其它也一樣)
3、 退出MYSQL命令: exit (回車)
二、修改密碼
格式:mysqladmin -u用戶名 -p舊密碼 password 新密碼。 例如
1、 給root加個(gè)密碼ab12。首先在DOS下進(jìn)入目錄mysql\bin,然后鍵入以下命令
mysqladmin -u root -password ab12
2、 再將root的密碼改為djg345。
mysqladmin -u root -p ab12 password ******
三、創(chuàng)建數(shù)據(jù)庫(kù)
1、 CREATE DATABASE 數(shù)據(jù)庫(kù)名;
2、 GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER ON 數(shù)據(jù)庫(kù)名.* TO 數(shù)據(jù)庫(kù)名@localhost IDENTIFIED BY '密碼';
3、 SET PASSWORD FOR
'數(shù)據(jù)庫(kù)名'@'localhost' = OLD_PASSWORD('密碼');
依次執(zhí)行3個(gè)命令完成數(shù)據(jù)庫(kù)創(chuàng)建。注意:中文 “密碼”和“數(shù)據(jù)庫(kù)”是戶自己需要設(shè)置的。
—————————————————————————————————————————————
現(xiàn)在介紹一些常用的MYSQL命令
注意:你必須首先登錄到MYSQL中,以下操作都是在MYSQL的提示符下進(jìn)行的,而且每個(gè)命令以分號(hào)結(jié)束。
一、操作技巧
1、如果你打命令時(shí),回車后發(fā)現(xiàn)忘記加分號(hào),你無須重打一遍命令,只要打個(gè)分號(hào)回車就可以了。
也就是說你可以把一個(gè)完整的命令分成幾行來打,完后用分號(hào)作結(jié)束標(biāo)志就OK。
2、你可以使用光標(biāo)上下鍵調(diào)出以前的命令。
二、常用命令
1、顯示當(dāng)前數(shù)據(jù)庫(kù)服務(wù)器中的數(shù)據(jù)庫(kù)列表:
mysql SHOW DATABASES;
2、建立數(shù)據(jù)庫(kù):
mysql CREATE DATABASE 庫(kù)名;
3、建立數(shù)據(jù)表:
mysql USE 庫(kù)名;
mysql CREATE TABLE 表名 (字段名 VARCHAR(20), 字段名 CHAR(1));
4、刪除數(shù)據(jù)庫(kù):
mysql DROP DATABASE 庫(kù)名;
5、刪除數(shù)據(jù)表:
mysql DROP TABLE 表名;
6、將表中記錄清空:
mysql DELETE FROM 表名;
7、往表中插入記錄:
mysql INSERT INTO 表名 VALUES ("hyq","M");
8、更新表中數(shù)據(jù):
mysql- UPDATE 表名 SET 字段名1='a',字段名2='b' WHERE 字段名3='c';
9、用文本方式將數(shù)據(jù)裝入數(shù)據(jù)表中:
mysql LOAD DATA LOCAL INFILE "D:/mysql.txt" INTO TABLE 表名;
10、導(dǎo)入.sql文件命令:
mysql USE 數(shù)據(jù)庫(kù)名;
mysql SOURCE d:/mysql.sql;
11、命令行修改root密碼:
mysql UPDATE mysql.user SET password=PASSWORD('新密碼') WHERE User='root';
mysql FLUSH PRIVILEGES;
三、一個(gè)建庫(kù)和建表以及插入數(shù)據(jù)的實(shí)例
drop database if exists school; //如果存在sudu則刪除
create database sudu; //建立庫(kù)sudu
use school; //打開庫(kù)sudu
create table teacher //建立表TEACHER
(
id int(3) auto_increment not null primary key,
name char(10) not null,
address varchar(50) default '深圳',
year date
); //建表結(jié)束
//以下為插入字段
insert into teacher values('','allen','飛數(shù)科技1','2005-10-10');
insert into teacher values('','jack','飛數(shù)科技2','2005-12-23');如果你在mysql提示符鍵入上面的命令也可以,但不方便調(diào)試。
(1)你可以將以上命令原樣寫入一個(gè)文本文件中,假設(shè)為sudu.sql,然后復(fù)制到c:\\下,并在DOS狀態(tài)進(jìn)入目錄\mysql\bin,然后鍵入以下命令:
mysql -uroot -p密碼 c:\sudu.sql
如果成功,空出一行無任何顯示;如有錯(cuò)誤,會(huì)有提示。(以上命令已經(jīng)調(diào)試,你只要將//的注釋去掉即可使用)。
(2)或者進(jìn)入命令行后使用 mysql source c:\sudu.sql; 也可以將sudu.sql文件導(dǎo)入數(shù)據(jù)庫(kù)中。
四、將文本數(shù)據(jù)轉(zhuǎn)到數(shù)據(jù)庫(kù)中
1、文本數(shù)據(jù)應(yīng)符合的格式:字段數(shù)據(jù)之間用tab鍵隔開,null值用\n來代替.例:
3 rose 飛數(shù)科技1 1976-10-10
4 mike 飛數(shù)科技2 1975-12-23
假設(shè)你把這兩組數(shù)據(jù)存為速度sudu.txt文件,放在c盤根目錄下。
2、數(shù)據(jù)傳入命令 load data local infile "c:\sudu.txt" into table 表名;
注意:你最好將文件復(fù)制到\mysql\bin目錄下,并且要先用use命令打表所在的庫(kù)。
五、備份數(shù)據(jù)庫(kù):(命令在DOS的\mysql\bin目錄下執(zhí)行)
1.導(dǎo)出整個(gè)數(shù)據(jù)庫(kù)
導(dǎo)出文件默認(rèn)是存在mysql\bin目錄下
mysqldump -u 用戶名 -p 數(shù)據(jù)庫(kù)名 導(dǎo)出的文件名
mysqldump -u user_name -p123456 database_name outfile_name.sql
2.導(dǎo)出一個(gè)表
mysqldump -u 用戶名 -p 數(shù)據(jù)庫(kù)名 表名 導(dǎo)出的文件名
mysqldump -u user_name -p database_name table_name outfile_name.sql
3.導(dǎo)出一個(gè)數(shù)據(jù)庫(kù)結(jié)構(gòu)
mysqldump -u user_name -p -d --add-drop-table database_name outfile_name.sql
-d 沒有數(shù)據(jù) --add-drop-table 在每個(gè)create語(yǔ)句之前增加一個(gè)drop table
4.帶語(yǔ)言參數(shù)導(dǎo)出
mysqldump -uroot -p --default-character-set=latin1 --set-charset=gbk --skip-opt database_name outfile_name.sql
本文標(biāo)題:mysql怎么建庫(kù)給用戶 創(chuàng)建mysql庫(kù)
文章網(wǎng)址:http://www.chinadenli.net/article28/dopjojp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google、網(wǎng)站設(shè)計(jì)、企業(yè)建站、外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)公司、品牌網(wǎng)站設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)