当前位置: 代码迷 >> 综合 >> 保障训练-20200918
  详细解决方案

保障训练-20200918

热度:15   发布时间:2024-01-03 13:27:51.0

13.1 设置更改root密码(这个是mysql5.6的方法)

mysql5.7版本或者mariadb10.3用这种方法:

https://blog.51cto.com/13293070/2400944?source=dra

13.2 连接mysql

13.3 mysql常用命令

13.4 mysql用户管理

13.5 常用sql语句

13.6 mysql数据库备份恢复

使用xtrabackup备份innodb引擎的数据库 innobackupex 备份 Xtrabackup 增量备份 http://zhangguangzhi.top/2017/08/23/innobackex%E5%B7%A5%E5%85%B7%E5%A4%87%E4%BB%BDmysql%E6%95%B0%E6%8D%AE/#%E4%B8%89%E3%80%81%E5%BC%80%E5%A7%8B%E6%81%A2%E5%A4%8Dmysql

一、设置更改root密码(这个是mysql5.6的方法)

1.把mysql命令加入环境变量PATH

# 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选项后面可跟密码,也可不跟密码,不跟密码是交互式登录

如果知道root密码,可以使用mysqladmin直接更改密码

# mysqladmin -uroot -p'mysql' password 'abcsss' 

如果不知道root密码,需要按如下方法重置mysql密码

1.在/etc/my.cnf配置文件里添加 skip-grant2.mysql -uroot   ---进入到库3.use  mysql   ----切换到库4.update user set password=password('abcd') where user='root';   --更改密码5.编辑/etc/my.cnf,取消skip-grant6./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 user2@localhost

五、常用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.恢复数据库

先删除原先的mysql

drop database mysql

进行恢复

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

  相关解决方案