mysql常用操作【更新中】

1、因某些原因进不去数据库

【实例】重置mysql密码

vim my.cnf

在[mysqld]下添加“skip-grant”

/etc/init.d/mysqld restart

进入数据库就无需密码验证:

mysql > update user setpassword=password(‘your passwd’) where user=‘root’;

         >  flush privileges;

 

2、

查看mysql引擎:mysql -uroot -p passwd -e “show variables like ‘%engine%’”;

 

3、mysql的两种连接方式

TCP:mysql -uroot -p [password] -h [hostIP] -P [port(default3306)]

socket:

mysql -uroot -p [password] -e“use mysql;select user,host from user where user=’root’”-S [socket file]

mysql.sock文件在安装时或配置时指定过,若系统找不到,需要做软连接到/tmp/mysql.sock

 

mysql命令历史:cat.mysql_history,是自动记录的,如果去掉可以指向/dev/null

 

4、mysql常用操作

查看都有哪些库  

show databases;
查看某个库的表

use db; show tables; 
查看表的字段

desc tb;
查看建表语句

show create table tb\G;(\G表示格式化显示)
当前用户  

select user();
当前库

select database();
创建库

create database db1; 
创建表

create table t1 (`id` int(4), `name` char(40)) ENGINE=DEFAULT CHARSET=gbk|utf8;  
查看数据库版本

select version(); 
查看mysql状态

show status;
修改mysql参数

show variables like 'max_connect%'; set globalmax_connect_errors = 1000; 
查看mysql队列

show processlist; 
创建普通用户并授权

grant all on *.* to user1 identified by '123456'; 
grant all on db1.* to 'user2'@'10.0.2.100'identified by '111222'; 

grant all on db1.* to 'user3'@'%' identified by'231222';

 

插入数据

insert into tb1 (id,name) values(1,'aming');

删除数据

delete from tab where name=’1’;
更改密码

UPDATE mysql.user SET password=PASSWORD("newpwd")WHERE user='username' ;   
查询

select count(*) from mysql.user; select * from mysql.db;

select * from mysql.db where host like '10.0.%'; 
插入

update db1.t1 set name='aaa' where id=1;  
清空表数据(不改变字段)

truncate table db1.t1; 
删除表

drop table db1.t1; selectdatabase();
删除数据库

drop database db1; 
修复表

repair table tb1 [use frm];

 

备份

mysqldump -uroot -p db >1.sql 
恢复 

mysql -uroot-p db <1.sql  
只备份一个表  

mysqldump-uroot -p db tb1 > 2.sql
备份时指定字符集

mysqldump -uroot -p --default-character-set=utf8  db >1.sql
恢复也指定字符集

mysql-uroot -p --default-character-set=utf8  db  < 1.sql


复制表:

CREATE table db1.tab_201605 as  select * from db2.tab_20160501 where 1!=1;

(复制表结构,不复制数据和索引)

CREATE table db1.tab_201605 as  select * from db2.tab_20160501 where 1=1;

(复制表结构,复制原表的数据,不复制索引)

CREATE table db1.tab_201605 like db2.tab_20160501;

(复制表结构和所有约束,包括主键索引,不会复制数据)



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章