zoukankan      html  css  js  c++  java
  • 鉴:mysql远程登录

    Mysql默认是不允许远程连接的,因为有很大的安全隐患。

    需要手动增加可以远程访问数据库的用户。

    方法一、本地登入mysql,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,将"localhost"改为"%"

    #mysql -u root -proot
    mysql>use mysql;
    mysql>update user set host = '%' where user = 'root';

    这里我要说的是首先,在具体项目里面尽量不要使用root用户,其次,数据库也尽量不要使用mysql,为了

    安全性考虑。(root用户的密码可以设置的复杂写,比如英文+(特殊字符%-$_#等)+数字,顺序随机组合

    其实最好的就是将root用户访问另外某个数据库的权限中的(select,insert,update,delete)给禁止掉,但

    是不禁止其他权限(create,drop,---,super,---等))。此建议也适用于以下文字,不再重复。

    好吧,我接着说下,在linux下面千万不要做上面的动作,因为linux的root用户的user记录有5个,而这5

    个每个都有特殊的意义,比如我们上面所说的user='root'&host='localhost'的用户,是专门用来实现本地

    登录mysql的,如果你把这个给修改了的话,你会发现你再也没有办法在本地以root超级用户进行修改了,

    意思就是说root超级用户相当于被你给删除了,OMG,我重装了好多遍的结论。


    mysql>select host, user from user;

    方法二、直接授权(推荐)

    从任何主机上使用root用户,密码:youpassword(你的root密码)连接到mysql服务器:

    # mysql -u root -proot
    mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'youpassword' WITH GRANT OPTION;

    允许地址202.11.10.253上用root用户,密码dboomysql来连接mysql的所有数据库,付给select,insert,update,delete权限。


    # mysql -u root -proot
    grant select,insert,update,delete on *.* to root@"202.11.10.253" Identified by "dboomysql";

    允许地址202.11.10.253上用root用户,密码dboomysql来连接mysql的所有数据库,付给所有权限。


    # mysql -u root -proot
    grant all on *.* to root@"202.11.10.253" Identified by "dboomysql"

    重启Mysql服务后,这样就可用图形化数据库管理软件(Navicat MySQL是个不错的选择)远程访问Mysql 
      
    mysql技巧总结


    1.修改mysql中root的密码:
    shell>mysql -u root -p
    mysql>SET PASSWORD FOR root=PASSWORD("root");

    2.远程登录mysql server:(当然server必须首先给某个远程用户授权了)
    shell>mysql -h host -u user -p

    3.打开数据库:use dbname;
    显示所有数据库:show databases;
    显示数据库mysql中所有的表:先use mysql;然后show tables;
    显示表的列信息:describe user;(显示表mysql数据库中user表的信息);

    4.创建一个可以从任何地方连接服务器的一个完全的超级用户,但是必须使用一个口令something做这个
    GRANT ALL PRIVILEGES ON *.* TO monty@localhost IDENTIFIED BY 'something' WITH GRANT OPTION;
    GRANT ALL PRIVILEGES ON *.* TO monty@"%" IDENTIFIED BY 'something' WITH GRANT OPTION;

    5.删除授权:
    REVOKE ALL PRIVILEGES ON *.* FROM root@"%";
    USE mysql;
    DELETE FROM user WHERE User="root" and Host="%";
    FLUSH PRIVILEGES;

    6. 创建一个用户custom在特定客户端weiqiong.com登录,可访问特定数据库bankaccount
    mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON bankaccount.*
    TO custom@weiqiong.com IDENTIFIED BY 'stupid';

    7.重命名表:
    ALTER TABLE t1 RENAME t2;

    为了改变列a,从INTEGER改为TINYINT NOT NULL(名字一样),
    并且改变列b,从CHAR(10)改为CHAR(20),同时重命名它,从b改为c:
    ALTER TABLE t2 MODIFY a TINYINT NOT NULL, CHANGE b c CHAR(20);

    增加一个新TIMESTAMP列,名为d:
    ALTER TABLE t2 ADD d TIMESTAMP;

    在列d上增加一个索引,并且使列a为主键:
    ALTER TABLE t2 ADD INDEX (d), ADD PRIMARY KEY (a);

    删除列c:
    ALTER TABLE t2 DROP COLUMN c;

    增加一个新的AUTO_INCREMENT整数列,命名为c:
    ALTER TABLE t2 ADD c INT UNSIGNED NOT NULL AUTO_INCREMENT,ADD INDEX (c);
    注意,我们索引了c,因为AUTO_INCREMENT柱必须被索引,并且另外我们声明c为NOT NULL,
    因为索引了的列不能是NULL。

    8.删除记录:
    DELETE FROM t1 WHERE C>10;

    6.改变某几行:
    UPDATE t1 SET user=weiqiong,password=weiqiong;

    7.使用name列的头10个字符创建一个索引:
    CREATE INDEX part_of_name ON customer (name(10));

    ==================================我是分割线===================================

    补充下下面为搜集到的用户权限,不知道全不全,暂且搁在这里:

    select_priv="y" , insert_priv="y", update_priv="y", delete_priv="y", create_priv="y",
    drop_priv="y",reload_priv="y", shutdown_priv="y", process_priv="y", file_priv="y",
    grant_priv="y", references_priv="y",index_priv="y", alter_priv="y", show_db_priv="y",
    super_priv="y",create_tmp_table_priv="y",lock_tables_priv="y", execute_priv="y",
    repl_slave_priv="y",repl_client_priv="y"

  • 相关阅读:
    WCF技术剖析之二十三:服务实例(Service Instance)生命周期如何控制[上篇]
    WCF技术剖析之二十二: 深入剖析WCF底层异常处理框架实现原理[上篇]
    WCF技术剖析之十七:消息(Message)详解(中篇)
    WCF技术剖析之十:调用WCF服务的客户端应该如何进行异常处理
    如何通过自定义MessageFilter的方式利用按键方式操作控件滚动条[附源代码]
    WCF技术剖析之十九:深度剖析消息编码(Encoding)实现(上篇)
    WCF技术剖析之十九:深度剖析消息编码(Encoding)实现(下篇)
    好书推荐:最终PDF版本的 《Microsoft Application Architecture Guide, Second Edition》
    WCF技术剖析之二十三:服务实例(Service Instance)生命周期如何控制[中篇]
    CRUD is bad for REST
  • 原文地址:https://www.cnblogs.com/niutouzdq/p/2210997.html
Copyright © 2011-2022 走看看