
MySQL 8 OCP备考笔记
备考MySQL 8 OCP工程中做的笔记
姚远ACE
Oracle ACE,华为云 MVP,Oracle10g,12c OCM; MySQL 5.6,5.7,8.0 OCP;CCNA; EMC Certified; IBM P Certified; RHCE; SQLServer 764; DB2 Certified; TOEIC 890;获得过两次国家部级科技进步奖;发明过两项计算机专利。微信:yaoyuanace 邮箱:yaoyuanace(at)qq.com
-
原创 MySQL 8 OCP备考1Z0-908--启动篇--不急于求成、不懈怠
开始准备MYSQL 8 OCP的考试,网上直播我的备考笔记,考试大纲见:https://education.oracle.com/mysql-80-database-administrator/pexam_1Z0-908一个topic一个topic的开始学习,每学习一个topic写一篇blog,让网友监督自己,同时分享知识。ArchitectureConfigure client connections to the serverUnderstand how MySQL stores dataU2020-05-16 17:06:48690
0
-
原创 过了MySQL 8 OCP(1Z0-908),交一下作业
从我写这篇博客开始,MySQL 8 OCP备考1Z0-908–启动篇–不急于求成、不懈怠,就在准备MySQL 8 OCP了一个准备了近2个月,当然之前已经搞MySQL好多年了,8 也用过很长时间了,写了33篇备考的博客。如果有意要考MySQL 8 OCP建议看一下这些博客,因为这些博客都是针对考纲复习的时候写的,不像我的其它博客是平时工作时写的。这些博客的知识点在考试时大部分都覆盖到了。7月7日是参加高考的日子,但我去考了个MySQL 8 OCP 。考试内容和预想的一样全面,考纲里面的几乎所有知识点都考2020-07-09 14:37:58757
0
-
原创 relay_log_recovery和slave从库crash recovery的关系
文章目录参数设置当relay_log_recovery不设置或者设置为off时当relay_log_recovery设置为1时参数设置在从库中将relay_log_recovery不设置或者设置为off,如果当从库意外宕机后,同时从库的relay log也一起损坏了,从库会丢失那些没有应用的日志,主从会不一致。在从库中将relay_log_recovery设置为on,假如果碰到上面的情形,从库会自动放弃所有未执行的relay log,重新生成一个relay log,并将从库的io线程的position2020-07-07 18:17:2993
0
-
原创 lower_case_table_names 设置为0时,表名因为大小写不同而找不到。
binlog恢复时,agent日志里面有下面的提示:Start to execute mysqlbinlog cmd: "/usr/bin/mysqlbinlog" "--stop-datetime=2020-06-12 10:00:01" "--exclude-gtids=9880af88-c491-11e8-b030-3ce8246a5f07:1-325771407,fd4bdcd9-87a8-11e9-9d4e-3ce8246a5ecf:1-2805639000" -Restoring /data2020-06-30 13:51:02177
1
-
原创 使用二进制日志的坐标或GTID进行复制Binary Log File Position Based Replication or GTID-based auto-positioning
文章目录配置使用GTID自动定位模式假设已经通过xtrabackup,Enterprise backup或 mysqldump等配置好从库。配置主库mysql> show master status;+----------------+----------+--------------+------------------+-------------------+| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |2020-06-29 19:53:3875
0
-
原创 使用clone plugin将当前实例进行本地或者远程的clone,可以用于创建从库和mgr新成员加入。
MySQL8.0.17推出了一个重量级的功能:clone plugin。允许用户可以将当前实例进行本地或者远程的clone操作。适用于整个实例快速备份和mgr新成员加入。安装clone插件mysql> INSTALL PLUGIN clone SONAME 'mysql_clone.so';Query OK, 0 rows affected (0.06 sec)mysql> SELECT PLUGIN_NAME, PLUGIN_STATUS -> FROM I2020-06-29 17:12:2283
0
-
原创 如何判断binlog的格式是ROW或者STATEMENT
有时接到一个binlog需要恢复,不知道是STATEMENT或是ROW格式,需要找源数据库的dba问,其实自己可以判断,方法如下STATEMENT默认有sql语句statement的binlog里面的默认就有sql语句,例如:root@scutech:/var/lib/mysql# mysqlbinlog ./binlog.000280 |grep insertinsert into t1 values(23)insert into t1 values(232)ROW默认没有sql语句要加2020-06-28 18:18:01209
0
-
原创 日志开始恢复后8小时,连接会断开 Aborted connection 4 to db
从日志中观察到,日志开始恢复后8小时,连接会断开2020-06-20T23:31:39.131659+08:00 4 [Note] Aborted connection 4 to db: 'mysql' user: 'test' host: '' (Got timeout reading communication packets)涉及两个参数:interactive_timeout:参数含义:服务器关闭交互式连接前等待活动的秒数。交互式客户端定义为在mysql_real_connect()中使用2020-06-23 17:13:50137
0
-
原创 修改innodb_buffer_pool_instances解决mysqlbinlog恢复慢的问题
一个客户的mysql数据库恢复在最后一步是滚binlog,结果恢复特别慢,CPU占用率100%,磁盘IO几乎是零,show processlist发现线程在sleep。从general log里面看不到任何动静,似乎找不到解决的办法。登录上去用strace分析mysqld进程发现:全部在进行内存分配。分析mysqld的参数,发现一个参数innodb_buffer_pool_instances 被设置为64,很是可疑,就是innodb_buffer_pool被分成了64个单位,而innodb_buffe2020-06-23 14:27:47358
0
-
原创 mysql服务启动失败 [MY-010091] mysqld: File /binlog.index not found selinux
启动mysql服务失败,提示:[root@localhost ~]# service mysqld restartRedirecting to /bin/systemctl restart mysqld.servicemysqld: File './binlog.index' not found (OS errno 13 - Permission denied)2020-06-22T03:05:07.975321Z 0 [Warning] [MY-010091] [Server] Can't cre2020-06-22 11:14:241825
0
-
原创 mysqldump 中参数 --set-gtid-purged 控制 SET @@GLOBAL.GTID_PURGED和 SET @@SESSION.SQL_LOG_BIN
mysqldump --master-data=1 --single-transaction --databases test没有加set-gtid-purged时出现警告提示:scutech@scutech:/tmp$ mysqldump --master-data=1 --single-transaction --databases test >aa.sqlWarning: A partial dump from a server that has GTIDs will by d2020-06-17 19:30:48531
0
-
原创 MySQL8 的加密 Data-at-Rest Encryption ERROR 3185 (HY000):
MySQL 5.7.11引入了InnoDB表空间加密,该加密启用了对每表文件表空间的支持。在MySQL 8.0.13中, 引入了通用表空间的加密。为了提高加密处理的可用性,MySQL 8.0.16添加了几个功能,这些功能允许数据库管理员进行更精细的控制。加载加密插件:mysql> install plugin keyring_file soname 'keyring_file.so';Query OK, 0 rows affected (0.26 sec)mysql> CREATE2020-06-17 13:20:35214
0
-
原创 bind-address如果是127.0.0.1,mysql只接受localhost,不接受远程连接。
bind-address如果是127.0.0.1,mysql只接受localhost,不接受远程连接。在bind-address后面增加远程访问IP地址或者禁掉这句话就可以让远程机登陆访问了。在配置文件里面加入bind-address = 127.0.0.1,然后重新启动,可以看到下面监听地址的变化。root@scutech:~# netstat -plunt|grep 3306tcp 0 0 127.0.0.1:33062 0.0.0.0:*2020-06-15 20:05:16485
0
-
原创 mysql_config_editor 设置密码set --login_path
mysql_config_editor可以给指定的连接和密码生成一个加密文件.mylogin.cnf,默认位于当前用户家目录下。mysql、mysqladmin等可以使用该文件直接登录,避免明文密码出现在脚本中。如果没有指定 --login-path, mysql_config_editor 默认读 client login pathscutech@scutech:~$ mysql_config_editor set --login_path=client --host=localhost --us2020-06-15 17:57:07201
1
-
原创 把log_error_verbosity设置为3,调试连接问题ERROR 2003 (HY000):ERROR 1045 (28000):
mysql 8里面使用global log_error_verbosity控制日志记录的详细程度:Permitted Message Prioritieslog_error_verbosity ValueERROR1ERROR, WARNING2ERROR, WARNING, INFORMATION3默认为2,设置为3,可以用于调试连接问题,这个参数可以联机设置:mysql> set global log_error_verbosity=3;Quer2020-06-15 15:46:49214
0
-
原创 MySQL 8 默认的数据库表中的引擎都是InnoDB
查看mysql> select distinct(ENGINE) from information_schema.tables;+--------------------+| ENGINE |+--------------------+| NULL || InnoDB || CSV || PERFORMANCE_SCHEMA |+--------------------+4 r2020-06-15 11:48:48324
0
-
原创 MySQL 8 默认字符集改成utf8mb4
mysql> show variables like '%charac%';+--------------------------+--------------------------------+| Variable_name | Value |+--------------------------+--------------------------------+| character_set_client |2020-06-15 11:47:39551
0
-
原创 MySQL 8 默认身份验证插件caching_sha2_password
默认身份验证插件caching_sha2_password在MySQL 8里面的默认身份验证插件已经从mysql_native_password变成了caching_sha2_password。root@da2ac5ce6f38:/# mysql -uroot -pdingjia --protocol=tcp -hmysql80Warning: Using a password on the command line interface can be insecure.ERROR 2059 (HY2020-06-12 17:55:14129
0
-
原创 MySQL 8 不可见索引 invisible index
不可见索引创建不可见索引CREATE TABLE `t1` ( `id` int(11) NOT NULL, `name` varchar(10) DEFAULT NULL, PRIMARY KEY (`id`), KEY `idx_name` (`name`) /*!80000 INVISIBLE */) ;create index idx_t1 on t1(name) invisible;不可见索引的常见操作create table t1(id int primary2020-06-12 17:50:0490
0
-
原创 MySQL 8 全局变量的修改持久化 set persist
全局变量的修改持久化在8之前的版本中,对于全局变量的修改,其只会影响其内存值,而不会持久化到配置文件中。数据库重启,又会恢复成修改前的值。从8开始,可通过SET PERSIST命令将全局变量的修改持久化到配置文件中。修改持久化mysql> show variables like '%max_connections%';+------------------------+-------+| Variable_name | Value |+------------------2020-06-12 17:48:26506
0
-
原创 MySQL 8 管理端口admin_port默认是33062
管理端口admin_address: 用于指定管理员发起tcp连接的主机地址,可以是ipv4,ipv6, 或者Host name等等,但只能接受一个ip地址admin_port: 是管理员用来连接的端口号,注意如果admin_address没有设置的话,这个端口号是无效的create_admin_listener_thread: 是否创建一个单独的listener线程来监听admin的链接请求,默认值是关闭的,即会使用已有的监听线程去监听admin连接。该参数同样需要admin_address打开,2020-06-12 17:46:48694
0
-
原创 MySQL的explain解释SQL执行计划,优化SQL执行和创建索引
mysql> explain select count(*) from orders o , customer c where o.o_c_id=c.c_id and c_last='BARBARBAR' and c_first='YaWRXwdLu3Sq1';+----+-------------+-------+------------+-------+---------------+--------------+---------+------+----------+----------+-2020-06-12 15:37:2589
0
-
原创 MySQL 执行计划explain for connection的坑(ERROR 3012 (HY000))
MySQL 执行计划explain for connection是个非常有用的功能,我们可以通过这个命令查看正在执行的SQL的执行计划,对于检查一些执行时间长的SQL非常有用,这个命令的语法是:EXPLAIN [options] FOR CONNECTION connection_id;connection_id是需要被解释的连接的ID。这个id可以通过show processlist或者在连接里面输入SELECT CONNECTION_ID()来查看。但这个功能却有两个常见的坑。一个是不能检查没2020-06-11 15:38:06209
0
-
原创 MySQL忘记root密码的两种解决方法,skip-grant-tables和init-file
如果忘记了MySQL的root用户密码有两种解决方案。在启动mysqld的时候加上参数skip-grant-tables加入的方法可以是在命令行加入,类似:mysqld_safe —skip-grant-tables &或者修改启动的参数文件,如:/etc/my.cnf或者 /etc/mysql/mysql.cnf ,在[mysqld]下面加上skip-grant-tablesroot@infokist:/etc/mysql# service mysql restartroot@infok2020-06-10 13:52:45217
0
-
原创 MySQL企业版工具——使用MySQL Enterprise Monitor监控MySQL数据库和主机---发表到爱可生开源社区
MySQL在企业版里的有个工具MySQL Enterprise Monitor,可以监控MySQL实例和主机性能。现实验如下:安装下载到https://edelivery.oracle.com/ 网站下软件:安装2020-06-09 19:28:32658
2
-
原创 MySQL 8中新增的轻量级备份锁lock instance for backup---发表到爱可生开源社区
mysql 8中新增了一个轻量级的备份锁,它允许在online备份的时候进行DML操作,同时可防止快照不一致。备份锁由lock instance for backup和语法支持。使用这些语句需要BACKUP_ADMIN权限。从图里面看长查询对flush tables with read lock对是有影响的,整个系统会hung住,这时其它是数据库查询也不能用,包括use database。可以看到大家都在等这个锁释放。而lock instance for backup则没有这个问题。oracle自己2020-05-27 11:57:49250
0
-
原创 MySQL 8 OCP备考--MySQL的参数log_bin_trust_function_creators和binlog的关系真绕呀!
mysql官方文档对这个参数的解释是:log_bin_trust_function_creatorsProperty ValueCommand-Line Format --log-bin-trust-function-creatorsSystem Variable log_bin_trust_function_creatorsScope GlobalDynamic YesType BooleanDefault Value FALSEThis variable applies when b2020-05-25 11:58:03186
0
-
原创 MySQL 8 中新增的资源管理特性---发表到3306pai社区
资源管理MySQL 8 开始支持使用资源组控制系统CPU资源的分配,将服务器内运行的线程分配给特定组,以便线程根据组可用的资源执行。组属性可以控制其资源,包括VCPU的个数和线程的优先级。DBA可以根据不同的工作负载修改这些属性。默认情况下,有一个系统组和一个用户组,分别名为SYS_default和 USR_default。无法删除这些默认组,并且无法修改其属性。每个默认组都没有CPU关联,优先级为0。资源组属性每个组都有一个名字。资源组名称是表和列名称之类的标识符。组名称不区分大小写,最长可达642020-05-21 13:59:22107
0
-
原创 MySQL 8 内存的使用
文章目录MySQL内存分配全局共享内存innodb_buffer_pool_sizeinnodb_change_bufferinginnodb_change_buffer_max_sizeinnodb_log_buffer_sizethread_cache_sizetable_open_cachetable_definition_cachekey_buffer_sizemax_connections线程/会话/连接独享内存binlog_cache_sizetmp_table_size和max_heap_ta2020-05-16 19:43:06308
0
-
原创 MySQL 8 OCP备考--Understand how InnoDB stores data and logs
InnoDB的架构:这个是mysql官方文档上的一个InnoDB的架构图:Innodb的表.frm 无论在 MySQL 中选择了哪个存储引擎,所有的 MySQL 表都会在硬盘上创建一个 .frm 文件用来描述表的格式或者说定义; .frm 文件的格式在不同的平台上都是相同的。.ibd 文件InnoDB 中用于存储数据的文件总共有两个部分,一是系统表空间文件,包括 ibdata1、 ibdata2 等文件,其中存储了 InnoDB 系统信息和用户数据库表数据和索引,是所有表公用的。当打开 inn2020-05-16 17:07:52155
0
-
原创 MySQL 8 OCP备考--Configure client connections to the server
客户端到mysqld的连接层通过多种通信协议:TCP/IPUNIX 套接字共享内存命名管道其中TCP/IP 适用于整个网络。其它3种链接方式仅支持本地连接,也据是客户机和服务器在同一台计算机上运行时。每个连接对应一个线程。此线程处理查询执行。在某个连接可以开始发送 SQL 查询之前,将会通过验证用户名 + 口令 + 客户机主机来对该连接进行验证。通信协议一览表协议连接类型支持的操作系统TCP/IP本地、远程所有UNIX套接字文件仅本地UNIX/LINUX2020-05-16 17:07:28187
0
-
原创 MySQL 8 新参数innodb_dedicated_server的作用,多了64个日志文件ib_logfile
文章目录参数 innodb_dedicated_server说明设置效果注意事项参数 innodb_dedicated_server说明MySQL 8 中可以设置参数 innodb_dedicated_server=ON来让MySQL自动探测服务器的内存大小,根据内存大小设置innodb_buffer_pool_size, innodb_log_file_size 和 innodb_flush...2020-03-14 11:48:39203
0
-
原创 MySQL Enterprise Backup使用简介
文章目录下载和安装下载和安装需要到Oracle的edelivery网站上下载:选择平台安装root@scutech:/home/scutech# dpkg -i meb-4.1.3-ubuntu18.04-x86-64bit.deb Selecting previously unselected package meb.(Reading database ... 166554 f...2020-02-18 20:49:421080
0