任务:
13.1 设置更改root密码
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工具备份mysql数据/#三、开始恢复mysql
相关视频
链接:http://pan.baidu.com/s/1miFpS9M 密码:86dx
链接:http://pan.baidu.com/s/1o7GXBBW 密码:ue2f
13.1 设置更改root密码
1,更改环境变量让mysql启动更方便
- 安装完mysql的正常启动:
/usr/local/mysql/bin/mysql -uroot
- 把
/usr/local/mysql/bin/
添加到环境变量里
export PATH=$PATH:/usr/local/mysql/bin/
- 使新添加的环境变量永久生效
vim /etc/profile
将以下内容添加至文件中
export PATH=$PATH:/usr/local/mysql/bin/
- 这样每次开机都会执行这条命令
- 单纯修改文件并不会马上生效,需要执行
source /etc/profile
2,为空密码的root用户添加密码
mysqladmin -uroot password '123456'
- 对于已经有密码的root用户无效
3,为已知密码的root用户修改密码
mysqladmin -uroot -p旧密码 password '新密码'
4,为不知道密码的root用户修改密码
4.1编辑mysql配置文件
vim /etc/my.cnf
4.2 在[mysqld]下边加一行
skip-grant-tables(5.7需要-tables老师讲的版本不需要)
4.3 重启服务
/etc/init.d/mysqld restart
4.4 不输入密码直接登录mysql
- 因为设置了跳过授权,所以可以直接登录
4.5 在mysql>
提示符下依次执行
mysql>use mysql
mysql> update mysql.user set authentication_string=password('密码') where userr='用户名';
- 5.7以下的修改密码命令为update user set password=password(‘aminglinux’) where user=‘root’
4.6 退出mysql然后编辑/etc/my.cnf
文件,把跳过授权那一行删除。
4.7 重启服务
13.2 连接mysql
1,连接本机
mysl -u用户名 -p密码
2,连接远程
mysql -u用户名 -p密码 -h域名或IP地址 -P端口号
3,通过sock文件连接
mysql -u用户名 -p密码 -S文件名(sock文件)
- 默认以这种方式登录,也就是说-S选项可以省略
- 这种方式只适合在本机
4,通过命令行直接操作mysql(不需要进入mysql)
mysql -u用户名 -p密码 -e "show databases"
- 一般用于shell脚本中
13.3 mysql常用命令
1,查询库
show databases;
- 注意mysql的命令需要以分号;结尾
- 注意提示符变为mysql>说明进入mysql了。命令用法和外面不同。
2, 切换库 use mysql;
- mysql是由一个个库构成的。其中,库又包含了表。表又包含了字段
3,查看库里的表 show tables;
4,查看表里的字段 desc tb_name(表的名称);
5,查看建表语句 show create table tb_name(表名称)\G;
- \G的作用是改变显示的排序
6,查看当前用户 select user();
- 如果登录用户是以127.0.0.1的IP登录的话,那么这里会显示为
+----------------+
| user() |
+----------------+
| root@localhost |
+----------------+
1 row in set (0.00 sec)
- 如果登录用户是以其他IP形式登录的话,那么这里会跟据IP来反解析出主机名。
+-----------+
| user() |
+-----------+
| root@lnmp |
+-----------+
1 row in set (0.00 sec)
7,查看当前使用的数据库 select database();
8,创建库 create database db1(库名);
9,创建表 create table t1(`id` int(4), `name` char(40)) ENGINE=InnoDB CHARSET=utf8;
- ti是表的名称
- id是第一个字段,name是第二个字段
- int(4)是这个字段的格式。int表示数字括号里的是这个字段的最大长度。
- char表示字符
- ENGINE指定表所用的引擎
- CHARSET=utf8指定表的字符集
10,删除表 drop table t1;
11,查看当前数据库版本 select version();
12,查看数据库状态 show status;
13,查看各参数 show variables;
14,模糊查询参数 show variables like ‘max_connect%’;
- 百分号%在这里是通配符。
15, 修改参数 set global max_connect_errors=1000;
- 这里修改只是临时修改。
- 如果想永久修改,请修改/etc/my.cnf文件内的参数。
16,查看队列 show processlist; show full processlist;
- 加不加full的区别在于最后一行是否完整。
13.4 mysql用户管理
1,创建用户
grant all on *.* to '用户名'@IP identified by '密码';
- 把所有的权限给user1
- *.*表示所有的库和表。前边的星表示库,后边的星表示表。
- @IP可以省略,默认是全部IP都可以访问。这里如果指定了,那么只有指定IP可以访问。
- IP为’%'时表示所有的IP都可以使用。
- grant命令不会记录到命令历史
2,跟据具体的情况授权
grant SELECT,UPDATE,INSERT on db1.* to 'user2'@'192.168.133.1' identified by 'passwd';
- 给user2授予了SELECT,UPDATE,INSERT的权限
- 并且user2可以操作db1库下的所有表。
3,查看当前用户的所有权限。
show grants;
4,查看指定用户的授权情况
show grants for user2@192.168.133.1;
- 当需要为授权的用户增加IP时需要通过这个命令来查询授权内容。
13.5 常用sql语句
1,查询一个表的行数
select count(*) from mysql.user;
- 库和表中间有一个点
- MyISAM引擎下会非常快。InnoDB下会非常慢。
2,查看一个表的所有内容
select * from mysql.db;
- 尽量不要使用这种方式查询。因为数据库非常大时。这样查会占用很多资源。
3,查询一个字段
select db from mysql.db;
- 也可以查询多个字段。字段间使用逗号隔开
4,模糊查询
select * from mysql.db where host like '192.168.%';
- 在mysql.db里查询host字段含有192.168.开头的内容。
5,为表添加记录。
insert into xy1.t1 values (1, 'abc');
- 插入前要先搞清楚,这个表有几个字段是自己需要的。
- 字段之间使用逗号隔开
- 字符型的字段要加单引号和数字进行区分
6,修改记录
update db1.t1 set name='aaa' where id=1;
7,删除记录
delete from xy1.t1 where id=1;
8,清空一个表
truncate table db1.t1;
清空的是记录,字段依然存在
9,删除一个表
drop table db1.t1;
10,删除一个库
drop database xy1;
如果,对于一个没有备份过的表或库使用drop命令。那就等着被开除吧!
13.6 mysql数据库备份恢复
1,备份库
mysqldump -uroot -p79823871 mysql > /tmp/mysqlbak.sql
- 不加> /tmp/mysql.sql的话,就会把备份过程显示出来
2,恢复库
mysql -uroot -p123456 mysql < /tmp/mysql.sql
3,备份表
mysqldump -uroot -p123456 mysql user > /tmp/user.sql
- 这里库和表用空格分开
4,恢复表
mysql -uroot -p123456 mysql < /tmp/user.sql
- 恢复表的时候只要填写表所在的库名即可。
5,备份所有库
mysqldump -uroot -p -A >/tmp/mysql_all.sql
6,只备份表结构
mysqldump -uroot -p123456 -d mysql > /tmp/mysql.sql
- 只有表头字段,没有内容。
直播笔记
扩展内容
https://blog.csdn.net/xiaoyi23000/article/details/80521423
https://blog.csdn.net/u013399093/article/details/70568837
https://www.cnblogs.com/abobo/p/4242417.html
http://isky000.com/database/mysql-perfornamce-tuning-cache-parameter