MySQL中文参考手册之my.conf

2023-05-16

4.15.3 自动启动和停止MySQL

mysql.server脚本可以被用来启动或停止服务器,通过用startstop参数调用它:


shell> mysql.server start
shell> mysql.server stop
  

mysql.server可在MySQL安装目录下的“share/mysql”目录里找到,或在MySQL源代码树的“support-files”目录下找到。

mysql.server启动服务器之前,它把目录改变到MySQL安装目录,然后调用safe_mysqld。如果你有在一个非标准的地点安装的二进制分发,你可能需要编辑mysql.server。修改它,运行safe_mysqld前,cd到正确的目录。如果你想要作为一些特定的用户运行服务器,你可以改变mysql_daemon_user=root行使用其他用户,你也能修改mysql.server把其他选项传给safe_mysqld

mysql.server stop通过向服务器发出一个信号停止它。你可手工执行mysqladmin shutdown关闭服务器。

当你开始使用MySQL作为生产应用时,你可能想要增加这些启动并且停止命令到在你的“/etc/rc * 文件中适当的地方。注意如果你修改mysql.server,那么如果某个时候你升级MySQL时,你的修改版本将被覆盖,因此你应该做一个你可重新安装的编辑过的版本的拷贝。

如果你的系统使用“/etc/rc.local”启动外部脚本,你应该添加下列到其中:


/bin/sh -c 'cd /usr/local/mysql ; ./bin/safe_mysqld &'   

你也可以在一个全局“/etc/my.cnf”文件中增加mysql.server的选项。一个典型的“/etc/my.cnf”文件可能看起来像这样:


mysqld]
datadir=/usr/local/mysql/var
socket=/tmp/mysqld.sock
port=3306

[mysql.server]
user=mysql
basedir=/usr/local/mysql
  
mysql.server脚本使用下列变量:userdatadirbasedirbindirpid-file

4.15.4 选项文件

4.15.4 选项文件

MySQL3.22 可以从选项文件中为服务器和客户读取缺省启动选项。

在Unix上,MySQL从下列文件读取缺省选择:

文件名 用途
/etc/my.cnf 全局选项
DATADIR/my.cnf 服务器特定的选项目
~/.my.cnf 用户特定的选项

DATADIRMySQL的数据目录(典型地对二进制安装是“/usr/local/mysql/data”或对源代码安装是“/usr/local/var”)。注意:这是在配置时间指定的目录,不是mysqld启动时用--datadir指定的目录!(--datadir在服务器寻找选项文件的地方无效,因为它以前寻找他们,它处理任何命令行参数。)

MySQL在Win32上从下列文件读取缺省选项:

文件名 用途
windows-system-directory/my.ini
C:/my.cnf 全局选项
C:/mysql/data/my.cnf 服务器特定的选项

注意,在Win32上你应该用/而不是/指定所有的路径,如果你使用/,你需要指定两个,因为在MySQL里面/是转义字符。

MySQL试图以上述所列的顺序读取选项文件。如果存在多个选项文件,在一个后面文件读取的选项优先于在先前读取的一个文件中指定的同一个选项,在命令行上指定的选项优先于在任何选项文件指定了的选项。有些选择能使用环境变量指定,在命令行或在选项文件指定的选项优先于环境变量。

下列程序支持选项文件:mysqlmysqladminmysqldmysqldumpmysqlimportmysql.servermyisamchkmyisampack

你能使用选项文件指定一个程序支持的任意长的选项!用--help选项运行程序可得到的可用选项的表。

一个选项文件可以包含下列形式的行:

#comment
注释行以 “#”“;”开始,空行被忽略。
[group]
group是你想为其设置选项的程序或组的名字。在一个组行后,任何 optionset-variable行应用于命名的组,直到选择文件结束或其他组的给出。
option
这等价于在命令行上的 --option
option=value
这等价于在命令行上的 --option=value
set-variable = variable=value
这等价于在命令行上的 --set-variable variable=value。该语法必须被用来设置一个 mysqld变量。

client组允许你指定适用于所有MySQL客户的选项(不是mysqld)。这是理想的组来指定你用来与服务器连接的口令。(但是保证只是选项文件本身是可读的和可写的。)

注意,对域选项和值,所有头部和尾部空白自动被删除。你可以在的值串中使用转义顺序“/b”“/t”“/n”“/r”“//”“/s”(“/s”==空白)。

这是一个典型的全局选项文件:


[client] 
port=3306 
socket=/tmp/mysql.sock   

[mysqld] 
port=3306 
socket=/tmp/mysql.sock 
set-variable = key_buffer=16M 
set-variable = max_allowed_packet=1M 
  

[mysqldump] 
quick 
  

这是典型的用户选项文件:


[client]
# The following password will be sent to all standard MySQL clients
password=my_password

[mysql]
no-auto-rehash
  

如果你有一个源代码分发,你将在“support-files”目录下找到一个名为“my-example.cnf”样品配置文件。如果你有二进制分发,在“DIR/share/mysql”目录下查找,在此DIRMySQL安装目录的路径(一般是“/usr/local/mysql”)。你可以拷贝“my-example.cnf”到你的主目录(重新命名拷贝为“.my.cnf”)来试验。

为了告诉一个MySQL程序不读任何选项文件,在命令行上指定--no-defaults作为第一个选项。这必须是第一个选项,否则它将无效!如果你想检查使用哪个选项,你可以给出--print-defaults选项作为第一个选项。

如果你想要强制使用一个特定配置文件,你可以使用选项--defaults-file=full-path-to-default-file。如果你这样做,只有指定的文件将被读取。

开发者注意:选项文件的处理简单地通过处理所有在任何命令行前参数的匹配选项来实现(即,在适当的组里的选项),这对使用多次指定的一个选项的最后实例的程序工作的很好。如果你有这样一个处理多重指定选项但不读选项文件的旧程序, 你只需要增加2行给与它那种能力。检查任何标准的MySQL客户的源代码看怎样做。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MySQL中文参考手册之my.conf 的相关文章

  • 复杂的sql树行

    表结构 id message reply id 1 help me 0 434 love to 1 852 didn t work 434 0110 try this 852 2200 this wont 0 5465 done 0110
  • 使用php插入sql数据库时出错

    我有一个带有 MySQL 插入查询的程序 sql INSERT INTO people person id name username password email salt VALUES person id name username p
  • 如何使用php在mysql数据库中添加照片? [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我对 PH
  • Mac OSX 10.6 上的 Python mysqldb 不工作

    我正在使用 Python 2 7 并尝试让 Django 项目在 MySQL 后端运行 我已经下载了 mysqldb 并按照此处的指南进行操作 http cd34 com blog programming python mysql pyth
  • dayname(curdate()) 不适用于 codeigniter php

    此 sql 在 phpmyadmin 中有效 但在 codeigniter php 中无效 function getProgramsHomepage data array this gt db gt select p name p star
  • 如何使用 SQL 对项目进行排序,然后按另一个条件再次排序

    我正在使用 MySQL 我想对记录进行排序 或者我想对记录进行分组 然后按另一个条件再次对其进行排序 例如我有 6 个项目 Names Group Jack G1 Dian G2 Emily G2 Dean G1 Teddy G2 Gabe
  • 用于全文搜索和 2 亿多条记录的数据库

    我即将创建一个包含至少 2 亿个条目的庞大数据库 数据库需要可使用全文进行搜索 并且速度应该很快 我的数据库从许多不同的数据源获取数据 我需要定期导入新的或更新的数据 将我的所有数据存储在像 mysql 这样的关系数据库中 然后创建一个 n
  • MySQL通过UPDATE/DELETE合并重复数据记录

    我有一个看起来像这样的表 mysql gt SELECT FROM Colors ID USERNAME RED GREEN YELLOW BLUE ORANGE PURPLE 1 joe 1 null 1 null null null 2
  • MySQL InnoDB引擎是否对只读事务运行任何性能优化

    根据参考文档 只读事务标志可能会提示存储引擎运行一些优化 设置会话事务只读 如果事务访问模式设置为 READ ONLY 则对表进行更改 被禁止 这可能使存储引擎能够提高性能 不允许写入时可能进行的改进 InnoDB引擎是否对只读事务运行这样
  • Magento - 无法重新索引产品价格 - 外键约束失败

    我最近刚刚将我的 magento 商店从 1 4 2 升级到 1 7 0 2 升级进行得很顺利 但是当我尝试在升级后重新索引数据时 产品价格失败了 我尝试过使用php shell indexer php reindexall来自 SSH 它
  • 在内连接中重用 mysql 子查询

    我正在尝试优化查询 试图避免重复用 指示的查询 复杂查询 使用两次 结果相同 原始查询 SELECT news FROM news INNER JOIN SELECT myposter FROM SELECT COMPLEX QUERY U
  • 如何使用Python3.4在tornado中进行异步mysql操作?

    我现在使用Python3 4 我想在Tornado中使用异步mysql客户端 我已经发现torndb https github com bdarnell torndb但在阅读其源代码后 我认为它无法进行异步mysql操作 因为它只是封装了M
  • MySQL 薛定谔表:存在,但不存在

    我遇到了最奇怪的错误 有时 在创建或更改表时 我会收到 表已存在 错误 但是 DROP TABLE 返回 1051 未知表 所以我得到了一个无法创建 无法删除的表 当我尝试删除数据库时 mysql 崩溃了 有时它有助于创建另一个具有不同名称
  • MySQL 组合两个查询

    我有两个 MySQL 查询 QUERY SELECT sodnik 1 FROM prihodnji krog WHERE file id 8778 AND sodnik 1 UNION SELECT sodnik 2 FROM priho
  • 迁移问题:MS SQL > MySQL:插入缓冲区内存

    我在使用 MySQL Workbench 上的内置迁移工具时遇到问题 我正在将一个非常大的数据库从 MS SQL 2014 迁移到 MySQL MS SQL 服务器本地部署在我的 Windows 8 1 桌面上 MySQL 服务器在我的网络
  • Monkeyrunner/jython 中未找到 JDBC 驱动程序错误

    我需要在中插入一些东西DB 我在用着JDBC as a connector jython the script mysql数据库和脚本正在运行CentOS 我的代码看起来像这样 from com android monkeyrunner i
  • MySQL 两种日期格式之间的转换

    用户将以这种格式输入日期 2017 年 2 月 17 日 存储在 mysql 数据库中的日期格式如下 2015 02 17 00 00 00 我想做的是 SELECT FROM insurance where DATE FORMAT in
  • 批处理文件并与数据库比较

    目前我正在开发一个 Spring Boot 应用程序 该应用程序定期尝试处理包含用户数据的文件 其中每行都包含userId and departamentId隔开 例如123534 13 该文件将包含数百万条记录 我的要求是以这样的方式将此
  • 错误 1305 (42000):保存点...不存在

    我的 MYSQL 数据库中有这个 SQL 存储过程为空 所以我猜没有隐式提交 DROP PROCEDURE IF EXISTS doOrder DELIMITER CREATE PROCEDURE doOrder IN orderUUID
  • mysql 查询选择当月的所有行?

    我有一个名为 startdate 的日期时间类型的列 我必须获取当前月份的开始日期和结束日期之间的所有行 即从 1 11 2014 到 30 11 2014 select from your table where year curdate

随机推荐