Mysql常用命令


Mysql常用命令

连接Mysql

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

说明:该命令是在mysql的bin目录下执行有效。

例子:

连接本地:mysql -u root -p

连接远程:mysql -h110.110.110.110 -u root -p 123;

修改密码

格式: mysqladmin -u用户名 -p旧密码 password 新密码

说明:该命令是在mysql的bin目录下执行有效。

例子:

初始密码为空:mysqladmin -u root -password newpasswod;

初始密码为123456:mysqladmin -u root -p 123456 -password newpasswod;

创建数据库

格式: create database <数据库名>

例子:

create database mydatabase;

增加新用户

格式: grant select on 数据库.* to 用户名@登录主机 identified by 密码 权限: 常用总结, ALL/ALTER/CREATE/DROP/SELECT/UPDATE/DELETE 数据库: . 表示所有库的所有表 test.* 表示test库的所有表 test.test_table 表示test库的test_table表
用户名: mysql账户名 登陆主机: 允许登陆mysql server的客户端ip '%'表示所有ip 'localhost' 表示本机 '192.168.10.2' 特定IP 密码: 账户对应的登陆密码

例子:

mysql> grant ALL PRIVILEGES on database.* to username@'localhost' identified by 'password';
mysql> grant create,create routine,alter,drop,index,select,insert,update on mydatabase.* to myuser@'%' identified by 'mypassword';
mysql> grant create,create routine,alter,drop,index,select,insert,update on mydatabase.* to myuser@'localhost' identified by 'mypassword';

显示用户权限

格式: show grants for 用户名

例子:

mysql> show grants for root@'localhost';

显示数据库

格式: show databases

例子:

mysql> show databases;

删除数据库

格式: drop database 数据库名

例子:

mysql> drop database mydatabase;

连接数据库

格式: use 数据库名

例子:

mysql> use mydatabase;

当前选择的数据库

格式: select database();

例子:

mysql> select database();

创建数据表

格式:create table <表名> ( <字段名1> <类型1> [,..<字段名n> <类型n>]);

例子: 创建表MyTable

字段名 数字类型 数据宽度 是否为空 是否主键 自动增加 默认值
id int 4 primary key auto_increment
name char 20
sex int 4 0
degree double 16
mysql> create table MyTable(
    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));

获取表结构

格式: desc 表名,或者show columns from 表名

例子:

mysql> desc MyTable;
或
mysql> select columns from MyTable;

删除数据表

格式: drop table 表名

例子:

mysql> drop table MyClass;

表插入数据

格式: insert into <表名> [( <字段名1>[,..<字段名n > ])] values ( 值1 )[, ( 值n )]

例子:

mysql> insert into MyTable(name,department_id,position_id) values('陈达治',1,1);

查询表中的数据

格式: select <字段1,字段2,...> from < 表名 > where < 表达式 >

例子:

mysql> select * from MyTable;

删除表中数据

格式: delete from 表名 where 表达式

例子:

mysql> delete from MyTable where id=1;

修改表中数据

格式: update 表名 set 字段=新值,… where 条件

例子:

mysql> update MyTable set name = 'rocx-rocx' where id = 1;

增加字段

格式: alter table 表名 add字段 类型 其他;

例子:

mysql> alter table MyTable add passtest int(4) default '0';

修改表名

格式: rename table 原表名 to 新表名;

alter table 原表名 rename as 新表名;

例子:

mysql> rename table MyTable to MyClass;

查看索引

格式: show index from 表名;

例子:

mysql> show index from table1; 

创建索引

格式: alter table 表名 add index 索引名(字段名);

create index 索引名 on 新表名(字段名);

例子:

mysql> alter table table1 add index ind_id (id); 
mysql> create index ind_id on table1 (id);
mysql> create unique index ind_id on table1 (id);//建立唯一性索引

删除索引

格式: alter table 表名 drop index 索引名;

drop index 索引名 on 新表名;

例子:

mysql> alter table table1 drop index ind_id; 
mysql> drop index ind_id on table1;

备份数据库

格式: mysqldump -h 主机名 -u 用户名 -p[密码] 数据库名 > 数据库名.sql

说明:该命令是在mysql的bin目录下执行有效。若直接在命令中使用密码参数,则**-p和密码之间不能有空格**,否则会被当做数据库名;

例子:

shell> mysqldump -h host -u root -p dbname > dbname.sql

此时会提示输入密码: Enter password:

可以一步完成:

shell> mysqldump -hhost -uroot -proot dbname > dbname.sql

备份数据库表结构

例子:

shell> mysqldump -h host -u root -p -d dbname > dbname.sql

备份数据库表数据

例子:

shell> mysqldump -h host -u root -p -t dbname > dbname.sql

还原数据库

格式: mysql -h 主机名 -u 用户名 -p[密码] 数据库名 < 数据库名.sql

说明:该命令是在mysql的bin目录下执行有效。此命名要求导入的数据库已经存在,否则要先创建数据库;

例子:

shell> mysqladmin -hhost -uroot -proot create dbname

shell> mysql -hhost -uroot -proot dbname < dbname.sql

** 修改max_allowed_packet**

set global max_allowed_packet = 2*1024*1024*10

退出mysql命令行,然后重新登录。 show VARIABLES like '%max_allowed_packet%'; 查看下max_allowed_packet是否编辑成功

0

世界不可能那么远