linux mysql进阶_mysql进阶

二进制格式mysql安装

[root@localhost ~]# cd /usr/src/[root@localhost src]#lsdebug kernels mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz

[root@localhost src]# groupadd-r mysql

groupadd:“mysql”组已存在

[root@localhost src]# useradd-M -s /sbin/nologin -g mysql mysql

useradd:用户“mysql”已存在

[root@localhost src]#tar xf mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz -C /usr/local/[root@localhost src]#ln -sv mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz mysql'mysql' -> 'mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz'

[root@localhost local]# chown -R mysql:mysql /usr/local/mysql

[root@localhost local]# ll -d /usr/local/mysql

lrwxrwxrwx. 1 mysql mysql 36 12月 30 05:01 /usr/local/mysql -> mysql-5.7.31-linux-glibc2.12-x86_64/

[root@localhost src]# ls /usr/local/mysql-5.7.31-linux-glibc2.12-x86_64/bin docs include lib LICENSEman README share support-files

[root@localhost src]#echo 'export PATH=/usr/local/mysql/bin:$PATH' > /etc/profile.d/mysql.sh[root@localhost src]# ./etc/profile.d/mysql.sh[root@localhost src]#echo$PATH/usr/local/mysql/bin:/usr/local/httpd/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

[root@localhost src]#

[root@localhost ~]# mkdir /opt/data

[root@localhost~]# chown mysql:mysql /opt/data/[root@localhost~]# ll /opt/总用量0drwxr-xr-x. 2 mysql mysql 6 12月 29 00:56data

[root@localhost~]#

启动数据库

[root@localhost ~]# service mysqld start

Redirecting to/bin/systemctl start mysqld.service

初始化数据库

[root@localhost local]# /usr/local/mysql/bin/mysqld --initialize --user=mysql --datadir=/opt/data/

2020-12-30T10:06:24.338513Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).

2020-12-30T10:06:24.759563Z 0 [Warning] InnoDB: New log files created, LSN=45790

2020-12-30T10:06:24.792643Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.

2020-12-30T10:06:24.852711Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: acb4ac01-4a86-11eb-b585-000c2975fe91.

2020-12-30T10:06:24.853487Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.

2020-12-30T10:06:25.543391Z 0 [Warning] CA certificate ca.pem is self signed.

2020-12-30T10:06:25.635377Z 1 [Note] A temporary password is generated for root@localhost: )9Ms#lXod+s=

[root@localhost local]#

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将无法正常处理连接请求

生成配置:

[root@localhost local]# vim /etc/my.cnf

[mysqld]

basedir= /usr/local/mysql

datadir= /opt/data

socket= /tmp/mysql.sock

port= 3306pid-file = /opt/data/mysql.pid

user=mysql

skip-name-resolve

启动:

[root@localhost local]# cp -a /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

[root@localhost local]# vim/etc/init.d/mysqld

basedir=/usr/local/mysql

datadir=/opt/data

启动mysql服务:

[root@localhost local]# mysql -uroot -p'y!=Qgsthp3hu'mysql: [Warning] Using a password on the command line interface can be insecure.

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connectionid is 2Server version:5.7.31Copyright (c)2000, 2020, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

Type'help;' or '\h' for help. Type '\c' to clearthe current input statement.

mysql>

重设密码:

mysql> set password = password('123');

Query OK,0 rows affected, 1 warning (0.01sec)

mysql>quit

Bye

[root@localhost local]# chkconfig--add mysqld

[root@localhost local]# chkconfig mysqld on

[root@localhost local]# chkconfig--list

注:该输出结果只显示 SysV 服务,并不包含

原生 systemd 服务。SysV 配置数据

可能被原生 systemd 配置覆盖。

要列出 systemd 服务,请执行'systemctl list-unit-files'。

查看在具体 target 启用的服务请执行'systemctl list-dependencies [target]'。

mysqld0:关 1:关 2:开 3:开 4:开 5:开 6:关

[root@localhost local]#

[root@localhost ~]# mysql

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connectionid is 5Server version:5.7.31MySQL Community Server (GPL)

Copyright (c)2000, 2020, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

Type'help;' or '\h' for help. Type '\c' to clearthe current input statement.

mysql>

备份方案特点

全量备份

全量备份就是指对某一个时间点上的所有数据或应用进行的一个完全拷贝。

数据恢复快。

备份时间长

增量备份

增量备份是指在一次全备份或上一次增量备份后,以后每次的备份只需备份

与前一次相比增加和者被修改的文件。这就意味着,第一次增量备份的对象

是进行全备后所产生的增加和修改的文件;第二次增量备份的对象是进行第一次增量

备份后所产生的增加和修改的文件,如此类推。

没有重复的备份数据

备份时间短

恢复数据时必须按一定的顺序进行

差异备份

备份上一次的完全备份后发生变化的所有文件。

差异备份是指在一次全备份后到进行差异备份的这段时间内

对那些增加或者修改文件的备份。在进行恢复时,我们只需对第一次全量备份和最后一次差异备份进行恢复。

全量备份

[root@localhost ~]# mysql -uroot -p123

mysql: [Warning] Using a password on the command line interface can be insecure.

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connectionid is 2Server version:5.7.31-log MySQL Community Server (GPL)

Copyright (c)2000, 2020, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

Type'help;' or '\h' for help. Type '\c' to clearthe current input statement.

mysql>create database school;

Query OK,1 row affected (0.00sec)

mysql>use school

Database changed

mysql>use school;

Database changed

mysql> create table student(id int not null primary key auto_increment,name varchar(50),age tinyint);

Query OK,0 rows affected (0.12sec)

mysql> insert student(name,age)values('tom',10),('zhangshan',20),('lisi',30);

Query OK,3 rows affected (0.45sec)

Records:3 Duplicates: 0 Warnings: 0mysql>quit

Bye

[root@localhost ~]# mysqldump -uroot -p123 --all-databases > all.sql

mysqldump: [Warning] Using a password on the command line interface can be insecure.

[root@localhost ~]# ls

all-202012310225.sql

all.sql

anaconda-ks.cfg

[root@localhost ~]# file all.sql

all.sql: UTF-8 Unicode text, with very long lines

[root@localhost ~]# mysql -uroot -pcsl123 -e 'drop database school;'mysql: [Warning] Using a password on the command line interface can be insecure.

[root@localhost~]# mysql -uroot -pcsl123

mysql: [Warning] Using a password on the command line interface can be insecure.

[root@localhost~]# mysql -uroot -pcsl123 -e 'select * from school.student;'mysql: [Warning] Using a password on the command line interface can be insecure.+----+----------+------+

| id | name | age |

+----+----------+------+

| 1 | tom | 10 |

| 2 | zhangshan | 20 |

| 3 | lisi | 30 |

+----+----------+------+

在school查入数据

[root@localhost ~]# mysql

mysql>use school;

mysql> create table student1(id int not null primary key auto_increment,name varchar(20) not null,age tinyint);

mysql> insert student1(name,age) values('aa',13),('bb',14),('cc',22),('dd',33);

mysql> create table student2(id int not null primary key auto_increment,name varchar(20) not null,age tinyint);

mysql>show tables;+------------------+

| Tables_in_school |

+------------------+

| student |

| student1 |

| student2 |

+------------------+mysql> select *from student1;+----+----------+------+

| id | name | age |

+----+----------+------+

| 1 | aa | 13 |

| 2 | bb | 14 |

| 3 | cc | 22 |

| 4 | dd | 33 |

+----+----------+------+mysql>quit

[root@localhost~]# mysqldump -uroot school student1 >table_student1.sql

[root@localhost~]# mysqldump -uroot school >table_school.sql

mysql>create database information;

mysql>use information;

mysql> create table teacher(id int not null primary key auto_increment,name varchar(100)not null,age tinyint(4));

mysql> insert teacher(name,age) values('nmi',31),('hil',43),('alice',28);

mysql> exit

删除库school,使用备份文件table_school.sql恢复库school数据

mysql>drop database school;

mysql>create database school;

mysql>use school;

mysql> source table_school.sql;

差异备份

[root@localhost ~]# vim /etc/my.cnf

[mysqld]

basedir= /usr/local/mysql

datadir= /opt/data

socket= /tmp/mysql.sock

port= 3306pid-file = /opt/data/mysql.pid

user=mysql

skip-name-resolve

skip-grant-tables

log-bin=mysql_bin

server-id=1[root@localhost~]# service mysqld restart

[root@localhost~]# rm -rf *.sql

[root@localhost~]# mysqldump -uroot -p123 --single-transaction --flush-logs --master-data=2 --all-databases --delete-master-logs > all-202012291840.sql

mysql>use school;

mysql> insert student2(name,age) values('tom',21),('zhangshan',22),('lisi',23);

mysql> update student2 set age=21 where id=3;

mysql> drop database school;

[root@localhost ~]# ls /opt/data/auto.cnf client-key.pem ib_logfile1 mysql_bin.000002public_key.pem

ca-key.pem ib_buffer_pool ibtmp1 mysql_bin.index server-cert.pem

ca.pem ibdata1 localhost.localdomain.err mysql.pid server-key.pem

client-cert.pem ib_logfile0 mysql_bin.000001private_key.pem

[root@localhost~]# mysqladmin -uroot flush-logs

[root@localhost~]# ls /opt/data/auto.cnf client-key.pem ib_logfile1 mysql_bin.000002private_key.pem

ca-key.pem ib_buffer_pool ibtmp1 mysql_bin.000003public_key.pem

ca.pem ibdata1 localhost.localdomain.err mysql_bin.index server-cert.pem

client-cert.pem ib_logfile0 mysql_bin.000001 mysql.pid server-key.pem

[root@localhost~]# mysql -uroot -p123

all-202012310225.sql all.sql

[root@localhost~]# mysql -uroot -p123 < all-202012310225.sql

mysql: [Warning] Using a password on the command line interface can be insecure.

[root@localhost~]# mysql

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connectionid is 10Server version:5.7.31-log MySQL Community Server (GPL)

Copyright (c)2000, 2020, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

Type'help;' or '\h' for help. Type '\c' to clearthe current input statement.

mysql> show binlog events in 'mysql_bin.000002'\G*************************** 1. row ***************************Log_name: mysql_bin.000002Pos:4Event_type: Format_desc

Server_id:1End_log_pos:123Info: Server ver:5.7.31-log, Binlog ver: 4

*************************** 2. row ***************************Log_name: mysql_bin.000002Pos:123Event_type: Previous_gtids

Server_id:1End_log_pos:154Info:*************************** 3. row ***************************Log_name: mysql_bin.000002Pos:154Event_type: Anonymous_Gtid

Server_id:1End_log_pos:219Info: SET @@SESSION.GTID_NEXT= 'ANONYMOUS'

*************************** 4. row ***************************Log_name: mysql_bin.000002Pos:219Event_type: Query

Server_id:1End_log_pos:319Info: create database school*************************** 5. row ***************************Log_name: mysql_bin.000002Pos:319Event_type: Anonymous_Gtid

Server_id:1End_log_pos:384Info: SET @@SESSION.GTID_NEXT= 'ANONYMOUS'

*************************** 6. row ***************************Log_name: mysql_bin.000002Pos:384Event_type: Query

Server_id:1End_log_pos:555Info: use `school`; create table student(id int not null primary key auto_increment,name varchar(50),age tinyint)*************************** 7. row ***************************Log_name: mysql_bin.000002Pos:555Event_type: Anonymous_Gtid

Server_id:1End_log_pos:620Info: SET @@SESSION.GTID_NEXT= 'ANONYMOUS'

*************************** 8. row ***************************Log_name: mysql_bin.000002Pos:620Event_type: Query

Server_id:1End_log_pos:694Info: BEGIN*************************** 9. row ***************************Log_name: mysql_bin.000002Pos:694Event_type: Table_map

Server_id:1End_log_pos:750Info: table_id:90(school.student)*************************** 10. row ***************************Log_name: mysql_bin.000002Pos:750Event_type: Write_rows

Server_id:1End_log_pos:822Info: table_id:90flags: STMT_END_F*************************** 11. row ***************************Log_name: mysql_bin.000002Pos:822Event_type: Xid

Server_id:1End_log_pos:853Info: COMMIT/*xid=11*/

*************************** 12. row ***************************Log_name: mysql_bin.000002Pos:853Event_type: Anonymous_Gtid

Server_id:1End_log_pos:918Info: SET @@SESSION.GTID_NEXT= 'ANONYMOUS'

*************************** 13. row ***************************Log_name: mysql_bin.000002Pos:918Event_type: Query

Server_id:1End_log_pos:1016Info: drop database school*************************** 14. row ***************************Log_name: mysql_bin.000002Pos:1016Event_type: Rotate

Server_id:1End_log_pos:1063Info: mysql_bin.000003;pos=4

14 rows in set (0.00sec)

mysql>quit

Bye

[root@localhost~]# mysqlbinlog --stop-position=918 /opt/data/mysql_bin.000002|mysql -uroot -p123

mysql: [Warning] Using a password on the command line interface can be insecure.

安装这个包

[root@localhost ~]# wget https://downloads.percona.com/downloads/Percona-XtraBackup-2.4/Percona-XtraBackup-2.4.21/binary/redhat/8/x86_64/Percona-XtraBackup-2.4.21-r5988af5-el8-x86_64-bundle.tar

[root@localhost ~]# tar xf Percona-XtraBackup-2.4.21-r5988af5-el8-x86_64-bundle.tar[root@localhost~]# yum -y install percona*

使用innobackupex命令全量备份

[root@localhost ~]# innobackupex --user=root --password=123 --host=192.168.122.134 /backups/xtrabackup: recognized server arguments:--datadir=/opt/data --log_bin=mysql_bin --server-id=1xtrabackup: recognized client arguments:210103 02:04:05innobackupex: Starting the backup operation

IMPORTANT: Please check that the backup run completes successfully.

At the end of a successful backup run innobackupex

prints"completed OK!".210103 02:04:05 version_check Connecting to MySQL server with DSN 'dbi:mysql:;mysql_read_default_group=xtrabackup;host=192.168.122.134' as 'root'(using password: YES).210103 02:04:05version_check Connected to MySQL server210103 02:04:05version_check Executing a version check against the server...

DBD::mysql::db selectall_hashref failed: Table'performance_schema.session_variables' doesn't exist at - line 1221.

[root@localhost backups]# ll

总用量0drwxr-x---. 2 root root 6 1月 3 02:04 2021-01-03_02-04-05[root@localhost backups]# ll2021-01-03_02-04-05/total13450

-rw-r-----. 1 root root 487 Dec 29 21:41 backup-my.cnf-rw-r-----. 1 root root 848 Dec 29 21:41ib_buffer_pool-rw-r-----. 1 root root 12582912 Dec 29 21:41ibdata1

drwxr-x---. 2 root root 58 Dec 29 21:41information

drwxr-x---. 2 root root 4096 Dec 29 21:41mysql

drwxr-x---. 2 root root 8192 Dec 29 21:41performance_schema

drwxr-x---. 2 root root 138 Dec 29 21:41school

drwxr-x---. 2 root root 8192 Dec 29 21:41 sys

删除数据库再恢复

[root@localhost backups]# /etc/init.d/mysqld stop

[root@localhost backups]# innobackupex--apply-log /backups/2021-01-03_02-04-05/[root@localhost backups]#rm -rf /opt/data/[root@localhost backups]# innobackupex--copy-back /backups/2020-12-29_21-41-12/

201229 22:19:15 completed OK![root@localhost backups]# ll/opt/data/total132925

-rw-r-----. 1 root root 848 Dec 29 22:19ib_buffer_pool-rw-r-----. 1 root root 12582912 Dec 29 22:19ibdata1-rw-r-----. 1 root root 50331648 Dec 29 22:19ib_logfile0-rw-r-----. 1 root root 50331648 Dec 29 22:19ib_logfile1-rw-r-----. 1 root root 12582912 Dec 29 22:19ibtmp1

drwxr-x---. 2 root root 58 Dec 29 22:19information

drwxr-x---. 2 root root 4096 Dec 29 22:19mysql

drwxr-x---. 2 root root 8192 Dec 29 22:19performance_schema

drwxr-x---. 2 root root 138 Dec 29 22:19school

drwxr-x---. 2 root root 8192 Dec 29 22:19sys-rw-r-----. 1 root root 24 Dec 29 22:19xtrabackup_binlog_pos_innodb-rw-r-----. 1 root root 489 Dec 29 22:19xtrabackup_info-rw-r-----. 1 root root 1 Dec 29 22:19xtrabackup_master_key_id

[root@localhost backups]#chown -R mysql.mysql /opt/data/[root@localhost backups]#/etc/init.d/mysqld start


版权声明:本文为weixin_28849929原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。