`

mysql创建用户与远程登入

阅读更多

一、新建用户

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 phplamp@localhost identified by '1234';
//刷新系统权限表
      mysql>flush privileges;
      mysql>其它操作

如果想指定部分权限给一用户,可以这样来写:
      mysql>grant select,update on phplampDB.* to phplamp@localhost 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身份登录啦!
分享到:
评论

相关推荐

    解决无法远程登入MySQL数据库的几种方案

    针对phpMyAdmin的情况,可以通过登录到远程MySQL服务器,使用root账户执行`GRANT`语句创建新用户并指定IP,如`grant select,update,insert,delete on *.* to sss@192.168.0.114 identified by "sss"`。接着,更新`...

    加入数据库mysql实现android注册登陆功能的客户端服务器源码与解析

    要配置MySQL,你需要安装MySQL服务器,创建一个新的数据库,并定义用于存储用户信息的表,如`users`,包含字段如`id`(主键)、`username`、`password`等。确保密码字段经过哈希处理以保障安全性。 接下来,我们...

    Android 注册登入 (PHP, MySQL 和 SQLite)

    当网络恢复时,这些数据可以通过后台服务同步到远程MySQL服务器。 4. **Android客户端**: 在Android应用中,你需要创建UI组件,如EditText用于输入用户名和密码,Button用于触发注册和登录操作。使用Android的...

    解决MySQL无法远程连接的方法

    这个时候只要在localhost的那台电脑使用mysql管理工具登入mysql后,更改 “mysql” 数据库里的 “user” 表里的 “host” 项,从”localhost”改称”%” 2、 授权法。 A:你想mysql账户myuser使用密码mypassword从...

    MySQL数据库远程访问权限如何打开(两种方法)

    缺省状态下,mysql的用户没有远程访问的权限。 下面介绍两种方法,解决这一问题。 1、改表法 可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 “mysql” ...

    10款开源网上教学&课程管理系统

    随着远程教育的普及,越来越多的教育机构和个人开始关注网上教学与课程管理系统的开发和应用。下面我们将对10款开源网上教学&课程管理系统进行介绍。 Wordcircle Wordcircle是一个课程管理工具,旨在解决老师与...

    mahara教师评价系统

    最后一步会提示并创建管理员账户 8 管理员登入系统后就可以进行一系列操作 9 汉化 mahara, 可以到官方网站下载语言包, (目前只有繁体中文版) , 并直接复制到 mahara 的目录里,语言包里的文件夹要与 mahara 的...

    Ubuntu中文命令

    查看目前登入用户运行的程序** `who -u`可以显示当前登录的用户及其运行的程序。 **7. 查看当前用户程序实际内存占用,并排序** `ps -aux --sort=-%mem`可以按内存使用量排序显示进程。 **8. 统计程序的内存...

    易语言程序免安装版下载

    6) 修改MYSQL支持库跨静态编译的EXE和DLL传递连接句柄和记录集句柄无效的BUG(改动较大,可能会产生兼容性问题,我们已经仔细测试,也请使用到此库的用户帮助我们多多测试,以便及早发现问题,谢谢) 7) 其它修改 ...

Global site tag (gtag.js) - Google Analytics