网站地图 | Sitemap | Rss
  • 您当前位置:网站首页 >> PHP学习 >> mysql新建用户与远程访问 zt
  • mysql新建用户与远程访问 zt

    来源:逍遥峡谷 发布时间:2010-10-18 浏览0条评论
    内容简介

    //登录MYSQL @>mysql -u root -h localhost -ppassword //修改用户授权表创建用户 mysql> insert into mysql.user (Host,User,Password,ssl_cipher,x509_issuer,x509_subject) values("localhost","pppadmin",password("passwd"),'','',''); //刷新系统权限表

    相关关键词:mysql   新建用户  

    本文链接:http://www.icoa.cn/a/384.html

    首先要声明一下:一般情况下,修改MySQL密码,授权,是需要有mysql里的root权限的。

    一、新建用户

    1、新建用户

    //登录MYSQL
    @>mysql -u root -h localhost -ppassword
    //修改用户授权表创建用户
    mysql> insert into mysql.user (Host,User,Password,ssl_cipher,x509_issuer,x509_subject) values("localhost","pppadmin",password("passwd"),'','','');
    //刷新系统权限表
    mysql>flush privileges;
    这样就创建了一个名为:phplamp 密码为:passwd的用户。
    //使用新用户登录
    mysql>exit;
    @>mysql -u phplamp -ppasswd
    mysql>登录成功

     

    还可以直接使用GRANT进行用户创建并授权

    mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP

    -> ON bankaccount.*

    -> TO 'custom'@'localhost'

    -> IDENTIFIED BY 'obscure';

    mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP

    -> ON expenses.*

    -> TO 'custom'@'whitehouse.gov'

    -> IDENTIFIED BY 'obscure';

    mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP

    -> ON customer.*

    -> TO 'custom'@'server.domain'

    -> IDENTIFIED BY 'obscure';

    这3个账户可以用于:

    · 第1个账户可以访问bankaccount数据库,但只能从本机访问。

    · 第2个账户可以访问expenses数据库,但只能从主机whitehouse.gov访问。

    · 第3个账户可以访问customer数据库,但只能从主机server.domain访问。


    2、为用户授权

     

    2.1 授权原则
    a.只有root用户拥有授权表的改写权;
    b.不要把授权表的改写权授予除root用户之外的其它用户(当然,如果你可以用另一个用户代替root用户进行管理,以增加安全性)。因为这样,用户可以通过改写授权表而推翻现有的权限。产生安全漏洞。
    c.一般情况下,你可能不会犯这个错误,但是在安装新的分发, 初始授权表之后。这个漏洞是存在的,如果你不了解这时授权表的内容你可能会犯错误。
    d.在Unix(Linux)上,在按照手册的指令安装好MySQL后,你必须运行mysql_install_db脚本建立包含授权表的mysql数据库和初始权限。在Windows上,运行分发中的Setup程序初始化数据目录和mysql数据库。假定服务器也在运行。

    2.2 建议

    a.一般地,建议你删除匿名用户记录:

    mysql> DELETE FROM user WHERE User="";
    匿名访问被授予用户可从本地连接名为test和任何名字以test_开始的数据库。匿名用户可对数据库做任何事情,但无管理权限。
    更进一步,同时删除其他授权表中的任何匿名用户,有User列的表有db、tables_priv和columns_priv。
    b.要给root用户设置密码。
    c.对所有MySQL用户使用口令。
    如果other_user没有口令,任何人能简单地用mysql -u other_user db_name作为任何其它的人登录。对客户机/服务器应用程序,客户可以指定任何用户名是常见的做法。在你运行它以前,你可以通过编辑 mysql_install_db脚本改变所有用户的口令,或仅仅MySQL root的口令,象这样:
    shell> mysql -u root mysql
    mysql> UPDATE user SET Password=PASSWORD('new_password')
    -> WHERE user='root';
    mysql> FLUSH PRIVILEGES;


    //登录MYSQL(有ROOT权限)。我里我以ROOT身份登录.
    @>mysql -u root -p密码
    //首先为用户创建一个数据库(phplampDB)
    mysql>create database phplampDB;
    //授权phplamp用户拥有phplamp数据库的所有权限。
    >grant all privileges on phplampDB.* to [email protected] identified by '1234';
    //刷新系统权限表
    mysql>flush privileges;
    mysql>其它操作

    如果想指定部分权限给一用户,可以这样来写:
    mysql>grant select,update on phplampDB.* to [email protected] identified by '1234';
    //刷新系统权限表。
    mysql>flush privileges;

    3、删除用户
    @>mysql -u root -p密码
    mysql>DELETE FROM user WHERE User="phplamp" and Host="localhost";
    mysql>flush privileges;
    //删除用户的数据库
    mysql>drop database phplampDB;

    4、修改指定用户密码 @>mysql -u root -p密码
    mysql>update mysql.user set password=password('新密码') where User="phplamp" and Host="localhost";
    mysql>flush privileges;

     

     

    二、远程访问MySQL

    1、改表法
    可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%"
    mysql -u root -pvmwaremysql>use mysql;
    mysql>update user set host = '%' where user = 'root';
    mysql>select host, user from user;

    2、授权法
    例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话。
    -> GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
    -> FLUSH PRIVILEGES;


    如果你想允许用户myuser从ip为192.168.1.6的主机连接到mysql服务器的dk数据库,并使用mypassword作为密码
    -> GRANT ALL PRIVILEGES ON dk.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
    -> FLUSH PRIVILEGES;


    另外一种方法,在安装mysql的机器上运行:
    d:mysqlbin>mysql -h localhost -u root //这样应该可以进入MySQL服务器
    mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION //赋予任何主机访问数据的权限
    mysql>FLUSH PRIVILEGES //修改生效
    mysql>EXIT //退出MySQL服务器
    这样就可以在其它任何的主机上以root身份登录啦!

    本文链接:http://www.icoa.cn/a/384.html
    关键词: mysql   新建用户  

    为了网站的访问体验,本站无广告和弹窗
    但是每年的服务器费用是个不小的开支。
    如果您愿意支持,扫码打赏几两银子吧!


    上一篇:几个简单的基本的sql语句并详解

    下一篇:#2002 – 服务器没有响应 (或者本地 MySQL 服务器的套接字没有正确配置)


    - 相关文章 -


    几个简单的基本的sql语句并详解 - 2010-11-12

    PHP中如何去掉字符串首尾空格 - 2013-12-12

    php使用strlen()判断字符串长度 - 2013-12-12

    MySQL命令行导入导出数据库 - 2013-10-20

    mysql新建用户与远程访问 zt - 2010-10-18

    #2002 – 服务器没有响应 (或者本地 MySQL 服务器的套接字没有正 - 2010-10-15

    用PHP读写文本文档制作最简单的访问计数器 - 2010-10-13

    PHP用substr函数截取字符串中的某部分 - 2012-12-27


    - 文章评论 -




    1402

    [由于政策原因,您的留言如果提交成功后,需要审核才能展示,请改天再来查看,请不要重复提交,谢谢支持!]

    - 最新评论[0条评论] -


    [>>>点击查看更多评论]

    逍遥峡谷 逍遥乱弹 张立博 飓风团队 爱之路 酷品优选 宝贝派 张子涵

    版权所有©逍遥峡谷 Copyright©Canyon of Airily 冀ICP备06033848号