MySQL账户相关
2008-02-23 07:43:15来源:互联网 阅读 ()
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,即可。
(以上部分内容来源于网络)
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇: mysql中的mysql_real_connect连接参数配置
下一篇: ASP.NET页面事件
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash