mysqls数据库的常用管理命令

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysqls数据库的常用管理命令相关的知识,希望对你有一定的参考价值。

库,表管理
mysqladmin –u root –p password ‘123123’ //设置数据库密码
Show databases; //查看数据库
Create database school; //创建数据库(school)
Use school; //进入数据库(school)
Show tables; //查看school中的表
Create table info(id int not null primary key auto_increment,name char(10)not null,score decimal(5,2),hobby int(2)); //创建表(info)
if not exists info( id int(4) primary key, name varchar(10) not null, card varchar(50) unique key, hobby int(4)); //如info表不存在则建立该表
alter table test01 rename info01 //修改表名
alter table info change name username varchar(10) unique key; //修改信息名,并设置约束
alter table info add address varchar(50) default ‘地址不详‘ ; //添加信息
alter table info drop password; //删除信息
alter table hob add constraint pk_id primary key hob (sid); //添加主键
Select from info //查看info表中的数据
Insert into info (id,name,score) values (6,’test’,null); //插入数据
5
Select
from info where id=6; //条件筛选
Update info set score=75 where id=6; //更新信息
Delete from info where name=’test’; //删除信息
Select from info where 1=1 order by score(asc升序)(desc降序); //排序(升序/降序)
Desc info; //查看表结构
Select info.name,info.score,hob.hobname from info inner join hob where info.hobby=hob.id;
select username from info where hobby=(select sid from hob where hobname=‘游泳‘);
//多表查询
select a.name,a.score,b.hobname from info a inner join hob b where a.hobby=b.id;
//别名查询
create table infos select a.name,a.score,b.hobname from info a inner join hob b where a.hobby=b.id; //新建表infos内容为多表查询结果
create table test01(select a.username,b.hobname from info a inner join hob b where a.hobby=b.sid); //也可以这么写
Drop table infos; //删除infos表
统计count()
Select count(
) from infos;
平均值avg()
Select avg(score) from infos

事务,视图
事务:一组操作共同执行或者都不执行,结果保持一致
Begin 开始
Commit 提交
roll back 回滚(回到bigin之前的状态)
原子性:不可分割,视为一个整体
一致性:前后结果保持一致
隔离性:对数据进行修改的所有并发事务是彼此隔离的
持久性:执行成功不可修改
Set autocommit=0;禁止自动提交
Set autocommit=1;开启自动提交

索引
Create index <索引的名字>ON tablename(列的列表)
Create unique index <索引的名字>ON tablename(列的列表)
Create index id_index on info(id); //创建普通索引
Create unique index id_index on info(id); //创建唯一索引
Create table infos (descript TEXT,FULLTEXT(descript)); //创建全文索引
Create index id_age_index on info
Show index from info;
Drop index id_index from info; //删除索引
Alter table info add primary key(id); //修改表增加主键
Alter table info add column age int; //增加列
Alter table info drop column age int; //删除列

账户管理
Select user,authentication_string,host from user; //查询已创建的用户
Create user ‘test01’@’localhost’ identified by ‘abc123’; //创建用户
Password(‘abc123’) //生成密码abc123的密文
drop user ‘test02’@’localhost’; //删除用户
rename user ‘test01’@’localhost’ to ‘user01’@’192.168.175.128’; //账户重命名;
set password for ‘user02‘@‘localhost‘ = password‘abc123‘; //修改账户密码
mysqld –skip-grant-tables //跳过user表登录(修改root密码,先关服务1)

vim /etc/my.cnf(2)
[mysqld]
port = 3306
socket = /home/mysql/mysql.sock
skip-external-locking
key_buffer_size = 16M
max_allowed_packet = 1M
table_open_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
skip-grant-tables //添加如下内容(跳过user表登录)
update mysql.user set authentication_string = password(‘123abc’) where user=’root’;
给root用户设置密码
Grant 权限 on 数据库.表to 用户@主机 identified by 密码
grant all on . to ‘test02‘@‘localhost‘ identified by ‘abc123‘; //创建新用户或更改已有用户数据
Grant select school.info to ‘tom’@’localhost’ identified by ‘abc123’; //给tom账户查看school库下,info表的权限
Show grants; //查看用户权限
revoke 权限 on 数据库.表 from 用户@主机;
revoke update on . from ‘user02’@’localhost’; //撤销权限

[client]
Default-character-set=utf8

日志管理
vim /etc/my.cnf
#错误日志
log-error=/usr/local/mysql/data/mysql_error.log
#通用日志
general_log=ON
general_log_file=/usr/local/mysql/data/mysql_general.log
#二进制日志
log_bin=mysql-bin
#慢日志
slow_query_log=ON
slow_query_log_file=mysql_slow_query.log
long_query_time=1
mysqlbinlog --no-defaults mysql-bin.000001 //查看二进制日志
mysqlbinlog --no-defaults --base64-output=decode-rows -v mysql-bin.000001 //解码查看二进制日志

数据库备份
tar Jcvf /opt/mysql-$(date +%F).tar.xz /usr/local/mysql/data/ //将mysql数据库文件夹进行打包操作。(物理层面的备份)

du -sh /usr/local/mysql/data/
du -sh /opt/mysql-2018-08-30.tar.xz //检查文件大小
mysqldump -u root -p school info > /opt/info.sql //将school库中的info表信息导出放在/opt/info.sql中

mysqldump -u root -p -d school info > /opt/info.sql //将school库中的info表结构导出放在/opt/info.sql中

mysql -u root -p school < /opt/info.sql //将/opt/info.sql中的信息导回数据库school中

mysqldump -uroot -pabc123 school > /opt/school.sql
Mysqldump –uroot –p --databases school mysql > /opt/school.sql //将school和mysql库下的信息保存到/opt/school.sql文件夹下
Mysqldump –uroot –p –all-databases
Source /opt/school.sql; //在数据库中倒回文件

mysqldump –uroot –pabc123 school > school.sql
提前创建数据库school
mysql -u root –p123 school < school.sql

mysqldump -u root -p --databases school > school.sql
无需提前创建数据库
mysql -u root –p123 < school.sql

mysqlbinlog --no-defaults mysql-bin.000001 | mysql -uroot -p //增量还原

以上是关于mysqls数据库的常用管理命令的主要内容,如果未能解决你的问题,请参考以下文章

mysqls数据库的常用管理命令

MySQL的权限管理和Linux下的常用命令

mysql常用命令

MySQL常用图形化管理工具

mysql常用命令

Mysql常用命令操作小结