MySQL ·

MySQL 数据库常用命令管理

安装了MySQL默认是拒绝远程连接

1、回车,然后输入则使用了系统数据库

2、修改 root 用户任何主机访问

第一种方法

第二种方法

3、修改 root 密码

4、添加新用户

新建本地登录

新建远程登录

5、为用户授权,添加用户远程访问该数据库的全部权限

授权格式:grant 权限 on 数据库.* to 用户名@登录主机 identified by "密码";

第二种直接登录MySQL数据库和命令一起执行
#####testuser=testuser
#####testdb=123456,

6、创建数据库

7、显示MYSQL中所有数据库

8、授权 testuser 用户拥有 dbtest 数据库的所有权限

9、指定部分权限给 testuser 用户

10、显示数据库中所有用户 -D 选择数据库

11、给予查询权限

12、添加插入权限

13、添加删除权限

14、检查用户是否添加成功

或者

15、删除用户

16、修改指定用户密码

17、刷新权限

18、查看 bin-log与server-id是否开启

19、将binlog日志文件mysql-bin.000001 导出成sql文件

20、将binlog日志文件选择时间范围导出dbtest库导出成sql文件

21、如果binlog日志文件记录为ROW格式,将row格式的binlog日志文件base64解析后转入文件,-v代表换行展示

22、生成新的binlog文件, -F

有时候会希望导出数据之后生成一个新的binlog文件,只需要加上-F参数即可

23、只导出表结构不导出数据,--no-data

24、跨服务器导出导入数据

将h1服务器中的db1数据库的所有数据导入到h2中的db2数据库中,db2的数据库必须存在否则会报错, 加上 -C 参数 可以启用压缩传递

25、将主库的binlog位置和文件名追加到导出数据的文件中,--dump-slave

注意:--dump-slave命令如果当前服务器是从服务器那么使用该命令会执行stop slave来获取master binlog的文件和位置,等备份完后会自动执行start slave启动从服务器。但是如果是大的数据量备份会给从和主的延时变的更大,使用--dump-slave获取到的只是当前的从服务器的数据执行到的主的binglog的位置是(relay_mater_log_file,exec_master_log_pos),而不是主服务器当前的binlog执行的位置,主要是取决于主从的数据延时。

该参数在在从服务器上执行,相当于执行show slave status。当设置为 1 时,将会以 CHANGE MASTER 命令输出到数据文件;设置为 2 时,会在 change 前加上注释。该选项将会打开 --lock-all-tables,除非 --single-transaction 被指定。在执行完后会自动关闭 --lock-tables 选项。--dump-slave默认是: 1

26、将当前服务器的binlog的位置和文件名追加到输出文件,--master-data

该参数和 --dump-slave 方法一样,只是它是记录的是当前服务器的 binlog,相当于执行 show master status,状态(file,position)的值。

注意:--master-data 不会停止当前服务器的主从服务

27、--opt

等同于--add-drop-table, --add-locks, --create-options, --quick, --extended-insert, --lock-tables, --set-charset, --disable-keys 该选项默认开启, 可以用 --skip-opt 禁用.

28、保证导出的一致性状态--single-transaction

该选项在导出数据之前提交一个BEGIN SQL语句,BEGIN 不会阻塞任何应用程序且能保证导出时数据库的一致性状态。它只适用于多版本存储引擎(它不显示加锁通过判断版本来对比数据),仅InnoDB。本选项和--lock-tables 选项是互斥的,因为 LOCK TABLES 会使任何挂起的事务隐含提交。要想导出大表的话,应结合使用 --quick 选项。不缓冲查询,直接导出到标准输出。默认为打开状态,使用 --skip-quick 取消该选项。

29、--lock-tables, -l

开始导出前,锁定所有表。用READ LOCAL锁定表以允许MyISAM表并行插入。对于支持事务的表例如InnoDB和BDB,--single-transaction是一个更好的选择,因为它根本不需要锁定表。

请注意当导出多个数据库时,--lock-tables分别为每个数据库锁定表。因此,该选项不能保证导出文件中的表在数据库之间的逻辑一致性。不同数据库表的导出状态可以完全不同。

30、导出存储过程和自定义函数--routines, -R

31、初始化从服务器数据,在主服务上进行备份,导出所有数据库

32、导出所有数据库,该命令会导出包括系统数据库在内的所有数据库

33、导出多个数据库 db1、db2 两个所有数据,多个数据库用空格

34、导出数据库 db1 中 a1 a2 两个表所有数据

注意:导出指定表只能针对一个数据库进行导出,且导出的内容中和导出数据库也不一样,导出指定表的导出文本中没有创建数据库的判断语句,只有删除表-创建表-导入数据

mysqldump -uroot -p123456  数据库 --tables 数据表 > tables.sql

35、条件导出,导出db1表a1中id=1的数据

如果多个表的条件相同可以一次性导出多个表,字段是整形

36、字段是字符串,并且导出的sql中不包含drop table,create table

36、导出数据库 db1 中 a1 a2 两个表所有数据

它常用选项:

37、导出数据库 忽略表

38、导出数据库 指定行

或者用limit限制结果集

39、导出远程服务器导出 所有数据库

40、导出远程服务器导出 指定数据库

41、用于与其他服务器合并数据的备份

--skip-add-drop-table: 不会将drop table语句写入导出文件中。

--replace:将使用replace into语句而不是insert语句导出。

42、并行处理,通过指定线程数量加速备份过程

--skip-add-drop-table: 不会将drop table语句写入导出文件中。

--replace:将使用replace into语句而不是insert语句导出。

43、指定每个数据库的线程数

44、备份排除或包含数据库。

对以 t 结尾的所有数据库进行备份,多个数据库用逗号分隔,数据库名可以使用%或_通配符。除此之外,还有类似--include-events,--include-routines,--include-tables,--include-triggers,--include-users等

 

45、防火墙设置一下,不然3306端口还是无法访问

排除以 a 开头的数据库进行备份,多个数据库用逗号分隔,数据库名可以使用%或_通配符。

除此之外,还有类似--exclude-events,--exclude-routines,--exclude-tables,--exclude-triggers,--exclude-users等

46、备份用户

可以通过--exclude-users来排除某些用户

47、压缩备份

通过使用--compress-output = lz4 或 --compress-output = zlib

 通过如下语句进行解压

 

48、防火墙设置一下,不然3306端口还是无法访问。

49、备份数据库

第一种方法

第二种方法,线上环境导出和导入数据参数

第三种方法,使用 xtrabackup 进行备份

--defaults-file 数据库配置文件

--backup 执行备份操作

--parallel 备份时并发的线程数

--target-dir 备份文件的目录

增量备份是基于全量备份的,--incremental-basedir 指向全量备份目录

50、还原数据库

完整备份所有数据库:

在 mysql8 之前,存储过程和事件存储在 mysql.proc 和 mysql.event 表中。

从mysql8 开始,相应对象的定义存储在数据字典中,这些表不会被备份。

要将存储过程和事件也包含,请使用如下语句:

51、还原数据库

第一种方法:

第二种方法: 这个我没有测试

第三种方法: 时间点恢复

要获得时间点恢复,应该指定--single-transaction 和 --master-data

--single-transaction 在备份之前,会将事务隔离级别设为REPEATABLE READ模式,并执行 START TRANSACTION 来提供一致的备份。

--master-data 将服务器的二进制日志的位置输出到 sql 文件。

--master-data = 2  表示在导出过程中,记录当前库的binlog和pos点,并在导出文件中注释这一行。

--master-data = 1  表示在导出过程中,记录当前库的binlog和pos点,并在导出文件中不注释这一行。

52、在从库导出时,记录主库的二进制日志位置

--master-data 将服务器的二进制日志的位置输出到 sql 文件。

--dump-slave = 2 表示在导出过程中,记录主库的binlog和pos点,并在导出文件中注释这一行。

--dump-slave = 1 表示在导出过程中,记录主库的binlog和pos点,并在导出文件中不注释这一行。

53、在从库导出时,记录主库的二进制日志位置

--master-data 将服务器的二进制日志的位置输出到 sql 文件。

--dump-slave = 2 表示在导出过程中,记录主库的binlog和pos点,并在导出文件中注释这一行。

--dump-slave = 1 表示在导出过程中,记录主库的binlog和pos点,并在导出文件中不注释这一行。

54、防火墙设置一下,不然3306端口还是无法访问。

55、设置完之后,查看一下是否能通过。

CentOS 设置MySQL的远程访问

56、如果想要限制访问。

OK,这样就可以远程访问了。以后有时间在排版

评论已关闭