您的位置:首页 > 运维架构 > Linux

centos系统下mysql安装部署及用户管理

2016-06-07 16:42 483 查看
确保系统已经联网:

安装mysql

yum install mysql

安装mysql服务器端:

yum install mysql-server

yum install mysql-devel

启动mysql服务:

servicemysqld start或者/etc/init.d/mysqld
start
设置开机启动:

chkconfig --add mysqld

chkconfid mysqld on

查看开机启动设置是否成功chkconfig--list
| grep mysql*

mysqld 0:关闭1:关闭2:启用3:启用4:启用5:启用6:关闭

root用户配置

mysql安装后需要配置root用户密码。

首先关闭mysql

/etc/init.d/mysqldstop 

以安全模式运行

/usr/bin/mysqld_safe --skip-grant-tables >/dev/null 2>&1 &

等待5秒,以root用户登陆:

/usr/bin/mysql-u root mysql

进入mysql命令行,执行:

mysql>update user set password = Password('123') where
User ='root';
将root密码设置为123

刷新一下权限表:

mysql>flush privileges;

现在可以以root用户登陆了:

mysql>mysql-uroot -p

删除匿名用户

安装完MySQL以后会自动创建一个root用户和一个匿名用户,而这个匿名用户只能在本地使用且拥有很高权限。出于安全性的考虑,将匿名用户删除:

以root用户登陆:

mysql-u root -p

mysql>selectuser,host from mysql.user;

可以看到除了root用户还存在用户名为空的用户。

删除匿名用户并刷新一下才能起效:

mysql>delete from mysql.user where user='';

mysql>flush privileges;

用户管理

一,创建用户: 

命令:CREATEUSER 'username'@'host' IDENTIFIED BY 'password'; 

说明:username-你将创建的用户名,host
-指定登陆主机,如果想让该用户可以从任意远程主机登陆,可以使用通配符%.password
- 登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器. 

例子:CREATE USER 'dog'@'localhost' IDENTIFIED BY '123456'; 
CREATEUSER 'pig'@'192.168.1.101_' IDENDIFIED BY '123456'; 
CREATEUSER 'pig'@'%' IDENTIFIED BY '123456'; 
CREATEUSER 'pig'@'%' IDENTIFIED BY ''; 
CREATEUSER 'pig'@'%'; 

二,授权: 

命令:GRANTprivileges ON databasename.tablename TO 'username'@'host' 

说明:privileges -用户的操作权限,如SELECT,
INSERT , UPDATE 等(详细列表见该文最后面).如果要授予所的权限则使用ALL.;databasename-数据库名,tablename-表名,如果要授予该用户对所有数据库和表的相应操作权限则可用*表示,如*.*. 

例子:GRANT SELECT, INSERT ON test.user TO 'pig'@'%'; 
GRANTALL ON *.* TO'pig'@'%'; 

注意:用以上命令授权的用户不能给其它用户授权,如果想让该用户可以授权,用以下命令: 
GRANTprivileges ON databasename.tablename TO 'username'@'host' WITH GRANTOPTION; 

三.设置与更改用户密码 

命令:SETPASSWORD FOR 'username'@'host' =PASSWORD('newpassword');如果是当前登陆用户用SETPASSWORD
= PASSWORD("newpassword"); 

例子:SET PASSWORD FOR 'pig'@'%' = PASSWORD("123456"); 

四.撤销用户权限 

命令:REVOKE privilege ON databasename.tablename FROM'username'@'host'; 

说明:privilege, databasename, tablename -同授权部分. 

例子:REVOKE SELECT ON *.* FROM 'pig'@'%'; 

注意:假如你在给用户'pig'@'%'授权的时候是这样的(或类似的):GRANTSELECT
ON test.user TO 'pig'@'%', 则在使用REVOKESELECT ON *.* FROM 'pig'@'%';命令并不能撤销该用户对test数据库中user表的SELECT操作.相反,如果授权使用的是GRANTSELECT
ON *.* TO 'pig'@'%';则REVOKESELECT ON test.user FROM 'pig'@'%';命令也不能撤销该用户对test数据库中user表的Select权限. 

具体信息可以用命令SHOWGRANTS FOR 'pig'@'%';查看. 

五.删除用户 

命令:DROP USER 'username'@'host'; 

附表:在MySQL中的操作权限 
ALTER
Allowsuse
of ALTERTABLE.
ALTERROUTINE
Altersor drops stored routines.
CREATE
Allowsuse
of CREATETABLE.
CREATEROUTINE
Createsstored routines.
CREATETEMPORARY
TABLE
Allowsuse of CREATETEMPORARY
TABLE.
CREATEUSER
Allowsuse
of CREATEUSER, DROPUSER, RENAMEUSER,and REVOKEALL
PRIVILEGES.
CREATEVIEW
Allowsuse of CREATEVIEW.
DELETE
Allowsuse of DELETE.
DROP
Allowsuse of DROPTABLE.
EXECUTE
Allowsthe user to run stored routines.
FILE
Allowsuse
of SELECT... INTOOUTFILE and LOADDATA
INFILE.
INDEX
Allowsuse of CREATEINDEX and DROPINDEX.
INSERT
Allowsuse of INSERT.
LOCKTABLES
Allowsuse of LOCKTABLES ontables
for which the user also has SELECT privileges.
PROCESS
Allowsuse of SHOWFULL
PROCESSLIST.
RELOAD
Allowsuse of FLUSH.
REPLICATION
Allowsthe user to ask where slave or master
CLIENT
serversare.
REPLICATIONSLAVE
Neededfor replication slaves.
SELECT
Allowsuse of SELECT.
SHOWDATABASES
Allowsuse of SHOWDATABASES.
SHOWVIEW
Allowsuse of SHOWCREATE
VIEW.
SHUTDOWN
Allowsuse of mysqladminshutdown.
SUPER
Allowsuse of CHANGEMASTER, KILL, PURGEMASTER
LOGS,and SETGLOBAL SQLstatements.
Allows mysqladmindebug command.Allows one extra connection to
be made if maximum connections arereached.
UPDATE
Allowsuse of UPDATE.
USAGE
Allowsconnection without any specific privileges.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mysql 管理