24 MYSQL常用操作
设置更改root密码
1.把mysql工具加入环境变量
echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
2.重启服务/重新加载profile文件
/etc/inin.d/mysqld restart
source /etc/profile
3.设置root密码
mysqladmin -uroot password 'mysql' ---单引号可加可不加,但又特殊字符最好加上/-u指定用户
4.测试登录
mysql -uroot -p ---p选项后面可跟密码,也可不跟密码,不跟密码是交互式登录
更改密码
mysqladmin -uroot -p'mysql' password 'abcsss'
重置mysql密码
1.在/etc/my.cnf配置文件里添加 skip-grant
2.mysql -uroot ---进入到库
3.use mysql ----切换到库
4.update user set password=password('abcd') where user='root'; --更改密码
5.取消skip-grant
6./etc/init.d/mysqld restart ----重启mysql服务
连接mysql :
1.连接本地
mysql -uroot -pmysql
2.连接远程
mysql -uroot -pmysql -h127.0.0.1 -P3306 --P指定端口 --h指定host(IP)
3.通过sock连接
mysql -uroot -pmysql -S/tmo/mysql.sock -S指定sock文件
4.连接mysql后运行命令(多数使用在shell脚本里)
mysql -uroot -pmysql -e "show databases" --查看都有什么数据库
mysql常用命令:
库是由表组成的。表由字段组成的 库---表--字段
show databases; --查看都有什么数据库
use mysql ; ---切换到那个库
show tables; - --查看库里的表
desc user; 查看字段
查看建表语句
show create table user\G; ---\G表示竖排显示
查看当前用户
select user(); --当前登录为本机
查看当前使用的数据库
select database(); --当前所在mysql库
创建库
create database db2; --可以看到多个db2的库
创建表
create table t1(`id` int(4), `name` char(40)); --t1为名字 id、name为字段 int为格式 char字符串最长40
查看当前数据库版本
select version(); ---当前为5.6.36
查看数据库状态
show status;
查看mysql的参数--这些参数也可以再my.cnf定义
show variables; --这里列举一部分
也可以指定查找
show variables like 'slo%'; ---%表示通配,当你不记得字母可以使用这个
修改mysql参数
set global max_connect_errors=1000; --global只是临时修改,要永久生效需要去配置文件添加
查看当前mysql服务器的队列:
查看服务器队列可以查看当前mysql在干什么,也可以发行是否有锁表!
show processlist;
show full processlist; 完整查看(可以看到info这里显示比较完整)
mysql用户管理
创建用户;
all:权限命令 *.* 表示允许操作那些库
grant all on *.* to 'user1' identified by 'user1';
创建用户且只能使用SELECT命令和操作db1库,@后面指定来源IP
grant SELECT on db1.* to 'user2'@'localhost' identified by 'user2'
创建用户使用全部命令和全部库,任何机器都可以连接 %表示全部来源IP
grant all on *.* to 'user2'@'%' identified by 'user2'
查看用户权限;
show grants; ---这里是root登录只能查看root
查看其它用户权限
show grants for user1;
如果有指定IP的用户需要加上@后面跟指定的IP
show grants for [email protected];
常用sql语句
查询语句;
count(*)表示表中有几行 mysql.user :表示查询mysql库中的user表
select count(*) from mysql.user;
查询表中的所有数据
mysql.user :表示查询mysql库中的user表 *表示所有数据
select * from mysql.user\G;
查询指定段的数据
select db from mysql.user;
也可以指定多个字段查询数据
select db,user from mysql.db;
插入一行数据;
use db1; ---切换db1库
create table t3 (`id` int(4), `name` char(40)); ---创建一个t3的表
insert into db1.t3 values (1,'aa'); ----插入一行数据
select * from db1.t3; ---查询表中数据
更改表中数据
update db1.t3 set name='123' where ind=1;
可以看到表中数据原本是aaa变成了123
清空表中数据,表中结构保留
truncate table db1.t3;
desc查看字段,可以看到只清空了表的数据,结构还是保留了
删除表;
show tables; --- 查询当前库的表
drop table db1.t3; ----删除表
可以看到原本的t3表已经删除了。
删除库;
show databases; ---查询当前库
drop database db1; ---删除库
可以看到原本的db1库已经删除了。
mysql数据库备份恢复
备份数据库示例;
1. show databases; ---查询库
2.退出mysql利用mysqldump工具进行备份
mysqldump -uroot -pmysql mysql > /beifen/mysql.sql ---备份mysql到beifen目录改名为sql后缀
3.cd 查询是否备份成功
4.恢复数据库
1.我先删除原先的mysql
drop database mysql;
2.进行恢复
mysql -uroot -pmysql </beifen/mysql.sql
进入表查看
show tables;
备份表
备份表;mysqldump -uroot -pmysql mysql mysql t1 >/beifen/t1.sql
恢复表;mysql -uroot -pmysql mysql < /beifen/t1.sql
备份所有库;mysqldump -uroot -Pmysql -A >/beifen/quanbu.sql
只备份表结构;mysqldump -uroot -Pmysql -d mysql >/beifen/jiegou.sql