MySql命令
2016-09-16 18:17:451.连接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;