Mysql基本操作总结
数据库的基本操作
1.创建数据库
# create database xxx;
2.查看数据库
# show databases;
3.删除数据库
# drop database xxx;
4.使用/切换数据库
# use xxx;
5.退出数据库
# exit;
表的基本操作
1.查看数据库中所有的表
# show tables;
2.创建表
# create table xxx;
3.查看表结构
# desc xxx;
4.查看表详细结构
# show create table xxx;
5.删除表
# drop table xxx;
6.修改表名
# alter table xxx rename yyy;
7.修改字段的数据类型
# alter table 表名 modify 属性名 新数据类型; (注意外键不能改) # alter table B modify user_name char(50);
8.修改字段名与数据类型
# alter table 表名 change 旧属性名 新属性名 数据类型; # alter table GG change user_name your_name char(50);
9.增加字段
# alter table 表明 add 新字段名 数据类型
# alter table GG add phone varchar(20); # alter table GG add age int(4) not null; # alter table GG add address varchar(30) not null after phone;
10.删除字段
# alter table GG drop age;
11.删除某条记录
# delete from 表名 where 条件 # delete from 表名 //删除所有记录
12.修改表的存储引擎
# alter table A engine=MyISAM;
13.删除表的外键约束
# alter table 表名 drop foreign key 外键别名
# alter table yy2 drop foreign key y_fk;
14.删除表
# drop table xxx;
删除父表:先删除所有关联子表的外键,再删除父表
用户登录与管理相关操作
1. 创建用户
-> create user 'test1'@'localhost'identified by '123456';
-> create user 'test2'@'localhost'identified by 'PASSWORD(123456)';
-> insert into mysql.user(Host,User,Password,ssl_cipher,x509_issuer,x509_subject)values('hostname','test3',PASSWORD('123456'),'','','');
2. 查看用户信息
-> select Host,User,Password from mysql.user where User='test1' or User='test2' or User='test3'; +-----------+-------+-------------------------------------------+ | Host | User | Password | +-----------+-------+-------------------------------------------+ | localhost | test1 | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 | | localhost | test2 | *A4734F92867FE18E0DD415197D5C33D2E705F0DC | | hostname | test3 | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 | +-----------+-------+-------------------------------------------+
3. 删除用户
-> drop user 'test2'@'localhost';
-> delete from mysql.user where Host='localhost' and User='test3';
4. 修改root用户密码
# mysqladmin -u root -p password '新密码' Enter password: --->在这里要输入正确的旧密码 -> update mysql.user set Password=PASSWORD('新密码') where User='root' and Host='localhost';
5. 修改普通用户密码
# mysql -u test1 -p -> set password=PASSWORD('aixocm'); -> set password for 'test1'@'localhost'=PASSWORD('aixocm');
6. 解决忘记root用户密码问题
# /etc/init.d/mysqld start --skip-grant-tables
# mysql -u root -p --->这样可以无密码登陆进去了 -> update mysql.user set Password=PASSWORD('新密码') where User='root' and Host='localhost';
用户权限管理操作
1. 添加权限
grant 权限 on 数据库名.表名 to 'username'@'Host'
//新建用户并增加权限 grant select,update -> on *.* --->对所有数据库的所有表 -> to 'test5'@'localhost' identified by 'aixocm' -> with grant option; grant delete -> on *.* -> to 'test5'@'localhost' -> with grant option;
2. 取消权限
revoke delete -> on *.* -> from 'test5'@'localhost';
//取消所有权限 revoke all privileges,grant option from 'test5'@'localhost';
3. 查看权限
-> select User,Host,Select_priv,Update_priv,Delete_priv from mysql.user where User='test5'; +-------+-----------+-------------+-------------+-------------+ | User | Host | Select_priv | Update_priv | Delete_priv | +-------+-----------+-------------+-------------+-------------+ | test5 | localhost | Y | Y | Y | +-------+-----------+-------------+-------------+-------------+ -> show grants for 'root'@'localhost'\G; *************************** 1. row *************************** Grants for root@localhost: GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY PASSWORD '*5DBA547161E5D9C6508C3C6CF5D1B26940E3BC13' WITH GRANT OPTION *************************** 2. row *************************** Grants for root@localhost: GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION
4.刷新(加载)权限
-> flush privileges;
存储引擎相关操作
1.查看数据库支持的存储引擎
# show engines; # show engines\G; Engine:名称 Support:是否支持(YES/DEFAULT) Comment:说明 Transaction:是否支持事务 XA:是否支持分布式交易处理的XA规范 savapoint:是否支持保存点
2.查看存储引擎详细信息
# show engine innodb status\G;
3.查看默认存储引擎
# show variables like 'storage_engine';
4.修改默认存储引擎
# vim /etc/my.cnf(配置文件)
default-storage-engine=xxx