linux复盘:mysql基础

mysql经常使用命令

修改路径修改密码

/usr/local/mysql/bin/mysql -uroot #进入mysqlmysql

vim /etc/profilelinux

PATH=$PATH:/usr/local/mysql/bin #最后加上nginx

source /etc/profilesql

source命令也称为“点命令”,也就是一个点符号(.),是bash的内部命令。shell

功能:使Shell读入指定的Shell程序文件并依次执行文件中的全部语句数据库

source命令一般用于从新执行刚修改的初始化文件,使之当即生效,而没必要注销并从新登陆。vim

mysql -uroot
mysqladmin -uroot password '123456' #修改密码
mysql -uroot -p'123456' #-p后面不能有空格,密码能够不带单引号,可是若是有特殊字符时会出现问题

#忘记密码怎么办,有的是办法
vi /etc/my.cnf
[mysqld]
skip-grant #忽略受权选项,平时生产中不要添加

/etc/init.d/mysqld restart #这样就不用进入数据库的受权了,能够修改密码了
mysql -uroot
use mysql;
update user set password=password('aminglinux') where user='root';
flush privileges;
#修改完mysql库的密码后,再次编辑/etc/my.cnf/把增长的skip-grant删掉
#不删掉的话就能够不用密码进入任何库了,很是危险咱们需求只是修改mysql库的密码

 链接mysql

mysql -uroot -p123456
#此方式只能链接本地数据库localhost,但不少时候都须要链接网络中某一个主机上的mysql
mysql -uroot -p123456 -h127.0.0.1 -P3306
#-h指定远程主机的IP,-P(后面的)指定远程主机mysql的绑定端口,默认为3306
mysql -uroot -p123456 -S/tmp/mysql.sock
#-S:=socket,指定socket。此方法只适用于本地链接,等同于“mysql -uroot -p123456”
mysql -uroot -p123456 -e “show databases”
#显示全部数据库,适用于shell脚本中

mysql经常使用命令

库由表组成,表由字段组成
查询库 show databases;
切换到mysql库 use mysql;

如下命令须要切换库以后执行:
查看库里的表 show tables;
查看表里的字段 desc tb_name;
查看建表语句 show create table tb_name\G;
查看当前是哪一个用户 select user();
查看当前使用的数据库 select database();

查看全部用户 select * from user\G;
建立一个新库 create database db_name;
建立一个新表t1 create table t1(`id` int(4),`name` char(40));
查看当前数据库版本 select version();
查看mysql当前状态 show status;
查看全部参数 show variables; 
查看某参数 show variables like 'max_connect%';
修改参数 set global max_connect_errors=1000;
查看mysql进程队列 show processlist; (用的最多的地方)
查看队列详细信息show full processlist;
删除库 drop database db_name
删除表 drop table tb_name
#查看服务器队列在平常工做中最为频繁,由于它能够查看当前mysql在干什么,也能够发现是否有锁表

用户受权管理

建立一个普通用户并受权
grant all on *.* to 'user1' identified by 'passwd';
建立后指定登陆IP
grant all on *.* to 'user1'@'127.0.0.1' identified by '123456a';
#建立user1用户all表示全部的权限,并授予其全部权限“*.*”(通配符)
#第一个*表示db_name(全部的数据库);第二个*表示tb_name(全部的表)
#同时指定其来源IP127.0.0.1(即,只可经过此IP登陆)
#此处可使用通配符%,表明全部IP(通常不使用)
#设定密码:identified by

用户登陆:使用IP登陆
mysql -uuser1 -p123456 -h127.0.0.1

建立后指定登陆socket(这里不太清楚后面注意)
grant all on *.* to 'user2'@'localhost' identified by '123456';
用户的登陆使用socker登陆
mysql -uuser2 -p'123456'
#指定登陆主机为localhost,因此该用户默认使用(监听)本地mysql.socket文件,不须要指定IP便可登陆。
对具体权限进行受权:
create database db1;
#建立一个新库db1
grant SELECT,UPDATE,INSERT on db1.* to 'user2'@'192.168.133.1' identified by 'passwd';
#建立user2用户,并授予其针对db1库SELECT,UPDATE,INSERT权限
grant all on db1.* to 'user3'@'%' identified by 'passwd';show grants;
#建立user3,并针对全部IP授予其db1库全部权限
#用户和主机用@分割,主机IP用%代替表示全部主机

show grants;
#查询当前用户权限
show grants for user2@192.168.133.1;
#查看指定用户权限

经常使用sql语句

select count(*) from mysql.user;
#查看指定库的行数,musql.user表示mysql库的user表,count(*)表示共有多少行
select * from mysql.db;
#查询库的全部内容
select db from mysql.db;
select db,user from mysql.db;
#查看库指定内容,db表的全部内容
select * from mysql.db where host like '192.168.%';
#查看某些IP对应的库内容,like表示匹配
insert into db1.t1 values (1, 'abc');
#向表中插入内容
update db1.t1 set name='aaa' where id=1;
#更改表的某一行
truncate table db1.t1;
#清空一个表中内容
drop table db1.t1;
#删除表
drop database db1;
#删除库

数据备份恢复

当数据库量小的时候用能够,若是量大了就须要用其余的备份方法备份:bash

备份指定库  mysqldump -uroot -p123456 mysql > /tmp/mysql.sql

备份全部库 mysqldump -uroot -p123456 -A > /tmp/mysql.sql


恢复库 mysql -uroot -p123456 mysql < /tmp/mysql.sql


备份指定表 mysql -uroot -p123456 mysql user > /tmp/user.sql

只备份表结构 mysqldump -uroot -p123456 -d mysql > /tmp/mysql.sql


恢复表 mysql -uroot -p123456 mysql user < /tmp/user.sql
相关文章
相关标签/搜索