-
本帖最后由 tony 于 2017-11-14 16:43 编辑在MySQL中,和时区相关的参数有两个,分别是:system_time_zone和time_zone1. system_time_zone 代表系统时区当MySQL启动的时候,会从操作系统中获取时区,用它来设置system_time_zone系统变量,一旦设置好了,以后就不能修改。 2. time_zone代表server时区,初始值为SYSTEM,表示server时区和系统时区一致。 3. 两个option太容易混淆了在启动脚本中,可以加上两个options,--timezone=timezone_name 用于设置系统时区--default-time-zone=timezone 用于设置server时区 4. 当前时区的影响影响与时区相关的显示和存储,包括:NOW(), CURTIME()还有TIMESTAMP字段 5. timezone值的设置[list=a] [*]可以设置为’SYSTEM’, 表示和系统时区一致 [*]可以设置为UTC的偏移值, 如: ‘+10:00’ 或者 ‘-6:00’ [*]可以设置为具体的时区名字, 如’Europe/Helsinki’, ‘MET’
-
最近有不少客户吐槽,华为数据库服务MySQL默认时区使用的是UTC,而不是我们正常人生活的东八区时间,我们面壁......用户可以通过修改参数组的方法修改时区,方法如下: 1.创建好数据库实例后,在数据库管理控制台里创建新的参数组 4009 2.点击编辑,选择time_zone参数,修改为Asia/shanghai 4010 3.将已创建的实例绑定刚刚编辑的参数组即可,如果已绑定,则不需要重新操作,时区修改不需要重启数据库 4011
-
本帖最后由 Tim Lee 于 2017-11-15 17:50 编辑在购买RDS MySQL实例过程中,用户需要设置各种选项。针对这些选项,本文档向您提供设置参考,使您购买的实例更符合要求,以避免后续不必要的变更,减少维护工作量。购买RDS MySQL实例的具体操作,请参见《关系型数据库购买指南》的“购买RDS MySQL实例”章节。 1.1 选择付费方式RDS支持付费方式如下: [*]包年包月 [*]按需付费 从价格上看,在相同时长的情况下,包年包月比较优惠。 [*]对于长期使用的数据库实例,建议在购买时“付费方式”选择“包年包月”。 [*]对于临时使用的数据库实例,建议在购买时“付费方式”选择“按需付费”。 RDS MySQL实例成功购买后,不支持变更付费方式,请谨慎选择付费方式。 1.2 选择区域华为云在不同区域(Region),支持不同可用分区(Available zone,简称AZ)。 表1-1 RDS支持的Region和AZ华为云支持的区域RDS是否支持说明中国华北区1是具有2个AZ,支持跨AZ高可用性。中国东北区1否不涉及。中国华东区2是单AZ。中国华南区1是单AZ。中国华北区1具有2个可用区(Available zone),其它区域为单可用区。如果需要跨可用区高可用特性,区域请选择中国华北区1。 1.3 选择HA和同步模型选择HA(High Availability) [*]如果购买MySQL实例时,不开启HA,则购买的实例为单实例。当该实例出现系统崩溃时,则没有任何替代实例接管业务读写请求。 [*]如果购买MySQL实例时,开启HA,RDS会自动为用户创建主备实例,组成双机热备高可用架构。当主实例宕机时,RDS会快速将备实例升为主实例并接管业务读写请求。该过程为系统自动完成,无需用户介入参与。 因此,在购买实例时,用于生产的数据库,建议开启HA;用于测试的数据库,可以选择不开启HA,以减少性能损耗和节省资源成本。选择同步模型 4933 MySQL主从复制原理流程如下:1. 主实例数据库将数据变更记录到二进制日志“Binary log”中。该部分变更记录称作二进制日志事件,即binary log events。2. 备实例数据库将主实例数据库的binary log events,拷贝到备实例数据库的中继日志“Relay log”。3. 备实例数据库重做“Relay log”中的事件,将变更应用到它自己的数据库。对于主实例数据库是否等待备实例数据库收到“Binary log”才响应客户端,不同的同步模型(也称为复制模型),处理方式存在差异。根据处理方式的不同,同步模型可以分为“异步”和“半同步”。 [*]异步 RDS默认异步复制,即主实例数据库执行完Commit后,在主实例数据库写入“Binarylog”日志后便可成功响应客户端,无需等“Binary log”日志传到备实例数据库,一旦主实例数据库系统崩溃,则有可能会丢失日志。 [*]半同步 等待备实例数据库接收到“Binarylog”日志,并成功写入“RelayLog”之后,才返回Commit操作成功给客户端。事务成功提交后,至少有两份日志记录,一份在主实例数据库“Binary log”上,另一份在备实例数据库“Relay Log”上,进一步保证数据完整性。半同步复制很大程度取决于主备网络RTT(往返时延),以“semisync_master”和“semisync_slave”插件形式存在。从上面的复制原理可以看出,采用异步复制模型,可减少性能损耗,但可能存在数据丢失风险。选择半同步复制模型,则可确保数据完整性,但存在性能损耗,按目前测试结果,性能会降低10%左右。 最佳实践 [*]用于生产的数据库建议开启HA,用于测试的数据库可关闭。 [*]如果数据库的性能优先,并且能容忍一定的数据丢失,推荐HA选择异步复制。 [*]如果数据库的数据完整性优先,并且能容忍一定的性能损耗,推荐HA选择半同步复制。 [*] 1.4 选择数据库版本选择版本RDS for MySQL支持的数据库版本,如表1-2所示。 表1-2 MySQL版本列表版本子版本5.6[*]5.6.30 [*]5.6.33 [*]5.6.34 [*]5.6.35 [*]5.6.365.7[*]5.7.175.7版本与5.6兼容,除了性能上有提升外,还具有如下新特性和改进功能: [*]安全提升 [*]在线索引更名 [*]InnoDB增强 [*]JSON支持 [*]新增sys schema [*]在线修改复制关系 [*]支持多源复制 [*]支持多线程复制(MTS) [*]半同步增强 其中,最值得关注的是,支持多线程复制特性。它不同于MySQL 5.6中schema级别的多线程复制,而是提供了真正的多线程复制能力,大大降低复制延迟。最佳实践 [*]新上线的业务,推荐使用MySQL 5.7数据库。 [*]已有业务迁移上云,在充分的兼容性测试后,推荐迁移到MySQL 5.7。 [*]推荐使用数据库最新的子版本。 RDS暂不支持将MySQL 5.6直接升级到MySQL 5.7,后续会推出该功能。请确定好您所需的数据库版本,并在购买时选择。 1.5 选择数据库实例规格RDS提供了多种实例规格,以满足不同需求。一般情况下,2核以下的实例都用于测试,不建议用作生产数据库。同时,选择何种的实例规格,取决于如下主要因素: [*]数据库吞吐量,即QPS(Query PerSecond)。 [*]最大数据库连接数。 常用规格测试数据,请参见表1-3: 表1-3 常用规格测试数据实例规格数据库吞吐量(QPS)最大数据库连接数2核4GB800012004核8GB1600020008核32GB23000400016核128GB250008000上述测试数据基于sysbench的“oltp.lua”模型测试得出,数据量为64个表,每个表1000万条记录。建议数据库上云前做实际的测试,以确定满足业务需要的数据库实例规格。 1.6 选择参数组选择参数组数据库参数组类似于数据库引擎配置值的容器,参数组中的参数可应用于一个或多个数据库实例。它相对于传统一个实例一套参数的模式,在使用上有一些差异,例如: [*]RDS提供了若干默认参数组,例如default-MySQL-5.6和default-MySQL-5.7。 默认参数组不可编辑。 [*]如果要修改某个参数值,需要基于默认参数组创建一个新的参数组,然后修改新参数组的参数值。 [*]如果您对购买实例时选择的参数组不满意,可在创建成功后,变更该实例对应的参数组。 [*]有些参数值的修改需重启实例才能生效。 最佳实践推荐使用自定义参数组。将自定义参数组应用于数据库实例,不要使用默认参数组。即使购买实例时使用了默认参数组,创建成功后也可变更实例的参数组。 1.7 选择存储类型RDS与云硬盘(Elastic Volume Service,简称为EVS)均采用分布式块存储作为存储资源,具有3副本冗余,数据持久性达到99.99999%。RDS支持存储类型:普通IO、高IO和超高IO。各存储类型含义如下: [*]普通IO,是由SATA存储类型组成的存储资源池,IOPS为1/GB。 [*]高IO,是由SAS存储类型组成的存储资源池,IOPS为2/GB。 [*]超高IO,是由SSD存储类型组成的存储资源池,IOPS为50/GB。 数据库系统通常是IT系统最为重要的系统,对存储IO性能要求高,存储类型建议选择超高IO,RDS暂时不支持购买实例后变更存储类型。 1.8 选择备份策略使用场景HA高可用替代不了自动备份的作用。例如,由于某种原因,某个数据库或表被恶意或误删除,虽然有HA高可用,但是主备数据库由于数据同步原因,数据同步被删除,无法还原。遇到这种情况,只能求助于自动备份。通过恢复到指定时间点(PITR)功能,用户可以将数据库实例恢复到删除前的某一时刻,还原被删除的数据。所以,自动备份具有很高的重要性。用户可根据业务情况,设置自动备份保留天数,范围为1~35天,同时,可设置自动备份开始时间。用户一旦打开自动备份策略,RDS每天会在预设时间1小时内触发一次全量备份,每5分钟进行一次增量备份(binlog备份),并将该部分备份数据上传到对象存储服务(ObjectStorage Service,简称OBS)的对象存储空间。 最佳实践 [*]生产数据库请务必打开自动备份策略。 [*]保留天数建议至少为3天,如果要求更高的话,可增加保留天数,最大可保留35天。 [*]由于备份会损耗数据库读写性能,请根据业务情况设置备份开始时间,建议选择业务低峰时间段启动自动备份
-
IntroductionMySQLGroup Replication is a MySQL pluginand it builds on the existing MySQL replication infrastructure, takingadvantage of features such as the binary log, row-based logging, and globaltransaction identifiers. It integrates with current MySQLframeworks, such as the performance schema or pluginand service infrastructures. The following figure presents a block diagramdepicting the overall architecture of MySQL Group Replication. lTosummarize, MySQL Group Replication provides ahighly available, highly elastic, dependable MySQL service.
-
一、 必要的配置参数从库:--master-info-repository=TABLE--relay-log-info-repository=TABLE 如果不想停止mysql,也可以动态修改,如下: STOP SLAVE; SET GLOBALmaster_info_repository = 'TABLE';SETGLOBAL relay_log_info_repository = 'TABLE';二、 如果主1是基于GTID,那么应该这样建立主从关系CHANGEMASTER TO MASTER_HOST='master1', MASTER_USER='rpl', MASTER_PORT=3451,MASTER_PASSWORD='', MASTER_AUTO_POSITION = 1 FOR CHANNEL 'master-1';这里最主要的就是后面的for channel …为每个主开通一个复制通道。三、 如果主2是基于binlog,那么应该这样建立主从关系CHANGEMASTER TO MASTER_HOST='master2', MASTER_USER='rpl', MASTER_PORT=3451,MASTER_PASSWORD='' MASTER_LOG_FILE='master1-bin.000006', MASTER_LOG_POS=628 FORCHANNEL 'master-2';开启第二个复制通道四、 启动复制startslave thread_types (默认会启动所有配置的复制通道)如果想启动某个复制通道,需要使用下面的语法:STARTSLAVE thread_types FOR CHANNEL channel;五、 停止复制和启动复制类似,STOPSLAVE thread_types; (默认会关闭所有配置的复制通道如果想关闭某个复制通道,需要使用下面的语法:STOPSLAVE thread_types FOR CHANNEL channel;六、 ResetRESETSLAVE; (默认会reset所有复制通道)RESETSLAVE FOR CHANNEL channel; (reset某个复制通道)七、 对于复制通道的监控SHOWSLAVE STATUS; (显示所有复制通道,一个通道一行)SHOWSLAVE STATUS FOR CHANNEL channel_name. ; (显示单个复制通道)可以查看Performance Schema tablesSELECT *FROM replication_connection_status\G;八、 复制通道复制通道的名字基本可以随便取,必须唯一,但是有两个名字是系统保留的: group_replication_applier group_replication_recovery九、 对于多通道的复制相关命令• CHANGEMASTER TO•START SLAVE•STOP SLAVE•SHOW RELAYLOG EVENTS•FLUSH RELAY LOGS•SHOW SLAVE STATUS• RESETSLAVE 这些命令都可以跟上FOR CHANNEL channel_name,但是对于group_replication_recovery这个通道,下面两个命令是不允许的。 • START SLAVE • STOP SLAVE十、 半同步复制改进在MySQL5.7中,半同步复制技术升级为全新的Loss-lessSemi-Synchronous Replication,引进了rpl_semi_sync_master_wait_point变量,它可以取值两种:AFTER_SYNC: (默认就是这个值)AFTER_COMMIT: MySQL5.6半同步存在的问题:当客户提交一个事务(这个时候主库已经将事务提交给引擎了),master把binlog发送给slave,假如在发送期间,网络出现问题,slave并没有真正收到binlog,默认等待10秒后就会返回给客户端。如果恰好这时主库crash了,从库就和主库的数据不一致了。 那么能否当客户在主库提交一个事务时,不立即提交给引擎。而是等到从库收到了binlog后,主库才会将事务提交给引擎。如果中途出现网络问题,那么主库是看不到事务提交成功的。(这里有一个疑问,如果主库提交给引擎出错了怎么办,是不是还会发送一个rollback的动作到从库) 前者就是传统的模式:AFTER_COMMIT后者是新的模式: AFTER_SYNC
-
本帖最后由 我要选李白 于 2017-9-15 18:20 编辑Mysql是一款很常见的关系型数据库,虽然目前在逐渐式微,并且分裂出了MariaDB, 但仍然是很多的轻型应用的首选。 那么如何在华为云上部署Mysql呢,笔者经过实验,发现与传统部署模式完全一致,无需做任何改动,现提供以下安装步骤,仅作抛砖引玉: Linux/UNIX上安装MysqlLinux平台上推荐使用RPM包来安装Mysql,MySQL AB提供了以下RPM包的下载地址: [*]MySQL - MySQL服务器。你需要该选项,除非你只想连接运行在另一台机器上的MySQL服务器。 [*]MySQL-client - MySQL 客户端程序,用于连接并操作Mysql服务器。 [*]MySQL-devel - 库和包含文件,如果你想要编译其它MySQL客户端,例如Perl模块,则需要安装该RPM包。 [*]MySQL-shared - 该软件包包含某些语言和应用程序需要动态装载的共享库(libmysqlclient.so*),使用MySQL。 [*]MySQL-bench - MySQL数据库服务器的基准和性能测试工具。 以下安装Mysql RMP的实例是在SuSE Linux系统上进行,当然该安装步骤也适合应用于其他支持RPM的Linux系统,如:Centos。 安装步骤如下: 使用root用户登陆你的Linux系统。 下载Mysql RPM包,下载地址为:MySQL 下载。 通过以下命令执行Mysql安装,rpm包为你下载的rpm包: [code][root@host]# rpm -i MySQL-5.0.9-0.i386.rpm[/code]以上安装mysql服务器的过程会创建mysql用户,并创建一个mysql配置文件my.cnf。 你可以在/usr/bin和/usr/sbin中找到所有与MySQL相关的二进制文件。所有数据表和数据库将在/var/lib/mysql目录中创建。 以下是一些mysql可选包的安装过程,你可以根据自己的需要来安装:[code][root@host]# rpm -i MySQL-client-5.0.9-0.i386.rpm [root@host]# rpm -i MySQL-devel-5.0.9-0.i386.rpm [root@host]# rpm -i MySQL-shared-5.0.9-0.i386.rpm [root@host]# rpm -i MySQL-bench-5.0.9-0.i386.rpm[/code] Window上安装Mysql Window上安装Mysql相对来说会较为简单,你只需要载 MySQL 下载中下载window版本的mysql安装包,并解压安装包。 双击 setup.exe 文件,接下来你只需要安装默认的配置点击"next"即可,默认情况下安装信息会在C:\mysql目录中。 接下来你可以通过"开始" =》在搜索框中输入 " cmd" 命令 =》 在命令提示符上切换到 C:\mysql\bin 目录,并输入一下命令: [code]mysqld.exe --console[/code]如果安装成功以上命令将输出一些mysql启动及InnoDB信息。 验证Mysql安装 在成功安装Mysql后,一些基础表会表初始化,在服务器启动后,你可以通过简单的测试来验证Mysql是否工作正常。 使用 mysqladmin 工具来获取服务器状态: 使用 mysqladmin 命令俩检查服务器的版本,在linux上该二进制文件位于 /usr/bin on linux ,在window上该二进制文件位于C:\mysql\bin 。 [code][root@host]# mysqladmin --version[/code]linux上该命令将输出以下结果,该结果基于你的系统信息: [code]mysqladmin Ver 8.23 Distrib 5.0.9-0, for redhat-linux-gnu on i386[/code]如果以上命令执行后未输入任何信息,说明你的Mysql未安装成功。 使用 MySQL Client(Mysql客户端) 执行简单的SQL命令你可以在 MySQL Client(Mysql客户端) 使用 mysql 命令连接到Mysql服务器上,默认情况下Mysql服务器的密码为空,所以本实例不需要输入密码。 命令如下:[indent][code][root@host]# mysql [/code][/indent]以上命令执行后会输出 mysql>提示符,这说明你已经成功连接到Mysql服务器上,你可以在 mysql> 提示符执行SQL命令:[code]mysql> SHOW DATABASES; +----------+ | Database | +----------+ | mysql | | test | +----------+ 2 rows in set (0.13 sec) [/code]Mysql安装后需要做的 Mysql安装成功后,默认的root用户密码为空,你可以使用以下命令来创建root用户的密码: [indent][code][root@host]# mysqladmin -u root password "new_password"; [/code][/indent]现在你可以通过以下命令来连接到Mysql服务器: [code][root@host]# mysql -u root -p Enter password:******* [/code]注意:在输入密码时,密码是不会显示的,请确保输入正确。 Linux系统启动时启动 MySQL如果你需要在Linux系统启动时启动 MySQL 服务器,你需要在 /etc/rc.local 文件中添加以下命令:[indent][code]/etc/init.d/mysqld start[/code]同样,你需要将 mysqld 二进制文件添加到 /etc/init.d/ 目录中。 [/indent]
-
Sysbench是一个模块化的、跨平台、多线程基准测试工具主要用于评估测试各种不同系统参数下的数据库负载情况。 它主要包括以下几种方式的测试:1、CPU性能 2、磁盘IO性能 3、调度程序性能 4、内存分配及传输速度 5、POSIX线程性能 6、数据库性能(OLTP基准测试) 目前Sysbench主要支持 MySQL、PostgreSQL、Oracle 这3种数据库。 源码安装:1)从http://sourceforge.net/projects/sysbench 下载源码包。2)tar -xzvf sysbench-0.4.8.tar.gz3)cd sysbench-0.4.8 ./configure && make && make installstrip/usr/local/bin/sysbench注:1)以上方法适用于 MySQL 安装在标准默认目录下的情况,如Mysql安装在/usr/local/mysql 下 ./configure --with-mysql-includes=/usr/local/mysql/include--with-mysql-libs=/usr/local/mysql/lib && make && makeinstall 2)如果想要让 sysbench 支持 pgsql/oracle ,在编译的时候加上参数 --with-pgsql 或者 --with-oracle(这2个参数默认是关闭的,只有 MySQL 是默认支持的) 通过yum管理工具安装:1)yum install sysbench: Installed: sysbench.x86_64 0:0.4.12-5.el6Dependency Installed: postgresql-libs.x86_64 0:8.4.20-1.el6_5Complete! Sysbench常用参数1、--num-threads=300:启动的线程数 2、--max-time=60:运行时间 3、--test=oltp:测试类型 4、--db-driver=mysql:测试的数据库类型 5、--oltp-table-size=1500000:表初始化数据量(行) 6、--oltp-nontrx-mode=insert:测试非事务模式 7、--mysql-table-engine=innodb:测试的表引擎 8、--mysql-host=localhost:要测试的主机 9、--mysql-port=5100:mysql端口 10、--mysql-user=root --mysql-password=** :mysql用户名和密码 11、--mysql-socket=/home/mysql/mysql/tmp/mysql.sock :mysql本地socket套接字路径 Sysbench使用步骤1)清理数据:sysbench --num-threads=300 --max-requests=0--max-time=60 --test=oltp --db-driver=mysql --oltp-table-size=1500000--oltp-nontrx-mode=insert --oltp-test-mode=nontrx --mysql-table-engine=innodb--mysql-host=localhost --mysql-port=5100 --mysql-db=test --mysql-user=_root--mysql-password=cnN4HBH98lublJXMf5hPEp48 --mysql-socket=/home/mysql/mysql/tmp/mysql.sock cleanupsysbench 0.4.12: multi-threaded system evaluation benchmark Dropping table ´sbtest´...Done. 2)准备数据:sysbench --num-threads=300 --max-requests=0--max-time=60 --test=oltp --db-driver=mysql --oltp-table-size=1500000--oltp-nontrx-mode=insert --oltp-test-mode=nontrx --mysql-table-engine=innodb--mysql-host=localhost --mysql-port=5100 --mysql-db=test --mysql-user=_root--mysql-password=cnN4HBH98lublJXMf5hPEp48 --mysql-socket=/home/mysql/mysql/tmp/mysql.sock preparesysbench 0.4.12: multi-threaded system evaluation benchmark Creating table ´sbtest´...Creating 1500000 records in table´sbtest´...3)执行测试:sysbench --num-threads=300 --max-requests=0--max-time=60 --test=oltp --db-driver=mysql --oltp-table-size=1500000--oltp-nontrx-mode=insert --oltp-test-mode=nontrx --mysql-table-engine=innodb--mysql-host=localhost --mysql-port=5100 --mysql-db=test --mysql-user=_root--mysql-password=cnN4HBH98lublJXMf5hPEp48 --mysql-socket=/home/mysql/mysql/tmp/mysql.sock run sysbench 0.4.12: multi-threaded system evaluation benchmark ========================OLTP test statistics: queries performed: read: 0 write: 110707 other: 0 total: 110707 transactions: 110707 (1841.17 per sec.) deadlocks: 0 (0.00 per sec.) read/write requests: 110707 (1841.17 per sec.) other operations: 0 (0.00 per sec.)
上滑加载中
推荐直播
-
华为云码道Agent集成与鸿蒙实战2026/08/11 周二 19:00-21:00
王一男-华为云码道产品规划专家;李炎-华为云码道产品专家;彭江敏-华为云鸿蒙端云一体化开发专家
本次直播带你解读华为云码道7月份产品新特性、新功能。更有专家演示码道Agent Space × 钉钉机器集成实战,从0到1打通消息通道;码道鸿蒙端云一体化实战,快速搭建员工签到系统。
回顾中 -
华为云开发者AI素养直播课·第五期2026/09/04 周五 16:00-18:00
林华鼎-华为云AI开发者运营负责人;蒋春阳-华为云AI开发者案例开发专家
本期直播内容: AI工具体验营 · 第5-8课连讲。Agent-Team 多智能体协作完成毕业设计实践
回顾中 -
华为云开发者AI素养ClassRoom·第六期2026/09/08 周二 19:00-20:00
樊渊-2026华为软件挑战赛冠军
高手来了:看软挑高手解析二维排样问题—从工业难题到算法突破
回顾中
热门标签