学习笔记0601----mysql主从
mysql主从配置
- 预习内容
- 1. mysql主从介绍
- 1.1 主从介绍
- 1.2 主从复制过程
- 1.3 主从使用场景
- 2. 主从准备工作
- 2.1 检查两台机器是否都安装mysql
- 2.2 检查两台机器mysql是否启动
- 3. 配置mysql master 机器
- 3.1 修改 /etc/my.cnf 文件
- 3.2 重启mysql服务
- 3.3 查看binlog文件
- 3.4 锁定mysql的表,防止数据写入
- 3.5 备份主机器上的数据库
- 3.6 查看主机器的状态
- 3.7 授权从机器上的用户可访问主机器
- 4. 配置mysql slave 机器
- 4.1 修改/etc/my.cnf 文件
- 4.2 重启mysql服务
- 4.3 复制主机器上备份的数据库到从机器
- 4.4 从机器创建好表,把数据库恢复
- 4.5 设置slave从机与master主机进行通信
- 4.6 查看slave机器的状态信息
- 4.7 解锁master上的表
- 5. 测试主从同步
- 6. 主从开启,防火墙规则设置
- 课后总结
- 1. xtrabackup教程
- 2. MariaDB新版本(10.3.x+)的备份和恢复
- 3. mysql数据备份的几种模式
- 4. 了解几个关键词
预习内容
17.1 MySQL主从介绍
17.2 准备工作
17.3 配置主
17.4 配置从
17.5 测试主从同步
扩展:
有的同学,遇到主从不能正常同步,提示uuid相同的错误。这是因为克隆机器导致。
https://www.2cto.com/database/201412/364479.html
不停库不锁表在线主从配置
http://seanlook.com/2015/12/14/mysql-replicas/
主从不同步
http://www.rfyy.net/archives/2309.html
http://blog.51cto.com/storysky/259280
主主
关于 auto_increment https://blog.csdn.net/leshami/article/details/39779509
http://www.cnblogs.com/ygqygq2/p/6045279.html
mysql-proxy 实现读写分离
http://blog.51cto.com/zzclinux/1980487
mysql-proxy类似的产品有:
mycat 基于阿里的开源软件cobar,官网 www.mycat.io
https://my.oschina.net/ruoli/blog/1789370
mycat实现分库分表
https://www.cnblogs.com/joylee/p/7513038.html
atlas 出自于360,不维护不更新了 https://blog.csdn.net/AnPHPer/article/details/80566385
mysql环形主从
http://ask.apelearn.com/question/11437
mysql架构演变 http://www.aminglinux.com/bbs/thread-8025-1-1.html
MHA架构
http://blog.51cto.com/xiaoshuaigege/2060768
比较复杂的mysql集群架构 http://ask.apelearn.com/question/17026
1. mysql主从介绍
1.1 主从介绍
Mysql的 Replication 是一个异步的复制过程,从一个 Mysql instace(我们称之为 Master)复制到另一个 Mysql instance(我们称之 Slave)。在 Master 与 Slave 之间的实现整个复制过程主要由三个线程来完成,其中两个线程(Sql线程和IO线程)在 Slave 端,另外一个线程(IO线程)在 Master 端。
要实现 MySQL 的 Replication ,首先必须打开 Master 端的Binary Log(mysql-bin.xxxxxx)功能,否则无法实现。因为整个复制过程实际上就是Slave从Master端获取该日志然后再在自己身上完全 顺序的执行日志中所记录的各种操作。打开 MySQL 的 Binary Log 可以通过在启动 MySQL Server 的过程中使用 “—log-bin” 参数选项,或者在 my.cnf 配置文件中的 mysqld 参数组([mysqld]标识后的参数部分)增加 “log-bin” 参数项。
1.2 主从复制过程
MySQL 复制的基本过程如下:
- Slave 上面的IO线程连接上 Master,并请求从指定日志文件的指定位置(或者从最开始的日志)之后的日志内容;
- Master 接收到来自 Slave 的 IO 线程的请求后,通过负责复制的 IO 线程根据请求信息读取指定日志指定位置之后的日志信息,返回给 Slave 端的 IO 线程。返回信息中除了日志所包含的信息之外,还包括本次返回的信息在 Master 端的 Binary Log 文件的名称以及在 Binary Log 中的位置;
- Slave 的 IO 线程接收到信息后,将接收到的日志内容依次写入到 Slave 端的Relay Log文件(mysql-relay-bin.xxxxxx)的最末端,并将读取到的Master端的bin-log的文件名和位置记录到master- info文件中,以便在下一次读取的时候能够清楚的高速Master“我需要从某个bin-log的哪个位置开始往后的日志内容,请发给我”
- Slave 的 SQL 线程检测到 Relay Log 中新增加了内容后,会马上解析该 Log 文件中的内容成为在 Master 端真实执行时候的那些可执行的 Query 语句,并在自身执行这些 Query。这样,实际上就是在 Master 端和 Slave 端执行了同样的 Query,所以两端的数据是完全一样的。
1.3 主从使用场景
- 数据备份,主机器宕机,从机器还能随时对web提供服务
- 作为一个从库,读的库,减轻主库的压力,数据备份且可以分担主机器被调用数据时的压力,mysql主从,是有方向性的,写数据,必须从主机器开始;如果不依照原理会导致数据紊乱
2. 主从准备工作
两台机器,都需要安装mysql
主:192.168.141.128
从:192.168.141.129
2.1 检查两台机器是否都安装mysql
2.2 检查两台机器mysql是否启动
3. 配置mysql master 机器
3.1 修改 /etc/my.cnf 文件
- 添加两行配置
- server-id= // id号可以设置成机器ip地址的末为数字
- log_bin= // 给binlog文件设置个名字
3.2 重启mysql服务
配置文件修改完成之后需要重新启动mysql服务
3.3 查看binlog文件
在/data/mysql 目录下可以查看到binlog文件和索引文件
3.4 锁定mysql的表,防止数据写入
3.5 备份主机器上的数据库
由于主的机器上是空库,从上的机器有一个zrlog库是上篇blog的库,所以把从上的库拿到主的机器,然后把从上的库给删除。
3.6 查看主机器的状态
3.7 授权从机器上的用户可访问主机器
4. 配置mysql slave 机器
4.1 修改/etc/my.cnf 文件
- 添加一行
- server-id= // 设置的从机器的ip地址末为数字
4.2 重启mysql服务
4.3 复制主机器上备份的数据库到从机器
4.4 从机器创建好表,把数据库恢复
4.5 设置slave从机与master主机进行通信
若slave io及sql线程已经启动,需要先 stop slave
- change master to master_host=‘192.168.141.128’,master_user=‘repl’,master_password=‘linux002’,master_log_file=‘linux001.000001’,master_log_pos=28423;
- master_host 与 master_port:分别代表master主机名(或IP地址)及mysql实例端口号。端口默认为3306,则可以省略;
- master_user 与 master_password:连接到master主机复制账户所对应的用户名及密码。
- master_log_file 与 master_log_pos:确定slave的io线程下次开始执行时从master开始读取的位置坐标,如果二者都没有指定,slave使用上次slave sql线程保存的位置。
- 注意:change master to可以不带参数,如:只改变了用于复制的用户密码,那么change master to只需针对master_password选项作出修改即可。
4.6 查看slave机器的状态信息
[root@linux-02 ~]# mysql -uroot -plinux002
Warning: Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 12
Server version: 5.6.43 MySQL Community Server (GPL)Copyright (c) 2000, 2019, 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 clear the current input statement.mysql> start slave;
Query OK, 0 rows affected (0.04 sec)mysql> show slave status/G;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '/G' at line 1
mysql> show slave status\G;
*************************** 1. row ***************************Slave_IO_State: Connecting to masterMaster_Host: 192.168.141.128Master_User: replMaster_Port: 3306Connect_Retry: 60Master_Log_File: linux001.000001Read_Master_Log_Pos: 28423Relay_Log_File: linux-02-relay-bin.000001Relay_Log_Pos: 4Relay_Master_Log_File: linux001.000001Slave_IO_Running: ConnectingSlave_SQL_Running: YesReplicate_Do_DB: Replicate_Ignore_DB: Replicate_Do_Table: Replicate_Ignore_Table: Replicate_Wild_Do_Table: Replicate_Wild_Ignore_Table: Last_Errno: 0Last_Error: Skip_Counter: 0Exec_Master_Log_Pos: 28423Relay_Log_Space: 120Until_Condition: NoneUntil_Log_File: Until_Log_Pos: 0Master_SSL_Allowed: NoMaster_SSL_CA_File: Master_SSL_CA_Path: Master_SSL_Cert: Master_SSL_Cipher: Master_SSL_Key: Seconds_Behind_Master: NULL
Master_SSL_Verify_Server_Cert: NoLast_IO_Errno: 2003Last_IO_Error: error connecting to master 'repl@192.168.141.128:3306' - retry-time: 60 retries: 1Last_SQL_Errno: 0Last_SQL_Error: Replicate_Ignore_Server_Ids: Master_Server_Id: 0Master_UUID: Master_Info_File: /data/mysql/master.infoSQL_Delay: 0SQL_Remaining_Delay: NULLSlave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update itMaster_Retry_Count: 86400Master_Bind: Last_IO_Error_Timestamp: 190529 05:23:45Last_SQL_Error_Timestamp: Master_SSL_Crl: Master_SSL_Crlpath: Retrieved_Gtid_Set: Executed_Gtid_Set: Auto_Position: 0
1 row in set (0.00 sec)ERROR:
No query specifiedmysql> stop slave;
Query OK, 0 rows affected (0.01 sec)mysql> exit
Bye
Slave_IO_Running: Connecting
Slave_SQL_Running: Yes
这个状态是两个yes才对,所以我们需要关闭slave拍错,关闭两台机器的防火墙。然后再打开slave。
[root@linux-02 ~]# iptables -F
[root@linux-02 ~]# mysql -uroot -plinux002
Warning: Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 17
Server version: 5.6.43 MySQL Community Server (GPL)Copyright (c) 2000, 2019, 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 clear the current input statement.mysql> start slave;
Query OK, 0 rows affected (0.00 sec)mysql> show slave status\G;
*************************** 1. row ***************************Slave_IO_State: Waiting for master to send eventMaster_Host: 192.168.141.128Master_User: replMaster_Port: 3306Connect_Retry: 60Master_Log_File: linux001.000001Read_Master_Log_Pos: 28423Relay_Log_File: linux-02-relay-bin.000003Relay_Log_Pos: 282Relay_Master_Log_File: linux001.000001Slave_IO_Running: YesSlave_SQL_Running: YesReplicate_Do_DB: Replicate_Ignore_DB: Replicate_Do_Table: Replicate_Ignore_Table: Replicate_Wild_Do_Table: Replicate_Wild_Ignore_Table: Last_Errno: 0Last_Error: Skip_Counter: 0Exec_Master_Log_Pos: 28423Relay_Log_Space: 620Until_Condition: NoneUntil_Log_File: Until_Log_Pos: 0Master_SSL_Allowed: NoMaster_SSL_CA_File: Master_SSL_CA_Path: Master_SSL_Cert: Master_SSL_Cipher: Master_SSL_Key: Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: NoLast_IO_Errno: 0Last_IO_Error: Last_SQL_Errno: 0Last_SQL_Error: Replicate_Ignore_Server_Ids: Master_Server_Id: 128Master_UUID: 98df4929-6ff5-11e9-bcec-000c296d81ccMaster_Info_File: /data/mysql/master.infoSQL_Delay: 0SQL_Remaining_Delay: NULLSlave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update itMaster_Retry_Count: 86400Master_Bind: Last_IO_Error_Timestamp: Last_SQL_Error_Timestamp: Master_SSL_Crl: Master_SSL_Crlpath: Retrieved_Gtid_Set: Executed_Gtid_Set: Auto_Position: 0
1 row in set (0.00 sec)ERROR:
No query specifiedmysql>
4.7 解锁master上的表
[root@linux-001 ~]# mysql -uroot -plinux002
Warning: Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 28
Server version: 5.6.43-log MySQL Community Server (GPL)Copyright (c) 2000, 2019, 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 clear the current input statement.mysql> unlock tables;
Query OK, 0 rows affected (0.00 sec)mysql>
5. 测试主从同步
6. 主从开启,防火墙规则设置
- 主机器执行下一条
- iptables -A INPUT -s 192.168.141.129 -p tcp --dport 3306 -j ACCEPT
- 从机器执行下面两条
- iptables -A INPUT -s 192.168.141.128 -p tcp --dport 3306 -j ACCEPT
- iptables -A INPUT -s 192.168.141.128 -p udp --dport 3306 -j ACCEPT
- 主从都重新启动mysql服务
- 登录从机器的mysql,使用show slave status\G 即可查看到两个ok状态
[root@linux-02 tomcat]# mysql -uroot -plinux002
Warning: Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.6.43 MySQL Community Server (GPL)Copyright (c) 2000, 2019, 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 clear the current input statement.mysql> show slave status\G
*************************** 1. row ***************************Slave_IO_State: Waiting for master to send eventMaster_Host: 192.168.141.128Master_User: replMaster_Port: 3306Connect_Retry: 60Master_Log_File: linux001.000003Read_Master_Log_Pos: 120Relay_Log_File: linux-02-relay-bin.000013Relay_Log_Pos: 282Relay_Master_Log_File: linux001.000003Slave_IO_Running: YesSlave_SQL_Running: YesReplicate_Do_DB: Replicate_Ignore_DB: Replicate_Do_Table: Replicate_Ignore_Table: Replicate_Wild_Do_Table: Replicate_Wild_Ignore_Table: Last_Errno: 0Last_Error: Skip_Counter: 0Exec_Master_Log_Pos: 120Relay_Log_Space: 458Until_Condition: NoneUntil_Log_File: Until_Log_Pos: 0Master_SSL_Allowed: NoMaster_SSL_CA_File: Master_SSL_CA_Path: Master_SSL_Cert: Master_SSL_Cipher: Master_SSL_Key: Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: NoLast_IO_Errno: 0Last_IO_Error: Last_SQL_Errno: 0Last_SQL_Error: Replicate_Ignore_Server_Ids: Master_Server_Id: 128Master_UUID: 98df4929-6ff5-11e9-bcec-000c296d81ccMaster_Info_File: /data/mysql/master.infoSQL_Delay: 0SQL_Remaining_Delay: NULLSlave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update itMaster_Retry_Count: 86400Master_Bind: Last_IO_Error_Timestamp: Last_SQL_Error_Timestamp: Master_SSL_Crl: Master_SSL_Crlpath: Retrieved_Gtid_Set: Executed_Gtid_Set: Auto_Position: 0
1 row in set (0.00 sec)mysql>
课后总结
1. xtrabackup教程
提供一个参考文档:http://xtra.aminglinux.com
mysqldump对于导出几个G的数据库或几个表,还是不错的,速度并不慢。一旦数据量达到几十上百G,
无论是对原库的压力还是导出的性能,mysqldump就力不从心了。Percona-Xtrabackup备份工具,
是实现MySQL在线热备工作的不二选择,可进行全量、增量、单表备份和还原。
xtrabackup命令只支持InnoDB和XtraDB存储引擎的数据库非阻塞地备份,
而innobackupex通过perl封装了一层xtrabackup,对MyISAM的备份通过加表读锁的方式实现。
在CentOS7上这样安装percona-xtrabackup
安装yum源
rpm -ivh http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm
yum install -y percona-xtrabackup-24 //yum安装2.4版本
用xtrabackup做全量备份的命令是:
innobackupex --defaults-file=/etc/my.cnf --host=10.100.100.100 --port=3333
–user=bakuser --password=your_pass /data/backup/mysql
说明:在执行该备份操作之前,需要先创建一个用户bakuser(用户名自定义),
并授予reload, lock tables, replication client, process, super等权限。
备份数据将会放到/data/backup/mysql目录里面,自动生成一个以当前日期、时间为名字的目录,例如2018-10-15_03_00_01。
增量备份:
innobackupex --host=10.100.100.100 --port=3333 --user=bakuser --password=your_pass
–incremental /data/backup/mysql --incremental-basedir=/data/backup/mysql/last-backup-file
说明:
–incremental :表示本次备份是一个增量备份(若针对的上次备份为一个全量备份,这里也可以认为是个差量备份)
–incremental-basedir:指定本次增量备份针对的哪一个备份(可以是上个增量,也可以是上个全量)
增量备份可以一环扣一环,比如可以周一做一个全量备份,然后周二做周一的增量,周三做周二的增量。。。
恢复:
1)全量备份的恢复
预备恢复:innobackupex --apply-log /PATH/TO/BACKUP/dir-quan --user-memroy=2G
停止MySQL/MariaDB,将datadir目录里面的数据清空(或者挪走)
恢复:innobackupex --defaults-file=/etc/my.cnf --copy-back /PATH/TO/BACKUP/dir-quan
改权限:chown -R mysql:mysql /PATH/TO/datadir
启动MySQL/MariaDB
说明:
–apply-log:指定全备文件路径
–use-memory=N:指定恢复数据时,使用内存大小,默认为100M,若备份数据量大且有足够的空闲内存时,
可以用来指定大小的内存来工作,单位可以使用G,M…。
–defaults-file: 指定配置文件路径,通过配置文件它会找到datadir在哪里
2)增量备份的恢复
停止服务
删除dataidir里面的数据
准备全量:
innobackupex --apply-log --redo-only /PATH/TO/全量备份目录
准备增量1:
innobackupex --apply-log --redo-only /PATH/TO/全量备份目录 --incremental-dir=/PATH/TO/第一次增量备份目录
准备增量2:
innobackupex --apply-log --redo-only /PATH/TO/全量备份目录 --incremental-dir=/PATH/TO/第二次增量备份目录
…
准备最后一个增量:
innobackupex --apply-log /PATH/TO/全量备份目录 --incremental-dir=/PATH/TO/最后一次增量备份目录
再次准备全量:
innobackupex --apply-log /PATH/TO/全量备份目录 #(这次不用加–redo-only了)
恢复:
innobackupex --copy-back /PATH/TO/全量备份目录
改权限:chown -R mysql:mysql /PATH/TO/datadir
启动MySQL/MariaDB
说明:–redo-only:表示进行准备(应用日志)工作时,只进行redo操作,只会重做已提交但未应用的事务,
不会回滚未提交的事务。原因是后面还有个增量备份,未提交的可能在后面增量备份时进行提交。
需要注意的是,最后一个增量备份不需要加这个选型。
2. MariaDB新版本(10.3.x+)的备份和恢复
MariaDB10.3.x及以上的版本用Percona XtraBackup工具会有问题。
原因可能是MariaDB10.3以上版本的redo日志格式和之前不同了。
解决方案是,使用mariabackup,它是MariaDB提供的一个开源工具,用于对InnoDB,Aria和MyISAM表进行物理在线备份。
这个工具是基于Percona的XtraBackup(版本2.3.8)的解决方案:
全量备份:
mariabackup --defaults-file=/etc/my.cnf --backup --user=xxx --password=xxx --target-dir /data/backup/2019-02-21
全量恢复:
停止数据库
清空datadir
mariabackup --prepare --target-dir /data/backup/2019-02-21/
mariabackup --copy-back --target-dir /data/backup/2019-02-21/
改属主、属组
启动
增量备份:
mariabackup --defaults-file=/etc/my.cnf --backup --user=xxx --password=xxx --target-dir /data/backup/2019-02-21
第一个增量:mariabackup --backup --user=xxx --password=xxx --target-dir /data/backup/2019-02-21_inc1 --incremental-basedir /data/backup/2019-02-21
第二个增量:mariabackup --backup --user=xxx --password=xxx --target-dir /data/backup/2019-02-21_inc2 --incremental-basedir /data/backup/2019-02-21_inc1
增量恢复:
先准备全备
mariabackup --prepare --target-dir /data/backup/2019-02-21 --apply-log-only
准备第一个增量:
cd /data/backup
mariabackup --prepare --target-dir ./2019-02-21 --incremental-dir ./2019-02-21_inc1 --apply-log-only
准备第二个增量:
mariabackup --prepare --target-dir ./2019-02-21 --incremental-dir ./2019-02-21_inc2 --apply-log-only
恢复:
mariabackup --copy-back --target-dir ./2019-02-21
备份脚本
#!/bin/bash
bakdir=/data/backup
d=`date +%F`for db in bbs blog db2
domysqldump -uroot -paminglinux $db > $bakdir/$db\_$d.sql
donecd $bakdir
gzip *_$d.sql
find ./ -name "*.gz" -mtime +30 |xargs rm
3. mysql数据备份的几种模式
MySQL复制默认是异步复制,
- Master将事件写入binlog,提交事务,自身并不知道slave是否接收是否处理
- 缺点:不能保证所有事务都被所有slave接收。
同步复制
- Master提交事务,直到事务在所有slave都已提交,才会返回客户端事务执行完毕信息;
- 缺点:完成一个事务可能造成延迟。
半同步复制
当Master上开启半同步复制功能时,至少有一个slave开启其功能。当Master向slave提交事务,且事务已写入relay-log中并刷新到磁盘上,slave才会告知Master已收到;若Master提交事务受到阻塞,出现等待超时,在一定时间内Master 没被告知已收到,此时Master自动转换为异步复制机制;
注:半同步复制功能要在Master和slave上开启才会起作用,只开启一边,依然是异步复制。
GTID (global transaction id 全局事务标识符) MySQL5.6版本开始支持
- GTID复制不像传统的复制方式(异步复制、半同步复制)需要找到binlog(MASTER_LOG_FILE)和POS点(MASTER_LOG_POS),只需要知道master的IP、端口、账号、密码即可。因为复制是自动的,MySQL会通过内部机制GTID自动找点同步。
https://blog.csdn.net/xiaoyi23000/article/details/80521423
https://blog.csdn.net/u013399093/article/details/70568837
https://www.cnblogs.com/abobo/p/4242417.html
4. 了解几个关键词
读写分离
- 读写分离,基本的原理是让主数据库处理事务性增、改、删操作(INSERT、UPDATE、DELETE),而从数据库处理SELECT查询操作。数据库复制被用来把事务性操作导致的变更同步到集群中的从数据库。
- https://blog.csdn.net/qq_39478853/article/details/80623612
分库分表
- 当一张表的数据达到几千万时,你查询一次所花的时间会变多,如果有联合查询的话,我想有可能会死在那儿了。分表的目的就在于此,减小数据库的负担,缩短查询时间。
- mysql中有一种机制是表锁定和行锁定,是为了保证数据的完整性。表锁定表示你们都不能对这张表进行操作,必须等我对表操作完才行。行锁定也一样,别的sql必须等我对这条数据操作完了,才能对这条数据进行操作。
学习笔记0601----mysql主从相关推荐
- 架构mysql_MySQL学习笔记之MySQL架构
MySQL 最重要.最与众不同的特性是它的存储引擎架构,这种架构的设计将查询处理及其他系统任务和数据的存储/提取相分离.这种处理和存储分离的设计可以在使用时根据性能.特性,以及其他需求来选择数据存储的 ...
- MySQL学习笔记 | 04 - MySQL数据库基本操作(增加、修改、删除、查看)
MySQL学习笔记 | 01-为什么要使用数据库 MySQL学习笔记 | 02 - MySQL在Windows下的安装.配置.服务启动/停止.用户登录.查看版本号 MySQL学习笔记 | 03 - M ...
- 【学习笔记】MySQL数据库高级版 - 索引优化、慢查询、锁机制等
本文是尚硅谷周阳(阳哥)老师的MySQL高级篇视频的学习笔记.由于视频比较老,所以在高版本的MySQL中索引的地方做了优化,和视频的内容不完全一样,不过大体一致.从第四节锁机制开始的部分还没有整理. ...
- 《MySQL实战45讲》——学习笔记01-03 “MySQL基本架构、日志系统、事务隔离“
最近有新闻说"丁奇"炒股失败欠债,赶紧去极客时间买了他的<MySQL 实战 45 讲>以防下架,顺带重新系统的复习下MYSQL相关知识,记录下学习笔记: 本篇介绍: M ...
- Qt学习笔记之MySQL数据库
一.MySQL概述 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品.MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQ ...
- linux 指定库名 登录mysql_数据库学习笔记之MySQL(01)
目录 01. 什么是数据库? 02. 常见数据库 03. MySQL简介 04. 数据库系统(Database System)的组成 05. SQL语言 06. SQL语言组成 07. MySQL的常 ...
- mysql 浮点数 字节_数据库学习笔记之MySQL(02)
目录 01. 数据表的组成 02. 数据表创建的前提 03. 数据表的创建语法规范 04. MySQL中的数据类型 05. 数值型包含哪些 06. 字符串类型 07. 日期时间类型 正文 01. 数据 ...
- 学习笔记(04):MySQL数据库运维与管理-02-二进制日志及其管理
立即学习:https://edu.csdn.net/course/play/10084/221708?utm_source=blogtoedu 二进制日志 二进制日志包含所有描述数据库更改的事件(ev ...
- 学习笔记:MySQL高阶知识体系(下)——索引、锁、日志、隔离级别与MVCC
转载自https://www.ydlclass.com/doc21xnv/database/mysqladvance/mysqlAdvance2.html MySQL高阶知识体系(下) 6. 索引 6 ...
- 【学习笔记】mysql多实例安装
mysql多实例安装(笔记) 安装环境:CentOS最小化的系统 已经编译安装了mysql 先停止mysql服务 killall -9 mysql 创建一个/data目录 再创建一个端口号的文件夹(想 ...
最新文章
- 【SAP技术】SAP MM 如何看一个自定义移动类型是复制哪个标准移动类型而创建的?
- Python基础(3) - 数据类型:2字符串类型
- 项目管理如何调动员工的积极性?
- DevOps运维开发一体化 - 公开课笔记
- 蓝奏云批量下载v0.3修复版
- PHP类: SEO必备的伪原创工具 (文章重写)
- nodejs 安装express
- 北京人工智能工程师职称评定政策出台,明年起一年一评
- 数据结构之基于Java的顺序列表实现
- java ant教程_ant教程(三) ant入门
- 下列软件包有未满足的依赖关系: cmake-qt-gui : 依赖: cmake (= 3.10.2-1ubuntu2) E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依
- 油猴脚本(Tampermonkey)的安装和使用小结
- Netapp存储性能调优
- 医院子母钟系统-YZ-9200
- 资源暂时不可用错误(Out of memery)完美解决方案
- # 3 网页实现吃豆子动画
- HDU-4539 郑厂长系列故事——排兵布阵 状态压缩DP Or 最大团
- Oracle 基本操作
- 我国4种托盘的标准尺寸,托盘高度一般多少
- 电脑屏幕旋转工具 躺着看才舒服。
热门文章
- 南京理工计算机硕士就业,南京理工大学好就业吗?附南京理工大学就业率最高的专业名单...
- mongo-go-driver 踩坑心得 server selection error
- 2022-2028年全球与中国树突状细胞癌疫苗免疫治疗行业深度分析
- Android签名打包报错:Conversion to Dalvik fromat failed with error 1
- 导出mysql表数据到文件
- 关于PHP连接数据库出现:Fatal error: Uncaught Error: Call to undefined function mysql_connect()
- Matlab : 切换中、英文用户界面 (中文变英文)
- tensorflow 做多元线性回归时怎样对非数据型数据(分类型数据)进行处理(编码)
- eBPF动手实践系列一:解构内核源码eBPF样例编译过程
- 我奋斗了18年,不是为了和你一起喝咖啡(转)