• Mysql常用基础命令操作


    常见操作命令:
    1、连接Mysql (客户端工具NaviCat、phpMyAdmin、MySQL-Front)
    格式: mysql -h 主机地址 -u用户名 -p用户密码
    (1)连接到本机上的MYSQL。
    首先进入Mysql安装程序的bin目录下,
    命令./mysql -u root -p,回车后提示你输密码. 注意用户名前可以有空格也可以没有空格,但是密码前必须没有空格,否则让你重新输入密码。

    (2)连接到远程主机上的MySQL。假设远程主机的IP为:110.110.110.110,用户名为root,密码为abcd123。则键入以下命令:
    mysql -h 110.110.110.110 -u root -pabcd123
    注:u与root之间可以不用加空格

    (3)退出MySQL命令: exit (回车)或者quit(回车)


    2、修改密码
    格式:mysqladmin -u用户名 -p旧密码 password 新密码
    (1)首先在Mysql安装目录下面的bin目录,然后键入以下命令
    mysqladmin -u root -p旧密码 password ab12 注:因为开始时root没有密码,所以-p旧密码一项就可以省略,但回车后会提示输入旧密码
    (2)再将root的密码改为abc345。
    mysqladmin -u root -p ab12 password abc345

    *************************************************
    另一种修改密码方法:(5.7版本之后,防密码泄露)
    进入数据库后,在mysql命令行下执行命令:
    mysql> SET PASSWORD = PASSWORD('xxxxx(新密码)');            #修改密码
    mysql> ALTER USER 'root@localhost' PASSWORD EXPIRE NEVER;       #设置密码永不过期
    mysql> flush privileges;                           #刷新权限(激活)
    注:数据库命令完成后须跟“;”号

    *************************************************

    3、增加新用户/授权用户
    注意:和上面不同,下面的因为是MYSQL命令行中的命令,所以后面都带一个分号作为命令结束符
    格式:grant select on 数据库.* to 用户名@登录主机 identified by “密码”
    解析:
    grant          #授权
    select         #查询权限
    on         #关键字 后面跟数据库名称
    数据库.*     #数据库名称,后面跟“.*”表示这个数据库下所有的表;也可以跟“.XXX”表示某个单独的表
    to       #关键字 后面跟用户名和登录主机(是指远程需要登录的主机) 表示前面权限给哪个用户
    identified   #关键字 设置密码(表示后面数据密码)
    by        #关键字 后面跟密码

    eg:
    (1)增加一个用户test1密码为abc,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。

    首先用root用户连入MYSQL,然后键入以下命令:
    mysql>grant select,insert,update,delete on *.* to test1@"%" Identified by "abc";
    解析:
    授权可以多权限,用,号间隔;
    on *.* “*.*” 表示所有数据库的所有表,前面*号表示所有数据库,后面*号表示数据库内的表
    to test1@“%” 表示test1用户,@“%” %号表示任意主机
    by “abc” 表示设置的密码
    注意:这种权限增加的用户是很危险的,如某个人知道test1的密码,那么他就可以在internet上的任何一台电脑上登录这台mysql数据库,并可对数据进行任意操作,解决办法是设置登录权限。

    (2)增加一个用户test2密码为abc,让它只可以在localhost上登录,并可以对数据库mydb进行查询、插入、修改、删除的操作(localhost指本地主机,即MYSQL数据库所在的那台主机)。
    mysql>grant select,insert,update,delete on mydb.* to test2@localhost identified by "abc";
    如果你不想test2有密码(或者取消test2密码),可以执行下面这个命令将密码取消掉。
    mysql>grant select,insert,update,delete on mydb.* to test2@localhost identified by "";
    如果想给一个用户test2授予访问mydb数据库的所有权限,并且仅允许test2在192.168.11.121这个客户端ip登录访问,可执行如下命令:
    mysql>grant all on mydb.* to test2@192.168.11.121 identified by "abc";
    解析:
    all 表示所有权限

    4、数据库基础操作

    (1)创建数据库
    注意:创建数据库之前要先连接Mysql服务器

    命令:create database <数据库名>

    创建数据库,并分配用户方法:
    CREATE DATABASE 数据库名;
    GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER ON 数据库名.* TO 数据库名@localhost IDENTIFIED BY '密码';

    eg:建立一个名为abc的数据库
    mysql> create database abc;

    (2)显示数据库

    命令:show databases (注意:最后有个s)
    mysql> show databases;

    (3)删除数据库
    命令:drop database <数据库名>
    eg:删除名为 iivey的数据库
    mysql> drop database iivey;

    mysql> drop database if exists drop_database;     #if exists 判断数据库是否存在,不存在也不产生错误 (如果drop_database数据库存在,删除)
    Query OK, 0 rows affected (0.00 sec)

    (4)连接数据库

    命令: use <数据库名>

    eg:如果iivey数据库存在,尝试存取它:
    mysql> use iivey;
    use语句可以通告MySQL把iivey数据库作为默认(当前)数据库使用,用于后续语句。该数据库保持为默认数据库,直到语段的结尾,或者直到发布一个不同的USE语句。

    5、Mysql表操作

    (1)创建数据表
    命令:create table <表名> ( <字段名1> <类型1> [,..<字段名n> <类型n>]);
    mysql> create table MyClass(
    > id int(4) not null primary key auto_increment,
    > name char(20) not null,
    > sex int(4) not null default '0',
    > degree double(16,2));

    (2)删除数据表
    命令:drop table <表名>

    eg:删除表名为 MyClass 的表
    mysql> drop table MyClass;

    (3)表插入数据
    命令:insert into <表名> [( <字段名1>[,..<字段名n > ])] values ( 值1 )[, ( 值n )]
    解析:( <字段名1>[,..<字段名n > ]) 这里字段可以省略,后面对应的values 就会以创建时字段进行默认插入记录。
    eg:在表MyClass中插入两条记录, 这两条记录表示:编号为1的名为Tom的成绩为90.45, 编号为2 的名为Joan 的成绩为88.99, 编号为3的名为Wang的成绩为99.5。
    mysql> insert into MyClass values(1,'Tom',90.45),(2,'Joan',88.99), (3,'Wang', 99.5);

    (4)查询表中的数据
    1)、查询所有行
    命令: select <字段1,字段2,...> from < 表名 > where < 表达式 >
    解析:
    *号 表示任意匹配字段(所有数据库或表内所有数据)
    from 后面跟表名
    where 条件(进一步查询的条件)
    eg:查看表 MyClass 中所有数据
    mysql> select * from MyClass;
    2)、查询前几行数据
    eg:查看表 MyClass 中前2行数据
    mysql> select * from MyClass order by id limit 0,2;
    解析:
    ORDER BY 语句用于根据指定的列对结果集进行排序。
    ORDER BY 语句默认按照升序对记录进行排序。
    如果希望按照降序对记录进行排序,可以使用 DESC 关键字

    (5)删除表中数据
    命令:delete from 表名 where 表达式
    eg:删除表 MyClass中编号为1的记录
    mysql> delete from MyClass where id=1;

    (6)修改表中数据
    语法:update 表名 set 字段=新值,… where 条件
    mysql> update MyClass set name='Mary' where id=1;

    (7)增加字段
    命令:alter table 表名 add 字段 类型 其他;
    eg:在表MyClass中添加了一个字段passtest,类型为int(4),默认值为0
    mysql> alter table MyClass add passtest int(4) default '0'

    (8)修改表名
    命令:rename table 原表名 to 新表名;
    eg:在表MyClass名字更改为YouClass
    mysql> rename table MyClass to YouClass;

    另:
    查看某个数据库内所有表信息:
    进入数据库
    show tables;
    desc xxxx; 表示查看表的结构信息

    6、备份数据库
    (1)导出整个数据库
    导出文件默认是存在
    mysqldump -u 用户名 -p 数据库名 > 导出的文件名
    mysqldump -u user_name -p123456 database_name > outfile_name.sql

    (2)导出一个表
    mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名
    mysqldump -u user_name -p database_name table_name > outfile_name.sql

    (3)导出一个数据库结构
    mysqldump -u user_name -p -d --add-drop-table database_name > outfile_name.sql
    含义:
    -d 表示只导出表结构不导出数据
    --add-drop-table(默认语句,可以不加) 在每个create语句之前增加一个drop table
    也就是说默认下,导出的每个表或数据库的create语句前,都会加入“DROP TABLE IF EXISTS 'XXXXX'”这句提示,如果不需要提示可以用“--skip-add-drop-table”表示跳过提示

    (4)带语言参数导出
    mysqldump -uroot -p –default-character-set=latin1 --set-charset=gbk --skip-opt database_name > outfile_name.sql

    (5)导入数据
    create database XXX;      #先创建数据库
    use XXX;           #指定该数据库
    source XXX.sql;          #导入数据;注意该操作需要在保存备份数据文件内进行。

  • 相关阅读:
    Linux_Bash脚本基础
    Linux_Bash脚本基础
    Windows perl dbi oracle环境配置
    第八章 引用:
    bless 概念
    电力企业信息化建设解决方案之计量生产分析系统
    Tom和Jerry来了,Tom和Jerry走了——北漂18年(38)
    电力企业信息化建设解决方案之计量生产分析系统
    请用fontAwesome代替网页icon小图标
    Python Module_openpyxl_处理Excel表格
  • 原文地址:https://www.cnblogs.com/liuxc83/p/12837200.html
Copyright © 2020-2023  润新知