mysql 权限管理

Sql代码
  1. <DIV class="quote_title">引用</DIV><DIV class="quote_div">一、 mysql授权   
  2.   
  3.       GRANT 语句的语法如下:   
  4.       GRANT privileges (columns)   
  5.       ON what   
  6.       TO user IDENTIFIEDBY "password"  
  7.       WITH GRANT OPTION  
  8.   
  9. 1.grant select,insert on *.* to test@"local" Identified by "123";   
  10.   
  11. 这句命令的意思是,授权用户“test”(其口令为“123”)只能在本地localhost登录,可对任何数据库的任何表(“*.*”前一个“*”代表任何数据库,后一个“*”代表在前个“*”的约束下的任何表)进行selectinsert的操作。   
  12.   
  13. 2.grant update,delete on scut.student to test@"%" Identified by "123";   
  14.   
  15. 这句命令的意思是,授权用户“test”(其口令为“123”)可以任何主机登录,可对数据库"scut”下的表“student”进行updatedelete的操作。   
  16.   
  17. 3. grant all on len.* to ca@"%" Identified by "123456";   
  18.   
  19. 这句命令的意思是,授权用户“ca”(其口令为“123456”)可以任何主机登录,可对数据库"len”下的所有表进行所有的操作。   
  20.   
  21. 二、mysql授权查看   
  22. select user from mysql.db where db="youdb"  
  23. 实例:查看len数据库已经授权的用户   
  24. select user from mysql.db where db="len"  
  25. '   
  26.   
  27.   
  28.   
  29.   
  30. 1。 改表法。可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%"   
  31.   
  32. Sql代码 复制代码   
  33.   
  34.     1. mysql -u root -pvmwaremysql>use mysql;     
  35.     2. mysql>update user set host = '%' where user = 'root';     
  36.     3. mysql>select host, user from user;   
  37.   
  38. 2. 授权法。例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话。   
  39.   
  40. Sql代码 复制代码   
  41.   
  42.    1. GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH   
  43.   
  44.       GRANT OPTION;     
  45.    2.FLUSH   PRIVILEGES;     
  46.   
  47.   
  48.   
  49.   
  50.   
  51. 如果你想允许用户myuser从ip为192.168.1.6的主机连接到mysql服务器,并使用mypassword作为密码   
  52.   
  53. Sql代码 复制代码   
  54.   
  55.     1. GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY      
  56.     2. 'mypassword' WITH GRANT OPTION;      
  57.     3. FLUSH   PRIVILEGES;     
  58.   
  59. GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY   
  60. 'mypassword' WITH GRANT OPTION;   
  61. FLUSH   PRIVILEGES;   
  62.   
  63.   
  64.   
  65. 如果你想允许用户myuser从ip为192.168.1.6的主机连接到mysql服务器的dk数据库,并使用mypassword作为密码   
  66. Sql代码 复制代码   
  67.   
  68.     1. GRANT ALL PRIVILEGES ON dk.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY      
  69.     2. 'mypassword' WITH GRANT OPTION;      
  70.     3. FLUSH   PRIVILEGES;     
  71.   
  72. GRANT ALL PRIVILEGES ON dk.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY   
  73. 'mypassword' WITH GRANT OPTION;   
  74. FLUSH   PRIVILEGES;   
  75.   
  76.   
  77. 注意授权后必须FLUSH PRIVILEGES;否则无法立即生效。   
  78.   
  79. 另外一种方法.   
  80.   
  81. 在安装mysql的机器上运行:   
  82. 1、d:\mysql\bin\>mysql -h localhost -u root   
  83. //这样应该可以进入MySQL服务器   
  84. 2、mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION   
  85. //赋予任何主机访问数据的权限   
  86. 3、mysql>FLUSH PRIVILEGES   
  87. //修改生效   
  88. 4、mysql>EXIT   
  89. //退出MySQL服务器   
  90. 这样就可以在其它任何的主机上以root身份登录啦! </DIV>   
  91.   
  92.   
  93. mysql的一些乱七八糟的东西   
  94. 01月 27th, 2008   
  95. mysql的一些乱七八糟的东西 使用MYSQL半年,自己经常用的东西- -   
  96.   
  97. Mysql –h192.168.0.110 –uks –p –P4444登录   
  98.   
  99. Mysqladmin –h192.168.0.110-uks –p reload重新加载用户表   
  100.   
  101. Mysqldump –R –h192.168.0.110 –uks –p test>c:/test.sql备份   
  102.   
  103. Mysql –h192.168.0.110 –uks –p test   
  104. Windows下net stop mysql关闭服务   
  105.   
  106. Net start mysql 开启服务   
  107.   
  108. Linux下 service mysql stop关闭   
  109.   
  110. Service mysql start 开启   
  111.   
  112. Service mysql restart重启服务   
  113.   
  114. Linux下开机自动启动mysql   
  115.   
  116. #>chkconfig –add mysql 开机启动   
  117.   
  118. Chkconfig –del mysql 关闭自动启动   
  119.   
  120. Chkconfig – -list 查看服务启动情况   
  121.   
  122. Mysql命令行下   
  123.   
  124. Explain select……..查看该SELECT语句信息   
  125.   
  126. Show variables查看系统变量   
  127.   
  128. Show status 常看当前服务器状态   
  129.   
  130. Show databases;   
  131.   
  132. Show tables;   
  133.   
  134. Show processlist   
  135.   
  136. Show warnings;(查看最近一个警告或错误)   
  137.   
  138. Set global xxxx=xxxx;   
  139.   
  140. Flush ……清楚mysql使用的部分内部缓存   
  141.   
  142. Information_schema.tables表信息   
  143.   
  144. Mysql动态语句5.1   
  145.   
  146. 只支持create table,delete,do ,insert,replace,select set ,update语句   
  147.   
  148. Describe tablename查看该表结构   
  149.   
  150. Optimize table XXX 清理该表中已删除的链接(可以释放一些资源)   
  151.   
  152. Source c:abc.sql 在MYSQL命令行中执行脚本   
  153.   
  154. Select  
  155.   
  156. Create  
  157.   
  158. Insert  
  159.   
  160. Update  
  161.   
  162. Alter  
  163.   
  164. Grant  
  165.   
  166. revoke  
  167.   
  168. 就不说了= =   
  169.   
  170. Mysql 数据库名最长 64位字符串   
  171.   
  172. 表名….. 64位字符串   
  173.   
  174. 字段名……. 64位字符串   
  175.   
  176. 用户名…….. 16位字符串   
  177.   
  178. 密码……… 貌似没限制   
  179.   
  180. Handler(很牛X的东东)   
  181.   
  182. Handler testt open as abc;   
  183.   
  184. Handler abc read id=(123456);   
  185.   
  186. Handler abc close;   
  187.   
  188. Benchmark(n,expr)执行N次EXPR并测算时间   
  189.   
  190. Post in LAMP | No Comments »   
  191.   
  192. MYSQL在命令行创建存储过程   
  193. 01月 27th, 2008   
  194. MYSQL在命令行创建存储过程 如何在MYSQL命令行创建存储过程   
  195.   
  196. 今天早上在百度知道碰到这个问题,我开始没看明白…….后来才知道提问人的意思是要在命令行下创建存储过程。很感谢这个问题,因为我也不会呵呵,我一直都用EMS创建这些东西…….   
  197.   
  198. 我也尝试了一些方法,但是第一个分号mysql就以为语句结束了,就拿那个例子来说:   
  199.   
  200. CREATE PROCEDURE p7 (IN b INTEGER(12))   
  201.   
  202. begin  
  203.   
  204. declare a INTEGER(12);   
  205.   
  206. set a=5;   
  207.   
  208. INSERT INTO t VALUES (a);   
  209.   
  210. SELECT s1*a FROM t WHERE b<=s1;   
  211.   
  212. End  
  213.   
  214. 这个存储过程,在命令行直接创建的话,在第三排你输入分号后就报错了……因为MYSQL以为这个语句结束了,那对于MYSQL而言   
  215.   
  216. CREATE PROCEDURE p7 (IN b INTEGER(12))   
  217.   
  218. begin  
  219.   
  220. declare a INTEGER(12);   
  221.   
  222. 肯定是个错误语句。   
  223.   
  224. 然后看了些东西,原来要加分隔符- -……….   
  225.   
  226. DELIMITER //   
  227.   
  228. CREATE PROCEDURE p7 (IN b INTEGER(12))   
  229.   
  230. begin  
  231.   
  232. declare a INTEGER(12);   
  233.   
  234. set a=5;   
  235.   
  236. INSERT INTO t VALUES (a);   
  237.   
  238. SELECT s1*a FROM t WHERE b<=s1;   
  239.   
  240. End  
  241.   
  242. //   
  243.   
  244. 就OK了…………意思就是说在//……//之间的当成一个语句执行所以MYSQL接到的才是这个存储过程完整的创建语句。   
  245.   
  246. Post in LAMP | No Comments »   
posted @ 2010-07-15 17:21  Ellison Pine  阅读(732)  评论(0编辑  收藏  举报