Linux基础——MySQL(二)命令

数据库中的库就相当于系统中的目录,而表则更像文件

mysql>show variables like 'character_set_%';   查看字符集是否支持中文

登录&设置密码

登录

mysql

参数:-u:指定用户名

      -p:指定密码

      -h:指定主机

      -P:指定端口

登录方式:mysql(默认登录root,且root没有密码)

          mysql -uroot  -p (按回车后输入密码进入数据库)

          mysql -uroot  -p密码 (直接登录数据库,但不安全)

退出登录

quitexitctrl+D(使用x-shell时,ctrl+D默认为注销登录)

设置密码

mysqladmin

实例:

[root@centos ~]# mysqladmin -uroot passowrd"新密码"

//root用户设置新密码

[root@centos ~]# mysqladmin -uroot -p'abc123,' password 123123

mysql> set password=passowrd(‘666666’)

//默认修改当前用户密码,重启后消失

数据库中使用的命令,以分号结尾进行执行

查看

show  /;

查看库:mysql> show databases;

查看表:mysql> show tables;

切换库

use  库名;

切换库:mysql> use mysql;

Ps:库可以切换可以查看(不管是切换还是查看,都需要当前库中有库或表,否则就要加上具体的位置,以“.”分隔),但是表只能查看,不能切换。

查看表结构

describe ./;

查看mysql库中的user表结构:mysql> describe mysql.user;

describe同等与desc           mysql>desc mysql.user;

更改

名称

rename

mysql> rename table 原名称 to 新名称;

创建

/

create  database 库名;

        table   表名(字段1 类型, 字段2 类型…);

查看的时候可能有多个目标,所以databasetable都有s

创建库名为LJL的库:mysql> create database LJL;

创建表名为li的表:mysql> create table li(name char(20) not null, passwd char(30) default '', primary key(name));

解释char为字符长度;not null为该列中的值不能为空;default为默认,引号内为空格,空格也是有值的,但是null是什么都没有;primary key为主键,一个表中只能有一个主键,用于标识唯一记录,主键标识的列中的值是唯一的,不能重复。

ps

如果忘记设置主键,可以使用:

alter table 表名  add primary key(字段);

查询

语句

select  字段名1,字段名2… from 库名.表名/表名 where 条件表达式;

如果显示所有字段,可以用*表示。当数据量过大时,会显示乱码,所以一般我们需要看什么就找哪些字段。

查看user_info表中所有内容

查找user_info表中,性别为女的记录


数据库root用户的信息存储于mysql库下的user

通过这个表,可以更改root用户的密码。

插入

数据

insert into 表名(字段1,字段2…) values(字段1的值,字段2的值…);

insert into 表名 values (‘’,’’,’’);

第二行不指定表中的字段,会按照默认的顺序进行一对一插入。

li表插入namexiaofapasswd123123的记录。

mysql> insert into li(name,passwd) values('xiaofa',123123);

mysql> insert into li values('yasuo',123456);                               

加密密码

mysql> insert into li(name,passwd) values('shitou',password('123123'));

password(‘ ’):小括号中’’号里的内容生成加密密码。

更新

数据

update 表名 set 字段1=1,字段2=2… where 条件表达式

shitou的密码改成abc123

mysql> update li set passwd='abc123' where name='shitou';

更改root用户密码

mysql> update mysql.user set password=password('123123') where user='root';

mysql> flush privileges;

//刷新权限,退出后即可使用新密码登录。

删除

数据

delete  from ./ where  条件表达式

删除li表里shitou的数据

mysql> delete from li where name='shitou';

删除数据时,满足一个条件,将删除满足条件的所有数据的行

删除

/

drop table .表名/表名

drop database 库名

删除li

mysql> drop table li;

删除LJL

mysql> drop database LJL;

用户权限设置

mysql.user

存放登录用户信息的数据库表

命令

grant

%表示任意

_表示一位,取值0-9

授权xiaofa用户只能在本机登录,拥有所有权限(增删改查等)

mysql> grant all on *.* to 'xiaofa'@'192.168.200.4' identified by '123123';

grant all:表示授权所有类型(增删改查之类)

*.*:表示所有库所有表

xiaofa@192.168.200.4:表示xiaofa用户的登录主机的IP地址

123123:为xiaofa用户的登录密码

mysql> flush privileges;

//刷新

也可以使用create创建用用户

如:mysql> create user 'name'@'192.168.200.4' identified by '123123';

测试

关闭本机防火墙

[root@centos ~]# mysql -uxiaofa -pabc123 -h 192.168.200.4

-h:指定要登陆的主机IP

客户机登录MySQL

mysql> grant all on *.* to 'xiaofa'@'192.168.200.6' identified by '123123';

mysql> flush privileges;

//刷新

测试

关闭两端的防火墙,在客户端使用yum安装mysql命令。

[root@client ~]# mysql -uxiaofa -p123456 -h 192.168.200.4

-h:指定要登录的主机IP

更改账

户名称

rename

rename ./ 账户’@’IP’  to  账户’@’IP’;

mysql> rename user 'name'@'192.168.200.6' to 'lil'@'192.168.200.4';

//更改账户名namelil,登录IP192.168.200.6更改为192.168.200.4

原:

新:

给用户设置密码

给当前用户设置密码:set password=password(‘密码’)

给其他用户设置密码:set password for ‘用户名’@’IP’=password(‘密码’)

也可以使用updata命令,更新某个用户的密码

删除

用户

drop

drop user ‘用户名@IP’;

删除xiaofa200.4的记录:mysql> drop user 'xiaofa'@'192.168.200.4';

也可以使用delete删除

查看自己的权限

 show grants

默认查看超户的权限。

GRANT ALL表示所有类型,默认允许所有时,只显示GRANT ALL,并不具体显示那些权限。

show grants for ‘账户名’@ ‘IP’

查看指定账户权限

撤销用户权限

revoke

撤销xiaofa用户的查询权限

mysql> revoke select on *.* from 'xiaofa'@'192.168.200.6';

此时查看xiaofa@192.168.200.6的权限

括号内的权限加上select就是允许所有类型中所包含的权限。

mysql> flush privileges;

//刷新

添加用户权限

grant

添加xiaofa用户的查询权限

mysql> grant select on *.* to 'xiaofa'@'192.168.200.6';

测试

在客户机上,退出数据库,重新进入mysql库后,输入查询user表的命令

提示select命令在xiaofa@192.168.200.6上被拒绝。

MySQL日志管理

MySQL

日志

错误日志

通用查询日志

二进制日志

慢速查询日志

错误日志

[root@centos ~]# vim /etc/my.cnf

//进入主配置文件,添加以下内容

log-error = mysql_error.log

[root@centos ~]# /etc/init.d/mysqld restart

//重启服务,应用配置

[root@centos ~]# cat /usr/local/mysql/data/mysql_error.log

//查看错误日志

通用查询日志

[root@centos ~]# vim /etc/my.cnf

//进入主配置文件,添加以下内容

log = ON

log =/usr/local/mysql/data/mysql_general.log

保证mysql对该路径下的目录具有写入权限

[root@centos ~]# mysql -uroot -p

//登录数据库

在数据库中执行任意命令后退出数据库

[root@centos ~]# tail -f /usr/local/mysql/data/mysql_general.log

//动态追踪日志,从尾部显示日志中的内容

二进制

日志

只要修改了数据库中数据的SQL都会被记录

[root@centos ~]# vim /etc/my.cnf

//进入主配置文件,添加以下内容

log-bin = mysql-bin

[root@centos ~]# cd /usr/local/mysql/data/

//进入data目录

[root@centos data]# mysqlbinlog mysql-bin.00001

[root@centos data]# mysqlbinlog --no-defaults mysql-bin.00001

慢速查询

日志

[root@centos ~]# vim /etc/my.cnf

//进入主配置文件,添加以下内容

log_query_time = 5                 单位默认为秒

log-slow-queries = mysql_slow.log

[root@centos ~]# /etc/init.d/mysqld restart

//重启服务,应用配置

[root@centos data]# ll /usr/local/mysql/data/mysql_slow.log

//查看慢查询日志目录状态

课外

拓展

mysql> show status;

//显示广泛的服务器状态信息

mysql> help create database/tables;

//显示创建特定数据库或表

mysql> show grants;

//显示授权用户的安全权限

mysql> show errors;

mysql> show warnings

//显示服务器错误或警告信息

mysql> select user();

//显示当前连接用户

mysql> select now();

//显示当前时间

mysql>select CURRENT_USER(), CURRENT_TIMESTAMP;

mysql> select user(),now();

//显示用户及时间

mysql> select database();

//显示当前所在数据库位置

mysql> status;

//显示服务器状态

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值