备份是将一台服务器的数据,进行复制到另外一台或者多台服务器上的过程,虽然可以通过强化硬件来保证数据安全,但是如果因为宕机出现的数据丢失问题,在没有备份的情况下,无法恢复数据,所以备份可以有效避免数据丢失问题
备份库中多表 mysqldump -u user -p密码 要备份的库 要备份的表 表1 表2 > /path
备份多个库 mysqldump -u user -p密码 -B 要备份的库 库1 库2 > /path
option选项: -R:只导出存储过程和函数 -d:只备份表结构,不备份表数据 -t:只备份表数据,不备份表结构 -A:备份所有库 -B:备份多个库
Mysql日志记录mysql的日常操作,以及发生的错误信息,不同的日志拥有不同的功能,从日志中可以解决很多问题,比如mysql瓶颈,用户操作信息,修改数据库的信息等等
mysql> show variables like 'log_%';
+----------------------------------------+---------------------+
| Variable_name | Value |
+----------------------------------------+---------------------+
| log_bin | OFF | 是否开启二进制文件
| log_bin_basename | |
| log_bin_index | |
| log_bin_trust_function_creators | OFF |
| log_bin_use_v1_row_events | OFF |
| log_error | /var/log/mysqld.log |错误日志的路径
| log_output | FILE |日志输出形式
| log_queries_not_using_indexes | OFF |日志是否保存没有使用索引的查询语句
| log_slave_updates | OFF |是否记录从库更新
| log_slow_admin_statements | OFF |
| log_slow_slave_statements | OFF |
| log_throttle_queries_not_using_indexes | 0 |
| log_warnings | 1 |是否记录警告记录
+----------------------------------------+---------------------+
记录mysql运行时,停止时,所发生的问题
开启错误日志:在/etc/my.cnf中的添加或者查看log-error配置项,如果指定路径会和初始化路径冲突,不写路径默认存放在初始化指定的路径下
在mysql中维护了一个存放用户信息的表,user,该表位于mysql数据库中,用户之所以能登录mysql是因为匹配了该表中的用户信息,才能登录成功,否则登录失败
SELECT * FROM mysql.user\G
用来查看用户权限的表
一旦删除此表,数据库将会瘫痪
包含user,host,password,使用用户,用户有权限的主机名,和密码(5.7.20之后使用authentication_string保存密码),当用户登录mysql时,之后匹配用户列的内容才能成功登录mysql,user和host列属于联合主键,用来确定用户身份的唯一性
规定了用户只能在给定权限的范围内进行活动,如果该用户没有权限,将不能执行指定的命令,在user表中,如果用户拥有该权限则该权限为Y,如果没有则为N,在priv权限列中,所有的字段使用ENUM枚举进行控制,只有Y和N两个选项,不存在空值
ABS(x):用于给x求绝对值,一个负数的绝对值等于它的相反数,一个正数的绝对值等于它本身
例:
mysql> SELECT ABS(10.5);
+-----------+
| ABS(10.5) |
+-----------+
| 10.5 |
+-----------+
1 row in set (0.00 sec)
mysql> SELECT ABS(-10.5);
+------------+
| ABS(-10.5) |
+------------+
| 10.5 |
+------------+
1 row in set (0.00 sec)
PI():周长和直径的比值
+ - * / %(求余运算)
mysql> CREATE TABLE test3(num INT); /*创建一个表,表中有一个字段,类型为INT*/
Query OK, 0 rows affected (0.13 sec)
mysql> INSERT INTO test3 VALUES(40); /*字段中插入一个数字40*/
Query OK, 1 row affected (0.00 sec)
mysql> SELECT * FROM test3;
+------+
| num |
+------+
| 40 |
+------+
1 row in set (0.00 sec)
/*使用算数运算符来操作表中的INT字段*/
mysql> SELECT num,num+10,num-100,num*3,num/3,num%3 FROM test3;
/*使用算数运算符查看test3的num字段,以及字段中的值+10的结果,值-100的结果,值*3的结果,值/3的结果,值除以3之后的余数*/
+------+--------+---------+-------+---------+-------+
| num | num+10 | num-100 | num*3 | num/3 | num%3 |
+------+--------+---------+-------+---------+-------+
| 40 | 50 | -60 | 120 | 13.3333 | 1 |
+------+--------+---------+-------+---------+-------+
1 row in set (0.01 sec)
mysql> ALTER TABLE test3 MODIFY num DECIMAL(4,1); /*修改数据类型为定点数据类型保留小数一位*/
Query OK, 1 row affected (0.03 sec)
Records: 1 Duplicates: 0 Warnings: 0
mysql> INSERT INTO test3 VALUES(40.2); /*插入带有小数点的一个值40.2*/
Query OK, 1 row affected (0.00 sec)
mysql> SELECT num%3 FROM test3;
/*小数点后的数字不参与取余的运算,直接拿余数+小数位的数字,也就是40.2中40除以3余1,在加上剩下的0.2*/
+-------+
| num%3 |
+-------+
| 1.0 |
| 1.2 |
+-------+
1 / 2