Mysql基本的数据库管理和数据维护命令
# Mysql数据库管理命令
# 服务管理
- 启动
systemctl start mysqld
1
- 停止
systemctl stop mysqld
1
# 用户密码管理
- 设置密码
# 方式1
mysql -uroot -ppassword -e "set passowrd for root = passowrd('passowrd')"
# 方式2
mysqladmin -uroot passowrd "NEWPASSWORD"
1
2
3
4
5
2
3
4
5
- 更改密码
# 方式1
mysqladmin -uroot passowrd oldpassowrd "NEWPASSWORD"
# 方式2
use mysql;
update user set passowrd = PASSWORD('newpassword') where user = 'root';
flush privileges;
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
# 数据库操作
# 字符集操作
- 设置字符集
show create database DB_NAME;
1
- 修改字符集
# 把库表的GBK字符集修改为UTF8
alter database demo default character set utf8;
alter table test default character set utf8;
1
2
3
2
3
- 创建数据库
# 创建GBK字符集的数据库demo,并查看已建库完整语句
create database demo DEFAULT CHARSET GBK COLLATE gbk_chinese_ci;
#查看创建库的完整语句
show create database demo;
1
2
3
4
5
2
3
4
5
- 删除数据库
# 删除demo数据库
drop database demo
1
2
3
2
3
# 用户、权限管理
- 创建用户并授权
# 创建用户demo,使之可以管理数据库demo
grant all on demo.* to 'demo'@'localhost' identified by 'demo';
# 授权demo用户从172.16.1.0/24访问数据库。
grant all on *.* to demo@'172.16.1.0/24' identified by '123456';
1
2
3
4
5
2
3
4
5
- 查看用户权限
# 查看创建的用户demo拥有哪些权限
show grants for demo@localhost
1
2
2
- 查看当前数据库里有哪些用户
select user from mysql.user;
1
- 进入demo数据库
use demo
1
- 回收权限
# 收回demo用户的select权限
revoke select on demo.* from demo@localhost;
1
2
2
- 删除用户
# 删除demo用户
drop user demo@localhost;
1
2
2
# 数据维护
# 操作表
- 创建表
# 创建一innodb GBK表test,字段id int(4)和name varchar(16)
create table test (
id int(4),
name varchar(16)
)ENGINE=innodb DEFAULT CHARSET=gbk;
1
2
3
4
5
2
3
4
5
- 查看表
# 查看建表结构及表结构的SQL语句
desc test;
show create table test\G
1
2
3
2
3
- 修改表字段
# 在字段name前插入age字段,类型tinyint(2)
alter table test add age tinyint(2) after id;
1
2
2
- 删除表
# 删除表test
drop table test;
1
2
2
# 操作数据
- 插入数据
# 插入单行数据
insert into test values('1','demo');
# 批量插入2行数据
insert into test values('2','民工哥'),('3','demoedu');
1
2
3
4
5
2
3
4
5
- 更新/修改数据
# 把数据id等于1的名字demo更改为mgg
update test set name = 'mgg' where id = '1';
1
2
2
- 查询数据
# 查询名字为demo的记录
select * from test where name = 'demo';
1
2
2
- 删除数据
# 删除名字为dxzh的记录
delete from test where name = 'dxzh';
# 删除test表中的所有数据
delete from test;
1
2
3
4
5
2
3
4
5
# 操作索引
- 创建索引
# 在手机字段上对前8个字符创建普通索引
create index SJ on test(shouji(8));
1
2
2
- 查看索引
# 方式1
show index from test;
# 方式2
show keys from test\G
1
2
3
4
5
2
3
4
5
- 删除索引
# 删除Name,shouji列的索引
drop index SJ on test;
drop index mggindex on test;
1
2
3
2
3