Tag: Percona
在 MySQL / MariaDB 插入资料时,每笔资料也会有限制,默认值是 16MB,其实这个 16MB 的限制已经很宽松,一般情况都会够用,但如果将档案 (例如图片) 直接储存在 MySQL 的话,便有可能出现错误,当用 inert 插入 或 update 更新的资料超过限制的话,会出现以下错误: Error 1153 – Got a packet bigger than ‘max_allowed_packet’ bytes 要解决这个问题可以修改 MySQL …
phpMyAdmin 是十分流行的 MySQL 数据库管理系统,可以透过网页接口管理 MySQL 数据库,提供建立、编辑、删除数据库及资料表,也可以管理使用者及其权限。以下文章会介绍在 RHEL, CentOS 用 yum 安装 phpMyAdmin 的方法。 在安装 phpMyAdmin 前,需要先系统安装好 Apache, PHP 及 MySQL (MariaDB),确定安装好后便可以开始进行安装。 1. 加入 EPEL Repository 在 CentOS 默认的 Repository …
在安装 MySQL 或 MariaDB 服务器后, 当执行 mysql_secure_installation 后会完成一些基本的安全设定, 其中一项就是设定 root 的密码。 如果在往后忘记了这个 MySQL root 密码, 可以用以下方法重设, 以下文章会以 CentOS 环境作为例子. 首先将运行中的 MySQL Server 停止执行: # systemctl stop mariadb 或 # …
今天在一个系统上除错, 发现用以下 SQL 指令找不到资料: 要用以下 SQL 指令才可以找到: 用 phpMyAdmin 检查那些资料好像没问题, 再细心找才发现有些资料的字段结尾有 “\n” 或 “\r”, 出现这个问题的原因大栏是在插入资料时没有删除掉 “\n” 这类字符, 插入的部份很容易解决, 再来要将原有的资料内的 “\n” 及 “\r” 删除。 在处理前先将资料表备份, 然后可以用以下 SQL 指令将所有 “\n” 及 …
原本用 mysqldump 备份 MySQL 一直没有问题, 但近日在一台新主机上用 mysqldump 备份所有资库时, 出现以下错误: mysqldump: Got error: 1044: Access denied for user ‘root’@’localhost’ to database ‘information_schema’ when using LOCK TABLES 我也肯定输入的 MySQL 密码没有问题, 因为已经将登入资储存, …
在 Linux CLI 下连接到 MySQL 或 MariaDB 时, 最简单的方法是用默认的 MySQL 客户端工具, 连接方法是这样: $ mysql -u root -p 这样连接 MySQL 最大的问题是, 登入 MySQL 后, 在里面输入的 SQL 指令或语法要凭记忆, 逐个字母输入。而 MyCLI 就可以解决这个问题, …
RHEL 及 CentOS 7 默认的资库系统是 MariaDB 5.5 (等同 MySQL 5.5), 虽然现时 MySQL 最新版是 5.7, 但一般上升级都建议一级一级上, 而 MySQL 5.6 比 5.5 也提高了效能及提供更多功能, 以下是在 RHEL 及 CentOS 从原来的 MySQL 5.5 或 …
当错误删除了 MySQL 的 InnoDB 数据库档案 ibdata 及 ib_logfile, 如果 MySQL 服务器仍在执行状态, 而且资料可以照常写入, 切记不要关闭 MySQL 服务器或 kill 掉 mysqld, 这时还可以将 InnoDB 数据库修复的, 以下记录修复的步骤, 如果要测试, 切记在测试环境进行, 切勿在生产环境测试: 1. 先找出 mysqld 的 …
在 MySQL 要删除资料可以用 DELETE 指令, 而清空资料表可以用 TRUNCATE, 删除资料表则可以用 DROP TABLE, 以下会介绍这三个 MySQL 指令的分别。 TRUNCATE MySQL 的 TRUNCATE 是用作清空资料表, auto_increment 的数值也会重设, 清空后的资料表就如同刚建立一样, 因为 TRUNCATE 的做法是先 DROP 掉资料表, 再用 CREATE 指令重新建立资料表, …
MySQL 使用 InnoDB 时,当资料表用 DELETE FROM 删除资料后,硬盘空间并不会立即释放,因为 MySQL 只对已删除的资料标记为删除,并没有真正删除资料,这会导致 InnoDB 的档案不断扩大。只有在 DROP TABLE 及 TRUNCATE TABLE 时才会释放空间。 如果没有开启 innodb_file_per_table,所有 InnoDB 的资料都会储存在 ibdata 档案内,对于数据库的体积很大的 MySQL Server,要释放硬盘空间会很痛苦,因为只有将 MySQL 数据库导出,再重新将备份还原才可以释放空间。如果 innodb_file_per_table 有开启,每个 …