欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

mySQL配置文件、备份与恢复

程序员文章站 2022-04-03 09:34:12
mysql配置文件 mysql的配置文件为/etc/my.cnf 配置文件查找次序:若在多个配置文件中均有设定,则最后找到的最终生效 mysql常用配置文件参数: 参数 |说明 : |: port = 3306 | 设置监听端口 socket = /tmp/mysql.sock | 指定套接字文件位 ......

mysql配置文件

mysql的配置文件为/etc/my.cnf

配置文件查找次序:若在多个配置文件中均有设定,则最后找到的最终生效

/etc/my.cnf --> /etc/mysql/my.cnf --> --default-extra-file=/path/to/conf_file --> ~/.my.cnf

mysql常用配置文件参数:

参数 说明
port = 3306 设置监听端口
socket = /tmp/mysql.sock 指定套接字文件位置
basedir = /usr/local/mysql 指定mysql的安装路径
datadir = /data/mysql 指定mysql的数据存放路径
pid-file = /data/mysql/mysql.pid 指定进程id文件存放路径
user = mysql 指定mysql以什么用户的身份提供服务
skip-name-resolve 禁止mysql对外部连接进行dns解析,使用这一选项可以消除mysql进行dns解析的时间。若开启该选项,则所有远程主机连接授权都要使用ip地址方式,否则mysql将无法正常处理连接请求

mysql数据库备份

数据库常用备份方案

数据库备份方案:

  • 全量备份:全量备份就是指对某一个时间点上的所有数据或应用进行的一个完全拷贝。
    • 数据恢复快。
    • 备份时间长
  • 增量备份:增量备份是指在一次全备份或上一次增量备份后,以后每次的备份只需备份与前一次相比增加和者被修改的文件。这就意味着,第一次增量备份的对象是进行全备后所产生的增加和修改的文件;第二次增量备份的对象是进行第一次增量备份后所产生的增加和修改的文件,如此类推。
    • 没有重复的备份数据
    • 备份时间短
    • 恢复数据时必须按一定的顺序进行
  • 差异备份:备份上一次的完全备份后发生变化的所有文件。差异备份是指在一次全备份后到进行差异备份的这段时间内对那些增加或者修改文件的备份。在进行恢复时,我们只需对第一次全量备份和最后一次差异备份进行恢复。

mysql备份工具mysqldump

语法:

mysqldump [options] database [tables ...]
mysqldump [options] --all-databases [options]
mysqldump [options] --databases [options] db1 [db2 db3...]

常用选项:

-uusername 指定数据库用户名
-hhost     指定服务器主机,请使用ip地址
-ppassword 指定数据库用户的密码
-p#        指定数据库监听的端口,这里的#需用实际的端口号代替,如-p3
mysql> show tables;
+----------------+
| tables_in_lynk |
+----------------+
| armor          |
| mastersword    |
+----------------+
2 rows in set (0.00 sec)

mysql> show databases;
+--------------------+
| database           |
+--------------------+
| information_schema |
| lynk               |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.01 sec)

mysql> use lynk
database changed
mysql> show tables;
+----------------+
| tables_in_lynk |
+----------------+
| armor          |
| mastersword    |
+----------------+
2 rows in set (0.00 sec)

#全备
[root@lynk ~]# mysqldump -uroot -p -h127.0.0.1 --all-databases > all-201902211531.sql
enter password: 
[root@lynk ~]# ls
all-201902211531.sql  anaconda-ks.cfg

#备份lynk库的mastersword和armor表
[root@lynk ~]# mysqldump -uroot -p -h127.0.0.1 lynk mastersword armor > table-201902211533.sql
enter password: 
[root@lynk ~]# ls
all-201902211531.sql  anaconda-ks.cfg  table-201902211533.sql

#备份lynk库
[root@lynk ~]# mysqldump -uroot -p -h127.0.0.1 --databases lynk > lynk-201902211536.sql
enter password: 
[root@lynk ~]# ls
all-201902211531.sql  anaconda-ks.cfg  lynk-201902211536.sql  table-201902211533.sql

数据恢复

#模拟误删数据库
mysql> drop database lynk;
query ok, 2 rows affected (0.03 sec)

mysql> show databases;
+--------------------+
| database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)

#恢复lynk数据库
[root@lynk ~]# mysql -uroot -p -h127.0.0.1 < all-201902211531.sql 
enter password: 
[root@lynk ~]# mysql -uroot -p
enter password: 

mysql> show databases;
+--------------------+
| database           |
+--------------------+
| information_schema |
| lynk               |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.01 sec)

#恢复表
mysql> use lynk
reading table information for completion of table and column names
you can turn off this feature to get a quicker startup with -a

database changed
mysql> source table-201902211533.sql
query ok, 0 rows affected (0.00 sec)
···
mysql> show tables;
+----------------+
| tables_in_lynk |
+----------------+
| armor          |
| mastersword    |
+----------------+
2 rows in set (0.00 sec)

#模拟删除整个数据库
mysql> drop database lynk;
query ok, 2 rows affected (0.04 sec)

mysql> show databases;
+--------------------+
| database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)

#恢复整个数据库
[root@lynk ~]# mysql -uroot -p -h127.0.0.1 < all-201902211531.sql 
enter password: 
[root@lynk ~]# mysql -uroot -p -h127.0.0.1 -e 'show databases;'
enter password: 
+--------------------+
| database           |
+--------------------+
| information_schema |
| lynk               |
| mysql              |
| performance_schema |
| sys                |
+--------------------+