mysql常用命令
Mysql安装目录
环境:CentOS7
数据库目录 /var/lib/mysql/
配置文件 /usr/share/mysql(mysql.server命令及配置文件)
相关命令 /usr/bin (mysqladmin mysqldump等命令)
启动脚本 /etc/init.d/mysql (启动脚本文件mysql的目录)
一.连接MySQL
格式: mysql -h主机地址 -u用户名 -p用户密码
或者: mysql -u用户名 -p //回车后要求输入密码,密码不可见,比较安全
1、连接到本机上的MYSQL
#以下命令均可
mysql -u用户名 -p密码
mysql -hlocalhost -u用户名 -p密码
mysql -h127.0.0.1 -u用户名 -p密码
2、连接到远程主机上的MYSQL
# mysql -h远程主机IP -u用户名 -p密码
# 当然也可以先ssh登录后再切换:
# ssh 服务器IP -p服务器端口
# ssh 用户名@服务器IP -p服务器端口
3、退出MYSQL命令
exit (回车)二.修改密码
mysql> use mysql;
mysql> update user set password=PASSWORD('新密码') where user='用户名';
mysql> flush privileges; #更新权限
三.增加删除用户
#增加一个用户,让他可以在任何主机上登录,并对所有数据库有
mysql> grant all privileges on *.* to 用户名@'%' identified by '密码';
##增加一个用户,让他可以在固定主机上登录,并对数据库有
mysql> grant select,insert,update,delete on *.* to 用户名@用户IP Identified by "密码";
##增加一个用户,让他可以在数据库所在主机上登录,并对所有数据库有
mysql> grant all privileges on *.* to 用户名@localhost identified by '密码';
#删除用户
mysql> delete from user where user='用户名' and host='localhost';
mysql> flush privileges;
#删除用户的数据库
mysql> drop database dbname;
#查看所有用户
mysql> SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;
查看数据库中具体某个用户的权限
mysql> show grants for '用户名'@'%';
mysql> select * from mysql.user where user='用户名' \G
四.开始使用数据库
数据库操作
显示所有的数据库
mysql> show databases;(注意:最后有个 s)
创建数据库
mysql> create database TEST;
连接数据库
mysql> use test;
查看当前使用的数据库
mysql> select database();
当前数据库包含的表信息
mysql> show tables; (注意:最后有个 s)
删除数据库
mysql> drop database test;
表操作
备注:操作之前使用“use <数据库名>”应连接某个数据库。数据库名>
建表
命令:create table <表名> (<字段名1 类型1="">,...,<字段名n 类型n="">);字段名n>字段名1>表名>
例子:
mysql> create table MyClass(id int(4),name char(20),sex char(6),degree double(16,2));
获取表结构
命令: desc 表名,或者show columns from 表名
例子:
mysql> describe MyClass;
mysql> desc MyClass;
mysql> show columns from MyClass;
删除表
命令:drop table <表名>表名>
例如:删除表名为 MyClass 的表
mysql> drop table MyClass;
插入数据
命令:insert into <表名> [( <字段名 1>[,..<字段名 n=""> ])] values ( 值 1 )[, ( 值 n )]字段名>表名>
例子:
mysql> insert into MyClass values(1,'Tom','male',96.45),(2,'Joan','male',82.99),(4,'Wang','female', 96.59);
查询表中的数据
查询所有行
mysql> select * from MyClass;
查询前几行数据
例如:查看表 MyClass 中前 2 行数据
mysql> select * from MyClass order by id limit 0,2;
或者
mysql> select * from MyClass limit 0,2;
删除表中数据
命令:delete from 表名 where 表达式
例如:删除表 MyClass 中编号为 1 的记录
mysql> delete from MyClass where id=1;
修改表中数据
命令:update 表名 set 字段=新值,... where 条件
mysql> update MyClass set name='Mary' where id=1;
在表中增加字段
命令:alter table 表名 add 字段 类型 其他;
例如:在表 MyClass 中添加了一个字段 passtest,类型为 int(4),默认值为 0
mysql> alter table MyClass add passtest int(4) default '0'
更改表名
命令:rename table 原表名 to 新表名;
例如:在表 MyClass 名字更改为 YouClass
mysql> rename table MyClass to YouClass;
更新字段内容
命令:update 表名 set 字段名 = 新内容
update 表名 set 字段名 = replace(字段名, ‘旧内容’, ‘新内容’);
例如:文章前面加入 4 个空格
update article set content=concat(' ', content);
五.数据库导入导出
从数据库导出数据库文件
使用“mysqldump”命令
1)导出所有数据库
格式:mysqldump -u [数据库用户名] -p -A>[备份文件的保存路径]
2)导出数据和数据结构
格式:mysqldump -u [数据库用户名] -p [要备份的数据库名称]>[备份文件的保存路径]
举例:
例 1:将数据库 mydb 导出到Windows的e:\MySQL\mydb.sql或Linux的/home/MySQL/mydb.sql文件中。
进入命令行模式:
mysqldump -h localhost -u root -p mydb > e:\MySQL\mydb.sql
mysqldump -h localhost -u root -p mydb > /home/MySQL/mydb.sql
然后输入密码,等待一会导出就成功了,可以到目标文件中检查是否成功。
例 2:将数据库 mydb 中的 mytable 导出到 e:\MySQL\mytable.sql 文件中。
mysqldump -h localhost -u root -p mydb mytable>e:\MySQL\mytable.sql
例 3:将数据库 mydb 的结构导出到 e:\MySQL\mydb_stru.sql 文件中。
mysqldump -h localhost -u root -p mydb --add-drop-table >e:\MySQL\mydb_stru.sql
备注:-h localhost 可以省略,其一般在虚拟主机上用。