Category: MySQL
在 RHEL 及 CentOS 7 开始, 默认的数据库系统是 MariaDB, 基本上 MariaDB 可以取代 MySQL, 但如果仍然想继续用 MySQL 的话, 除了可以编译 MySQL Community Server 的原始码外, 也可以安装 Oracle 提供的官方 YUM repository, 那便可以透过 Yum 安装 MySQL …
RHEL 7 开始, MariaDB 会取代 MySQL 成为默认的数据库系统, 以下是安装方法: yum install mariadb-server mariadb 只要输入以上指令就可以透过 yum 安装 mariadb server 及 client, 现在开启 MariaDB Server: systemctl start mariadb.service 设定开机自动开启 MariaDB Server: systemctl …
如果开启了 MySQL binary log, 在 MySQL 资料目录里面会有很多这样的档案: mysql-bin.000001 mysql-bin.000002 mysql-bin.000003 mysql-bin.000004 mysql-bin.000005 MySQL 在默认情况下不会删除旧 binary log, 可以透过设定 my.cnf 进行日志轮替, 开启 my.cnf, 加入这一行在 区块内: expire_logs_days = 14 expire_logs_days 是指定 binary …
现在很多地方都用上数据库系统, 有一些是检查用户名称及密码的登入系统, 但如果没有对用户输入进行过滤, 会有很多潜在危除, 例如以下程式码: my $sth = $dbh->prepare(“select * from user where user=’$user’ and pass=’$pass'”); 以上这句 SQL 会检索 user 资料表, 找出 user 及 pass 与用户输入匹配的纪录, 有回传便可以登入, 没有回传便登入失败, 这个很容易理解。但如果用户的输入包括了一些特定的 …
在 Perl 要连接数据库可以使用 DBI module, DBI module 支援多种数据库系统, 例如 DB2, MS SQL Server, Oracle, SQLite, PostgreSQL, Firebird 及 MySQL。只要在程式宣告使用 DBI module, 用 Perl 连接 MySQL 便会跟 PHP 一样简单, 以下是使用例子:
MySQL 的备份可以透过直接复制 MySQL 数据库目录(冷备份),或者用 mysqldump 汇出数据库的完整 SQL 语句实现(热备份),以下是两种方法的优/缺点,以及实现方法: 冷备份 这种方法最大的好处是简单,备份只要直接复制数据库目录,还原则只要将备份目录抄回原来位置便可以,而且速度会较快。但缺点是冷备份时必须要关闭 MySQL,如果 MySQL 在执行时进行冷备份,备份档可能会有不完整及损毁的情况,以下是冷备份步骤: 1. 关闭 MySQL: # /etc/rc.d/init.d/mysqld stop 2. 把 MySQL 的资料目录(包括 ibdata1, ib_logfile0, ib_logfile1 等)完整复制到另一个硬盘里面。 3. 开启 …
MySQL 在 5.1 版本开始默认没有支援 InnoDB, 如果用 yum 安装的话, Redhat 会处理好 InnoDB 支援, 但如果自行编译安装的话, 便需要作出一点改动。以前我编译 MySQL 会用以下参数编译: 这样会安装 MySQL 到 /usr/local/mysql51, 并安装所有额外的 charsets, 如果要在 MySQL 5.1 后支援 InnoDB, 需要加入支援 InnoDB …
要对 MySQL 数据库内的资料替换字串,可以借助 PHP 的 str_replace(),但这实在太麻烦了,其实MySQL 已内建了这个功能,以下语句可以将 资料表的 字段作 replace 动作, 是搜索字串; 是替换字串。 update set =replace(,’‘,’‘); 如果不想将整个资料表的字段资料更换,可以在最后用 where 做条件选择,例如: update set =replace(,’‘,’‘) where zip=’852′; 以上语句跟第一句的分别是,第二句只会对字段 “zip” 为 “852″ 的纪录作更改。
最近要更新 MySQL 资料表内其中一个字段的所有资料,只是用以下这个 SQL 指令: UPDATE table_name SET field_name=0; 有个 MySQL 回传的错误讯息为: “You are using safe update mode and you tried to update a table without a WHERE clause …
有时我们需要将不同字段的资料连接,或者在现在的资料后面加入内容,当然可以先从 MySQL 汇出资料,再把连接好的字串更新到 MySQL,但这未免太麻烦,另一个较方便的方法是借助 CONCAT() 实现,CONCAT() 语法为: CONCAT(string_1, string_2, string_3, …) MySQL 的 CONCAT() 支援多个字串连接,但在 Oracle 里面只可以有两个参数,要实现多个字串连接可以用 ‘||’ 来实现。以下是 CONCAT() 的使用实例: update table_name set email=CONCAT(email, ‘:me@email.com’) where id=’1′; 以上 …