赞
踩
数据库中的库就相当于系统中的目录,而表则更像文件
mysql>show variables like 'character_set_%'; 查看字符集是否支持中文
登录&设置密码 | ||||
登录 | mysql 参数:-u:指定用户名 -p:指定密码 -h:指定主机 -P:指定端口 登录方式:mysql(默认登录root,且root没有密码) mysql -uroot -p (按回车后输入密码进入数据库) mysql -uroot -p密码 (直接登录数据库,但不安全) | |||
退出登录 | quit、exit、ctrl+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 类型…); 查看的时候可能有多个目标,所以database和table都有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用户的密码。 | |||
插入 数据 | insert into 表名(字段1,字段2…) values(字段1的值,字段2的值…); insert into 表名 values (‘值’,’值’,’值’); 第二行不指定表中的字段,会按照默认的顺序进行一对一插入。 对li表插入name为xiaofa,passwd为123123的记录。 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'; //更改账户名name为lil,登录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; | //显示服务器状态 | |||
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。