当前位置: 首页 > 图文教程 > 数据库 > MYSQL > MySQL账户相关

MYSQL
提高MySQL 查询效率的三个技巧
mysql同步复制搭建方法指南详细步骤
详解MySQL中DROP,TRUNCATE 和DELETE的区别实现mysql从零开始
MySQL Replace INTO的使用
mysql 分页优化解析
同时运行多个MySQL服务器的方法
mysql主从服务器同步心得体会
删除mysql数据库中的重复数据记录
mysql忘记密码的解决方法
mysql替换表中的字符串的sql语句
Lost connection to MySQL server during query的解决
mysql出现Error performing load command的解决方法
mysql中的“money”类型说明
mysql常见错误集锦
MYSQL administrator 使用
MYSQL初学者命令行使用指南
MySQL的Query Cache原理分析
linux下改良版本mysqldump来备份MYSQL数据库
mysql删除表中某一字段重复的记录
log引起的mysql不能启动的解决方法

MYSQL 中的 MySQL账户相关


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-30   浏览: 57 ::
收藏到网摘: n/a

 

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用户或其他用户登录mysq