MySql命令

2016-09-16 18:17:45

1.连接Mysql

mysql -h主机地址 -u用户名 -p用户密码

-h -u -p和参数中间的空格可以省略,连接到本机省略-h 无密码省略-p

2.修改密码

mysqladmin -u 用户名 -p 原密码 password 新密码

root用户初始密码为空 可以省略-p参数

3.增加新用户

grant select,insert,update,delete,create,drop,alter on mydb.* to [email=xxx@localhost]xxx@localhost[/email] identified by "mypasswd";

--mysql5.7新方式
> create user unamexxx@localhost identified by 'passwordxxx';
> grant all on mydb.* to unamexxx@localhost;

4.创建数据库

create database mydb;
create database if not exists mydb default character set utf8 default collate utf8_chinese_ci;

5.显示数据库、表、字段

show databases; 
show tables;
desc mytab;

6.删除数据库

drop database mydb;
drop database if exists mydb;

7.设置默认数据库

use mydb

8.建表

create table mytab(col1 int(4) not null primary key auto_increment,col2 varchar(200) not null default 'xxx');

create table mytab(col1 int(4) not null primary key auto_increment,col2 varchar(200) not null default 'xxx') ENGINE = MyISAM DEFAULT CHARSET UTF8;

create table mytab(col1 int(4) not null primary key auto_increment,col2 varchar(200) null comment '字段备注') comment = '表备注';

9.删表

drop table mytab;

10.修改表名

rename table mytab to mynewtab;

11.加字段

alter table mytab add colnew int(4);

alert table mytab add colnew int(4) comment '备注';

12.删字段

alter table mytab drop mycol;

13.改字段

alert table mytab change col1 col1new varchar(100) comment '备注';

14.加索引

alter table mytab add index myindex(mycol);
alter table mytab add primary key(mycol);
alter table mytab add unique myindex(mycol);

15.删索引

alter table mytab drop index myindex;

16.备份数据库

mysqldump -u 用户名 -p 密码 mydb > bak.sql

导出整个数据库

mysqldump -u 用户名 -p 密码 mydb mytab > bak.sql

导出一个表

mysqldump -u 用户名 -p 密码 -d -add-drop-table mydb > bak.sql

导出数据库结构 -d 没有数据 -add-drop-table 在每个create前加入drop table

17.查看表的详情

show create table mytab;
show full columns from mytab; 

18.修改编码

alter database mydb character set utf8; 
alter table mytab character set utf8; 
alter table mytab modify colname varchar(50) CHARACTER SET utf8; 

19.备份压缩还原

mysqldump -hhostname -uusername -ppassword databasename | gzip > backupfile.sql.gz

gunzip < backupfile.sql.gz | mysql -uusername -ppassword databasename

20.执行sql文件

直接脚本执行

mysql -hhostname -uusername -ppassword -Ddbname < /tmp/my.sql

进入mysql控制台执行

source /tmp/my.sql

21.获取guid

select uuid();

22.备份数据到新表

create table newtable(select * from oldtable);

23.导出数据到csv

--如果没有编码问题  character set gbk可以不用指定
select * from mytable 
into outfile '/tmp/x.csv'
character set gbk
fields terminated by ','
enclosed by '"' 
lines terminated by '\r\n'; 

24.修改mysql时区

--查看当前时间
select now();
--查看当前时区  system_time_zone 系统时区 time_zone mysql时区
show variables like "%time_zone%";
+------------------+--------+
| Variable_name    | Value  |
+------------------+--------+
| system_time_zone | UTC    |
| time_zone        | SYSTEM |
+------------------+--------+

--设置系统全局时区为北京时间
set global time_zone = '+8:00';
--设置当前会话时区
set time_zone = '+8:00';
--设置立即生效
flush privileges;

25.mysql5.7安装后首次进入问题

mysql5.7 执行 mysqld --initialize 后,第一次连接执行任意语句会提示 ERROR 1820 (HY000) : You must reset your password using ALTER USER statement before executing this statement ,可用如下方式解决:

> SET PASSWORD = PASSWORD('你的密码');
> ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
>flush privileges;