mysql 基本操作及对用户操作

1、登录/退出基本操作
            登录:mysql [-h服务器地址] -u登录名 -P端口号 -p
            或登录:mysql [--host=服务器地址] --user=用户名 --port=端口 --password
            退出:quit; 或 exit;
            注意:登录数据库系统后,需要使用“set names 编码名;”来设定当前连接数据库的“所在的环境变量”,即当前跟数据库打交道的“客户端”本身的编码。通常来说:
            ocmd客户端中是固定的使用gbk编码,
            o而php网页中,是该网页文件的编码(现在主流都是utf8)。

mysql -u root -p
password:****
set names utf8;

            连接到远程主机上的MYSQL。假设远程主机的IP为:110.110.110.110,用户名为root,密码为abcd123。则键入以下命令:

mysql -h110.110.110.110 -u root -p 123;


2、修改用户密码 登录进去
            修改自己密码: set password = password(‘新密码’);

set password = password("***");

            修改他人密码(必须有修改权限):
            set password for ‘用户名’@’允许其登录的地址’ = password(‘新密码’);

set password for 'root'@'localhost' = password('***');


3、mysql中的用户
            (1)创建用户
                        语法形式:
                        create user ‘用户名’@’允许其登录的地址’ identified by ‘密码’;
                        说明:
                        1,创建的用户需同时指定该用户可以在哪个地址进行登录。
                        其中“%”代表“任何地址”。
                        2,用户创建之后,自动在mysql的user表中添加了一条记录,但该用户还没有权限。
            (2)删除用户
                        drop user ‘用户名’@’允许其登录的地址’;
            (3)权限分配
            增加权限:
            grant 权限名1,权限名2, .... on 数据库名.对象名 to ‘用户名’@’允许其登录的地址’ identified by ‘密码’;
            说明:
                        1权限名就是:’select’, ‘update’, ‘delete’,等等。其中ALL 表示“所有权限”,或all privileges也一样
                        2对象名:就是一个数据库中“装”的东西,表是最常见的,也可以是视图,存储过程,存储函数等。 now()
                        其中: *.* 表示所有数据中的所有对象
                        某数据库名.* 表示该数据库中的所有对象——这个商业上常用。
                        3,identified by ‘密码’用于给一个用户在此时修改密码,不写也可以,那就不修改密码。
                        4,但同时该语句也可以创建用户(如果不存在),但此时identified by ‘密码’必须写。

grant all on z_0705.* to 'root'@'localhost' identified by '***';

                        (4)删除权限
                        revoke 权限名1,权限名2, .... on 数据库名.对象名 from ‘用户名’@’允许其登录的地址’;

revoke all on z_0705.* from 'z_0705'@'localhost';


4、表的其他操作:
    (1)显示所有数据库 show databases;
    (2)进入数据库 use 数据库名;
        通常,要进行数据中的数据表和数据的操作,都必须先“进入”该数据库。
        问题:在cmd使用set names utf8,然后得到乱码了?
        1,cmd,必须使用gbk
        2,php文件中,可以根据文件的编码来定:utf8编码就是用utf8,ANSI编码(gbk)就用gbk
    (3)显示所有表show tables:
    (4)显示表结构desc 表名;
    (5)显示表的创建语句: show create table 表名;
    (7)从已有表复制表结构:create table [if not exists] 新表名 like 原表名;
      从已有表复制表结构:create table [if not exists] 新表名 select * from 原表名 where 1<>1;(不推荐)



5、备份恢复数据库
  备份数据库:(在mysql服务外面执行)
  mysqldump -h服务器地址 -u登录名 -p 要备份的数据库名 > 要保存为的文件
  恢复数据库:
  mysql -h服务器地址 -u登录名 -P端口号 -p 数据库名 < 文件名
  注意:通常该数据库名是需要先建立(存在):

mysqldump -h localhost -u root -p z_0705>D:mysql.sql
mysql -h localhost -u root -p z_0705<D:mysql.sql
原文地址:https://www.cnblogs.com/ybygb-geng/p/9497445.html