Category: 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 Query Cache

在 Persona 看到,MySQL 使用手册提到,要关闭 MySQL 的 Query Cache,在 MySQL 执行时设定 query_cache_type 变量为 0, 便可以关闭 Query Cache。但 Persona 的专家发现,需要在 my.cnf 设定 query_cache_type 及 query_cache_size 为 0, 并重新启动 MySQL 才会真闗闭 Query …

MySQL 5.1 升级到 MariaDB 5.5

CentOS 6 默认的数据库系统是 MySQL 5.1, 当服务器升级到 CentOS 7 后, 默认的数据库系统改为 MariaDB 5.5, 即等同 MySQL 5.5. 由于数据库的数量较多, 而且体积也很大, 所以不会用 mysqldump 转移, 而且将整个数据库目录搬到新服务器, 再用 mysql_upgrade 工具实现, 以下是由 MySQL 5.1 升级到 MariaDB …

phpMyAdmin 错误: Login without a password is forbidden by configuration (see AllowNoPassword)

有时一些开发环境的 MySQL 或 MariaDB 服务器没有设定 root 密码, 如果在没有设定 MySQL root 密码的服务器上安装 phpMyAdmin, 存取 phpMyAdmin 页面时会出现以下错误: Login without a password is forbidden by configuration (see AllowNoPassword) 出现这个错误的原因, 是 phpMyAdmin 默认不允许使用空密码, …

用连结档改变 MySQL / MariaDB 数据库目录

本站另一篇文章 修改 MySQL / MariaDB 数据库储存目录 介绍了修改 MySQL 的数据库目录, 方法是透过修改 my.cnf 档案里面的 “datadir” 参数达成。如果不想修改 my.cnf 档案, 可以透过建立 Symlink (连结档) 的方法实现, 以下是设定步骤, 适用于 MySQL 及 MariaDB。 首先停止执行 MySQL / MariaDB: …

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 为例,默认在 …

指令模式直接执行 MySQL 指令

Linux 的系统管理员, 有时需要在 CLI 执行单一 MySQL 指令, 要实现很容易, 只要用 mysql 的客户端即可, 以下会以 MySQL Server 的环境作为使用例子, 但在 MariaDB 同样适用。 只要用 CLI 的 mysql 指令 (mysql client) 加上 -e 参数, 就可以直接加入需要执行的指令, …