Tag: Percona

MySQL 完整复制资料表

当需要将 MySQL 资料表完整复制时, 如果资料表是使用 MyISAM 储存引擎, 可以直接停止 MySQL 服务器, 再将资料表的 .MYD 及 MYI 档案复制。但如果资料表是 InnoDB, 或者不想停止 MySQL 运作, 除了用传统的备份方法外, MySQL 已经内建了复制的功能, 具体做法如下。 假设旧资料表是 old_table, 新资料表是 new_table, 可以执行以下 SQL Query: …

MySQL 换算 Unix Timestamp 日期时间

在多时写程式都会用 Unix Timestamp 储存时间,好处是可以很简单作日期计算,以及用不同格式显示日期。 以前储存在 MySQL 的日期时间,会撷取后用 PHP 的 date() 函式显示,但 MySQL 已经内置了用作换算 Unix Timestamp 的功能,用起来很方便,以下记录一下用法。 UNIX_TIMESTAMP() — 取得目录 Unix Timestamp: 以前习惯在 PHP 用 time() 函式插入 Unix Timestamp 到 …

同时安装 MySQL 及 MariaDB

MariaDB 是 MySQL 的替代产品, 也是 RHEL 7 及 CentOS 7 的默认数据库系统。有时需要在 MariaDB 及 MySQL 之间做测试, 或者在不同版本 MySQL 之间做测试, 同时安装及运行 MariaDB 及 MySQL 会很方便, 以下纪录一下在主机内同时安装 MariaDB 及 MySQL 运行, 当然如果有需要, …

MySQL 检查字段是否 NULL 或空白

有时需要在 MySQL 数据库内,检查字段的值是否 NULL,这个可以使用 MySQL 内建检查 NULL 的功能,分别是 “IS NULL” 及 “IS NOT NULL”, 以下是用法: select 资料表 table_name,字段 col_name 是 NULL 的纪录: select 资料表 table_name,字段 col_name 不是 NULL 的记录: …

Shell Script 连接 MySQL 安全写法

在 Shell Script 连接 MySQL, 可以用以下语句实现: $ mysql -u db_user -pdb_password db_name -e ‘sql_query’ 如果系统内没有其他使用者,这个方法没什么问题,但如果系统有其他使用者,在执行 Shell Script 时,其他使用者便可以用 ps 这类指令,看到正在连接 MySQL 的使用者名称及密码。 较安全的方法是将 MySQL 使用者名称及密码储存到家目录的 .my.cnf 档案,那便不用在 Shell Script …

安装 MySQL 后的优化

以下是安装 MySQL 后可以尝试的优化项目,建议逐样项目修改,以检视每个项目的优化成效,而大部份的设定可以在运行中 MySQL 设定,不用重新启动 MySQL。 innodb_buffer_pool_size: 这个设定是 innodb 储存引擎数据库,所使用的资料及索引快取,根据内存的大小䀆量设定大一点,可以减低读取资料时从硬盘读取的次数。如果是独立的 MySQL 服务器,可以这样设定: 系统 8GB 内存: 5GB – 6GB 系统 32GB 内存: 20GB – 25GB 系统 128GB 内存: 100GB – …

MySQL 错误: Another MySQL daemon already running with the same unix socket

如果 MySQL 没有正常关闭,例如强制关机或断电等,重新启动时可能会出现以下错误: Another MySQL daemon already running with the same unix socket 要解决这个问题,只要将 MySQL 的 mysql.sock 删除或重新命名即可。mysql.sock 档案默认会在 MySQL 资料目录下,如果不在那里,可以查看 my.cnf,可能将 mysql.sock 设定到其他位置。 以 Redhat 及 CentOS 为例,默认在 …

开启 slow query log, 储存执行慢的 MySQL 语句

有时发觉程式执行很慢, 其中一个要检查的地方是数据库。MySQL 可以将执行过的 SQL 语句全部纪录下来, 或者可以只是将执行慢的 SQL 语句纪录下来, 这样对于 MySQL 语句的 Debug 就轻松很多了。 要纪录执行慢的 SQL 语句, 可以透过修改 my.cnf 完成, my.cnf 多数在以下位置: /etc/my.cnf /etc/mysql/my.cnf 先开启 my.cnf, 在 段落加入以下几行: 以上几行的意思分别是: slow_query_log …

MySQL 效能监控工具 — Mytop

Mytop 是一个指令模式的 MySQL 监控工具, Mytop 已经内建在 Fedora Repository, Fedora 可以略过以下步骤直接用 yum 安装。 如果是 RHEL 或者 CentOS, 需要先启用 RPMForge Repository, 根据不同的发行版安装相应的 RPM: RHEL, CentOS 7 64-Bits: RHEL, CentOS 6 32-Bits: …