mysql权限管理与基本处理

  做为php里最经常使用的数据库mysql,除掉最经常使用的mysql语句外,mysql的一些管理也是须要了解的。
   Linux里登陆mysql:
   mysql -h IP -uroot -p
   enter后 会提示输入密码。
   一个比较常见遇到的问题是(忘记了root密码),解决方案:
   找到my.cnf(mysql的配置文件,在windows里是my.ini)  
   Linux的默认目录是 /etc/mysql
   在mysqld里加上一句
   skip-grant-tables
   保存退出  service mysql restart   数据库服务重启。
   而后mysql登陆的时候,能够不须要密码。对数据库进行从新设置
    UPDATE user SET Password = password ('new-password’) WHERE User = ‘root’
    这样就更改了root的新密码。
    而后flush privileges ; (必定要刷新权限,不然是不会生效的)。
    而后service  mysql restart
    这样就完成了不知道数据库密码的状况下,对密码的更改。

    拥有了数据库根目录权限后,在大多数的使用场景里面,咱们须要管理一个数据库服务器,可是每一个项目仅仅是使用了一个或者俩个数据库,并且为了保证数据库总体的安全,并不提倡给每一个项目都是根目录权限。通常的应用场景是,给某个项目指定特定链接的数据库和操做权限(有的用户只能有查看权限,而有的用户拥有所有的权限) 新增长数据库的权限语句,能够精确到具体的数据表权限操做
    GRANT ALL PRIVILEGES ON  test.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY 'mypassword' ;  
    给数据库账号增长了权限后,要让受权用户当即生效,必须加上下面的
    FLUSH   PRIVILEGES;(让赋予了权限的账号生效)
    这样就完成了数据库系统的单独数据库的分权(all privileges能够换成对应的select  insert  update delete等操做)

    远程权限登陆:
     GRANT ALL PRIVILEGES ON  test.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' ;  这样就讲限定从192.168.1.3拓展到任意远程主机能够进行登陆了。为了安全,通常用localhost(只容许使用数据库)。
     给某个用户赋予不一样的权限
     grant select,insert,update,delete,drop,create on wifijunData.* to hafu@"%" identified by "test01%"php

相关文章
相关标签/搜索