MySQL基本命令

平时整理的文档里边的,发出来方便查看

初始化安全设置

[root@host ~]# mysql_secure_installation

运行mysql_secure_installation会执行几个设置:

a)为root用户设置密码

b)删除匿名账号

c)取消root用户远程登录

d)删除test库和对test库的访问权限

e)刷新授权表使修改生效

通过这几项的设置能够提高mysql库的安全。

#show processlist;  //查看当前数据库正在执行的sql语句。

 

登陆

mysql –u root –p

show databases;

 

建数据库

create database test;

 

创建用户

mysql>create user test@localhost identified by ‘1234’;

或者
mysql>insert into mysql.user(Host,User,Password) values(“localhost”,”test”,password(“1234”));

注意:此处的”localhost”,是指该用户只能在本地登录,不能在另外一台机器上远程登录。如果想远程登录的话,将”localhost”改为”%”,表示在任何一台电脑上都可以登录。也可以指定某台机器可以远程登录。

 

 

建用户并授权

grant all on test.* to test@localhost identified by ‘1234’;           //all为所有授权

flush privileges; //刷新系统权限表

MySQL> grant 权限1,权限2,…权限n on 数据库名称.表名称 to 用户名@用户地址 identified by ‘连接口令’;

权限1,权限2,…权限n代表select,insert,update,delete,create,drop,index,alter,grant,references,reload,shutdown,process,file等14个权限。
当权限1,权限2,…权限n被all privileges或者all代替,表示赋予用户全部权限。
当数据库名称.表名称被*.*代替,表示赋予用户操作服务器上所有数据库所有表的权限。
用户地址可以是localhost,也可以是ip地址、机器名字、域名。也可以用’%’表示从任何地址连接。
‘连接口令’不能为空,否则创建失败。

 

use test;

建表

mysql> create table ttable(

-> a text,

-> b int

-> );

mysql>create table ttable( a text, b int );

 

插入数据

mysql>insert into ttable (a,b) values (“long”,1);

insert into test set a=’long’;

修改

mysql>update ttable set a=”niubi” where b=1;

查看

mysql> select * from ttable;

删除

mysql> delete from ttable where b=1;

删除表

mysql> drop table ttable;

 

查看表(空)

mysql> show tables;

Empty set (0.00 sec)

 

表数据导出为文件(可以作为入侵使用)

mysql>set character_set_client=utf8

mysql>select * from a into outfile ‘/tmp/sqlout.txt’ fields terminated by ‘\t’ enclosed by ” escaped by ”;

mysql>select * from a into outfile ‘/tmp/sqlout.txt’; #实际测试这样也是行的

文件导入

mysql> load data local infile ‘/tmp/test.txt’ into table test;

#fields terminated by ‘,’ –逗号分隔字段

 

修改账号本地登录

use mysql;

update user set Host=”localhost” where user=”test”;

flush privileges;

 

修改密码

mysql>update mysql.user set password=password(‘strongpass’) where User=”test”;

或set password for test=password(‘hehehe’);

mysql> flush privileges; //刷新系统权限表

#在Linux控制台中更改root口令的另一种方法是使用mysqladmin工具:

$ mysqladmin -u root password new_password –p

#忘记密码要以mysqld_safe –skip-grant-tables & 启动mysql

可以不用密码登陆,改完密码然后flush privileges;

 

 

删除账号

mysql> delete from user where user=’test’;

或drop user test; //删除的是test@%  drop user test@localhost;

// 从MySQL的5.0版开始支持DROP USER命令。

mysql> flush privileges; //刷新系统权限表

 

删除建立的数据库test

mysql> drop database test;

 

显示数据表结构

mysql>describe table;

简写desc table;

显示授权

show grants;

show grants for test;//查看某一用户授权情况

移除授权

revoke delete on *.* from ‘user’@’localhost’;

给用户改名

rename user ‘test’@’%’ to ‘long’@’%’;

查看所有用户及权限

select * from mysql.user \G;

查看日志开启情况

show (global) variables like ‘%log%’;

 

删除日志文件后,执行mysqladmin flush-logs或者重启mysql来重新生成日志文件

转载请注明原作者,如果你觉得文章对你有帮助或启发,也可以来请我喝咖啡

点赞