MYSQL快速入门之常用命令介绍

本文提供了MySQL的全面指南,包括获取帮助、常用操作语句、表和索引管理等。此外还介绍了用户管理和备份策略,以及安装后的常见配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.帮助
1.1得到mysql帮助
    mysql> help   (或者?)
    eg:
    mysql> ?   contents (显示数据库的所有帮助内容列表)
    mysql> ?  data types (得到数据类型帮助)
    mysql> ?  int (得到int类型帮助)
    mysql> ?  show (得到show命令帮助)
    mysql> ?  create table (查看怎样建表)
1.2清屏
    可以通过”\c”清除之前的输入



2.常用操作语句
mysql常用语句
2.1连接
$ mysql -u用户名 -p密码  [数据库名]
eg:
$mysql -uroot -p'root' test
在windows下 密码不需要用''圈起来,圈起来适得其反
2.2 查看mysql版本信息 
mysql >select version(); 
2.3查看进程信息
      mysql>show processlist\G;
2.4查看数据库状态
      mysql>show databases;                                 
//Information_schema(只读库,不能创建亦不能删除表)
 mysql>status;                          //或者\s
     show character set;//查看支持的字符集
  show engines;       //查看存储引擎
2.5 查看sql语句的执行计划
 mysql>explian sql
eg.
 mysql>explain select * from ‘slowlog’  \G;
2.6 查看数据库的当前session参数设置
 mysql>show variables like '%参数名%'
eg.
 mysql >show variables like ‘wait_timeout’;
2.7 查看数据库的全局参数设置
 mysql>show global variables like '%参数名%';
2.8 查看数据的当前session状态参数
mysql> show status like '%参数名%'
eg.
mysql>show status like ‘Handler_read%’;                      // (了解索引效果)
mysql>select last_insert_id(); //查看自动增长列的值 
2.9在mysql中执行系统命令
mysql>system 系统命令
2.11查看正在操作数据库的当前用户
mysql>select user();
mysql>seletc current_user();
2.10查看当前用户正在操作的数据库
mysql>select database();
2.11查看数据库当前时间
mysql>select current_time();
2.12修改当前session数据库参数
 mysql>set 参数名=参数值
eg.
  mysql> set wait_timeout=600;
2.13修改数据库全局参数
 mysql>set global 参数名=参数值
eg.
 mysql>set global wait_timeout=600
2.14常用表操作
 mysql> describe tbl_name; //描述表
 mysql>show create table tbl_name; //显示创建表语句
 mysql>delete tbl_name; //删除表
 mysql>truncate 表名;               //清空表
 mysql>check table 表名;                      //检查表
 mysql>analyze table …; //分析表
 mysql>repair table …; //修复表
 mysql>optimize table …; //优化表
 mysql>flush table表名;                     //刷新表
 mysql>alter table…; 修改表
 mysql>rename table ..;            #修改表名
eg.
 mysql>Rename  table  basicinfo  to  basic;        //将表名由basicinfo修改为basic
 mysql>Alter  table  basic rename to basicinfo;         //将表名由basic 修改为basicinfo
 mysql> alter table tbl_name add col col_def after pre_col;
 mysql>alter table tbl_name modify col col_def
 mysql>Alter  table  basic  engine = innodb ;             // 更改存储引擎
 mysql> Alter table basic default charset=utf8;        //更改默认字符集:
 mysql>Alter table basicinfo convert to character set gbk;   //在线转换,可能会丢失部分信息,导致数据无法
 mysql>Create  table newtbl engine=innodb default charset=utf8 select * from oldtbl; 
//快捷建表如果两个表的存储引擎相同,默认这两个表的结构和数据会是一样,否则,这两张表的结构会有不同,数据会相同mysql>Create  table  newtbl  like  oldtbl;
mysql>Insert  into  newtbl select  *  from  oldtbl;
//快捷建表,避免了由于忽略存储引擎的影响而造成的,数据表结构不一致问题。
2.15常见索引操作
 mysql>create index idx_colname on tbl_name(col) 创建索引
 mysql>alter table tbl_name add index idx_colname(col); 添加索引
 mysql>show index from tbl_name; 显示索引
 mysql>drop index idx_colname on tbl_name; 删除索引
2.16常见数据操作
 mysql>create database db_name;  新建一个数据库
 mysql>drop database db_name; 删除指定数据库
2.17常见用户管理
查看用户权限
mysql>show grants
mysql>show grants for abc@localhost;
授权
mysql> grant select(id,se,rank) on testdb.apache_log to dba@localhost;
mysql> grant execute on procedure testdb.pr_add to dba@localhost;
mysql> grant execute on function testdb.fn_add to dba@localhost;
mysql> grant  select  on testdb.* to dba@localhost with  grant option;
mysql> grant all on test.* to ‘jack‘@‘localhost‘    identified by ‘jack123‘  
    with  MAX_CONNECTIONS_PER_HOUR 10 
     MAX_QUERIES_PER_HOUE 50   
     MAX_UPDATE_PER_HOUR 20; 
权限回收
mysql>revoke all on *.* from dba@localhost; 回收权限
mysql>revoke all privileges on *.* from xxx@xxx;是不够的,还需要
mysql>revoke select,update on test.* from xxx@xxx;


3安装后常见设置
1.设置 server-id的值   [唯一]
2.查看机器性能:内存 2G、cpu双核、磁盘40G /home目录时参数设置参考:
character_set_server=utf8
skip_name_resolve
lower_case_table_names=1  #不区分大小写
key_buffer_size=16M
query_cache_size=256M
innodb_buffer_pool_size=512M
innodb_data_file_per_tables=1
                server_id=1
#data目录在/home目录下
datadir=/home/mysqldir
    #允许远程访问
bind-address=0.0.0.0
#打开二进制日志
binlog_cache_size=1M
binlog_format=mixed
log-bin=mysql-bin
expire_logs_days = 10
#打开慢查询日志
log_slow_queries = mysql-slow
long_query_time=1
#设置连接数
max_connection=300
#进程设置
thread_cache_size=32
thread_concurrency=4
3.修改配置文件的方法
修改/etc/mysql/my.cnf配置文件,在[mysqld]下
修改添加需要的参数
修改完成后,重启数据库。

4.备份
4.1常规备份
mysqldump -uroot -proot -E -R -A --flush-logs --lock-all-tables>备份文件
eg.  mysqldump -uroot -proot -E -R -A --flush-logs --lock-all-tables>test0989.sql


4.2
4.3其它常用备份参数
【-E】导出-B指定的数据库或-A数据库的执行计划
【-R】导出-B指定的数据库或-A数据库的存储过程
【-A】导出全部数据库
【-B】导出指定数据库
【--no-data】只导出表结构,不导出表数据(不加该参数表结构和数据一起导出)
【--dump-slave】
该选项将导致主的binlog位置和文件名追加到导出数据的文件中。设置为1时,将会以CHANGE MASTER命令输出到数据文件;设置为2时,在命令前增加说明信息。该选项将会打开--lock-all-tables,除非--single-transaction被指定。该选项会自动关闭--lock-tables选项。默认值为0。
【--master-data】
该选项将binlog的位置和文件名追加到输出文件中。如果为1,将会输出CHANGE MASTER 命令;如果为2,输出的CHANGE  MASTER命令前添加注释信息。与dump-slave的影响相同
【--single-transaction】
该选项在导出数据之前提交一个BEGIN SQL语句,BEGIN 不会阻塞任何应用程序且能保证导出时数据库的一致性状态。它只适用于多版本存储引擎,仅InnoDB。本选项和--lock-tables 选项是互斥的,因为LOCK  TABLES 会使任何挂起的事务隐含提交。要想导出大表的话,应结合使用--quick 选项。
【--include-master-host-port】
在--dump-slave产生的'CHANGE  MASTER TO..'语句中增加
'MASTER_HOST=,MASTER_PORT='  

【--lock-all-tables,  -x】
提交请求锁定所有数据库中的所有表,以保证数据的一致性。这是一个全局读锁,并且自动关闭--single-transaction 和--lock-tables 选项。
【--flush-logs】
开始导出之前刷新日志。
请注意:假如一次导出多个数据库(使用选项--databases或者--all-databases),将会逐个数据库刷新日志。除使用--lock-all-tables或者--master-data外。在这种情况下,日志将会被刷新一次,相应的所以表同时被锁定。
【--hex-blob】
使用十六进制格式导出二进制字符串字段。如果有二进制数据就必须使用该选项。影响到的字段类型有BINARY、VARBINARY、BLOB。
【--ignore-table】
不导出指定表。指定忽略多个表时,需要重复多次,每次一个表。每个表必须同时指定数据库和表名。例如:--ignore-table=database.table1 --ignore-table=database.table2 ……
【--no-create-db,  -n】
只导出数据,而不添加CREATE DATABASE 语句。
【--no-create-info,  -t】
只导出数据,而不添加CREATE TABLE 语句


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/30126478/viewspace-1424141/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/30126478/viewspace-1424141/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值