mysqld
MySQL 服务器。
MySQL 服务器启动时,它将监听来自客户端程序的网络连接,并代表这些客户端管理对数据库的访问。
查看帮助
shell> mysqld --verbose --help
mysqld_safe
MySQL 服务器启动脚本。
mysqld_safe 是推荐的启动程序,在 mysqld 基础上添加了一些安全功能,例如,在发生错误时重新启动服务器,以及将运行时信息记录到错误日志中。
mysqld_safe 如果遇到未知的选项,会将其传递给 myqld 。
mysqld_safe 会读取配置文件中 [mysqld]、[server] 和 [mysqld_safe] 区域。
如果使用 systemd 管理方式,mysqld_safe 不可用。
基础选项
- –help
- 帮助
- –basedir=dir_name
- 安装目录
- –datadir=dir_name
- 数据目录
- –pid-file=file_name
- pid文件
- –timezone=timezone
- 时区
- –mysqld=prog_name
- 要启动的服务器程序的名称,只能用于命令行
- –plugin-dir=dir_name
- 插件目录
- –ledir=dir_name
- 服务器路径,只能用于命令行
- 如果使用 systemd 管理方式,这个值可以在 MYSQLD_OPTS 中指定。
- –skip-kill-mysqld
- 启动时不杀掉流离失所的 (暂时找不到一个合适的词描述) mysqld 进程
配置文件选项
- –defaults-file=file_name
- 默认配置文件,必须放到命令行中第一位
mysql> mysqld_safe --defaults-file=file_name --port=port_num
- 默认配置文件,必须放到命令行中第一位
- –defaults-extra-file=file_name
- 额外的配置文件,必须放到命令行中第一位
- –no-defaults
- 不读取默认配置文件
日志选项
- –log-error=file_name
- 错误日志
- –mysqld-safe-log-timestamps
- 日志记录的时间戳格式
- 选项值
- UTC
- utc (默认)
- SYSTEM
- system
- HYPHEN
- hyphen YY-MM-DD h:mm:ss格式
- LEGACY
- legacy YYMMDD hh:mm:ss格式
- UTC
–syslog已弃用,使用 log_syslog 系统变量代替。
错误信息写入syslog
–skip-syslog已弃用,使用 log_syslog 系统变量代替。
不要将错误消息写入syslog,而是写入错误日志文件
–syslog-tag=tag已弃用,使用 log_syslog_tag 系统变量代替。
系统日志的标签后缀
连接选项
- –user={user_name|user_id}
- 用户
- –port=port_num
- 端口
- –socket=path
- socket 文件
资源限制选项
- –core-file-size=size
- 可以创建的核心文件大小,选项值将传递给 ulimit -c
- –nice=priority
- 服务器调度优先级
- –open-files-limit=count
- mysqld 打开文件数量,选项值传递给 ulimit -n
其它选项
- –malloc-lib=[lib_name]
- 用于 mysqld 的备用 malloc 库
-
用于内存分配的库名称,而不是系统 malloc() 库
-
选项值必须是以下目录 /usr/lib, /usr/lib64, /usr/lib/i386-linux-gnu, or /usr/lib/x86_64-linux-gnu
-
可以使用自带的库,也可以指定其它库
[mysqld_safe] malloc-lib=tcmalloc 或 [mysqld_safe] malloc-lib=/opt/lib/libtcmalloc_minimal.so
- 如果使用 systemd 管理方式,这个值可以通过设置 LD_PRELOAD 指定。
-
–mysqld-version=suffix
- 服务端程序名称的后缀,只能用于命令行
如 –mysqld-version=debug ,启动时会启动 mysqld-debug 。
-
如果使用 systemd 管理方式,这个值可以在 MYSQLD_OPTS 中指定。
- 服务端程序名称的后缀,只能用于命令行
mysqld.server
这是一个 mysqld_safe 的启动脚本,使用 sys-v 方式管理。
mysql.server 读取 [mysql.server]、[mysqld] 区域的选项。
调用方法
mysql.server {start|stop}
sys-v 配置方法
- 复制文件
cp mysql.server /etc/init.d/mysql chmod +x /etc/init.d/mysql
- 设置开启启动
chkconfig --add mysql 或 chkconfig --level 345 mysql on
配置文件选项
mysql.server 的选项必须在配置文件中指定,不能在命令行中指定。
[mysqld]
datadir=/usr/local/mysql/var
socket=/var/tmp/mysql.sock
port=3306
user=mysql
[mysql.server]
basedir=/usr/local/mysql
- basedir=dir_name
- datadir=dir_name
- pid-file=file_name
- service-startup-timeout=seconds
- 服务启动超时时间,默认值为900 (秒)
mysqld_multi
mysqld_multi 用于管理多实例。
mysqld_muti 会读取 [mysqld_multi]、[mysqldN] 组 (N 是正整数,叫做组号,或 GNR ) 。
调用语法
mysqld_multi [options] {start|stop|reload|report} [GNR[,GNR] ...]
- 可以对指定的 GNR 操作,如果不指定 GNR ,对配置文件中的所有服务器执行操作
-
GNR 列表可以是组号,也可以是范围,如 10-13,也可以包含多个值,如 8,10-13,但是 GNR 列表中不能出现空格
mysqld_multi stop 8,10-13
示例
# This is an example of a my.cnf file for mysqld_multi.
# Usually this file is located in home dir ~/.my.cnf or /etc/my.cnf
[mysqld_multi]
mysqld = /usr/local/mysql/bin/mysqld_safe
mysqladmin = /usr/local/mysql/bin/mysqladmin
user = multi_admin
password = my_password
[mysqld2]
socket = /tmp/mysql.sock2
port = 3307
pid-file = /usr/local/mysql/data2/hostname.pid2
datadir = /usr/local/mysql/data2
language = /usr/local/mysql/share/mysql/english
user = unix_user1
[mysqld3]
mysqld = /path/to/mysqld_safe
ledir = /path/to/mysqld-binary/
mysqladmin = /path/to/mysqladmin
socket = /tmp/mysql.sock3
port = 3308
pid-file = /usr/local/mysql/data3/hostname.pid3
datadir = /usr/local/mysql/data3
language = /usr/local/mysql/share/mysql/swedish
user = unix_user2
[mysqld4]
socket = /tmp/mysql.sock4
port = 3309
pid-file = /usr/local/mysql/data4/hostname.pid4
datadir = /usr/local/mysql/data4
language = /usr/local/mysql/share/mysql/estonia
user = unix_user3
[mysqld6]
socket = /tmp/mysql.sock6
port = 3311
pid-file = /usr/local/mysql/data6/hostname.pid6
datadir = /usr/local/mysql/data6
language = /usr/local/mysql/share/mysql/japanese
user = unix_user4