mysql的几种启动方式

mysql的四种启动方式:
1、mysqld
启动mysql服务器:./mysqld --defaults-file=/etc/my.cnf --user=root
客户端连接:
mysql --defaults-file=/etc/my.cnf
or
mysql -S /tmp/mysql.sock
 
2、mysqld_safe
启动mysql服务器:./mysqld_safe --defaults-file=/etc/my.cnf --user=root &
客户端连接:
mysql --defaults-file=/etc/my.cnf
or
mysql -S /tm/mysql.sock
 
3、mysql.server
cp -v /usr/local/mysql/support-files/mysql.server /etc/init.d/
chkconfig --add mysql.server
启动mysql服务器:service mysql.server {start|stop|restart|reload|force-reload|status}
客户端连接:同1、2
 
4、mysqld_multi
mkdir $MYSQL_BASE/data2
cat <<-EOF>> /etc/my.cnf
[mysqld_multi]
mysqld = /usr/local/mysql/bin/mysqld_safe
mysqladmin = /user/local/mysql/bin/mysqladmin
user = mysqladmin
password = mysqladmin
 
[mysqld3306]
port            = 3306
socket          = /tmp/mysql3306.sock
pid-file = /tmp/mysql3306.pid
skip-external-locking
key_buffer_size = 16M
max_allowed_packet = 1M
table_open_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
 
[mysqld3307]
port            = 3307
socket          = /tmp/mysql3307.sock
pid-file = /tmp/mysql3307.pid
skip-external-locking
key_buffer_size = 16M
max_allowed_packet = 1M
table_open_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data2
EOF
 
#mysql -S /tmp/mysql3306.sock
mysql>GRANT SHUTDOWN ON *.* TO 'mysqladmin'@'localhost' identified by 'mysqladmin' with grant option;
 
#mysql -S /tmp/mysql3307.sock
mysql>GRANT SHUTDOWN ON *.* TO 'mysqladmin'@'localhost' identified by 'mysqladmin' with grant option;
 
启动mysql服务器:./mysqld_multi --defaults-file=/etc/my.cnf start 3306-3307
关闭mysql服务器:mysqladmin shutdown
 
可参考<>
http://dev.mysql.com/doc/refman/5.1/zh/database-administration.html#server-side-scripts

转载于:https://www.cnblogs.com/yingdiblog/p/7011054.html

<think>我们正在讨论MySQL的多种启动方法。根据引用内容,我们知道在Linux系统中,配置MySQL开机自启动有多种方法,特别是使用systemd(适用于大多数现代Linux发行版)。此外,引用[2]和[3]提到了MySQL启动失败的处理方法,但用户当前的问题是关于多种启动方法,因此我们将重点放在启动方法上。 MySQL的启动方法可以根据不同的使用场景和操作系统环境进行分类。以下将详细介绍几种常见的启动方法: ### 1. 使用systemd系统服务(推荐用于现代Linux发行版) 大多数现代Linux发行版(如Ubuntu 16.04+、CentOS 7+)使用systemd作为初始化系统。MySQL安装后通常会注册为systemd服务,可以通过systemctl命令管理。 - **启动MySQL服务**: ```bash sudo systemctl start mysql ``` - **设置开机自启动**: ```bash sudo systemctl enable mysql ``` - **查看服务状态**: ```bash sudo systemctl status mysql ``` - **重启服务**: ```bash sudo systemctl restart mysql ``` 这种方法是最常用且官方推荐的方式,因为它可以方便地管理服务状态和日志[^1]。 ### 2. 使用SysVinit脚本(旧版Linux发行版) 在较旧的Linux发行版(如CentOS 6)中,使用SysVinit系统,可以通过init脚本启动。 - **启动MySQL**: ```bash sudo service mysql start # 或者 sudo /etc/init.d/mysql start ``` - **设置开机自启动**: ```bash sudo chkconfig mysql on ``` ### 3. 使用mysqld_safe脚本 `mysqld_safe`是一个安全启动MySQL服务器的脚本,它会监控服务器状态并在崩溃时重启。通常用于手动启动或调试。 - **启动MySQL**: ```bash mysqld_safe --user=mysql & ``` 注意:需要确保以正确的用户(如mysql)运行,并具有必要的文件权限。 ### 4. 直接运行mysqld 可以直接调用`mysqld`可执行文件启动,但通常不推荐用于生产环境,因为缺乏守护进程监控。 - **启动MySQL**: ```bash mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib/mysql/plugin --user=mysql & ``` 这种方式需要指定关键路径参数,适合高级用户调试特定配置。 ### 5. 使用MySQL Docker容器 在容器化环境中,可以通过Docker命令启动MySQL容器。 - **启动MySQL容器**: ```bash docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag ``` 其中`tag`是MySQL版本标签(如8.0)。 ### 6. Windows系统中的启动方法 在Windows系统中,MySQL可以作为服务安装并启动。 - **安装MySQL服务**: ```cmd mysqld --install ``` - **启动服务**: ```cmd net start mysql ``` ### 启动方法对比表 | 启动方法 | 适用场景 | 优点 | 缺点 | |----------------|----------------------------|-------------------------|-------------------------| | systemd | 现代Linux发行版 | 集成系统管理,支持开机自启 | 仅适用于systemd系统 | | SysVinit | 旧版Linux发行版 | 兼容旧系统 | 逐渐被淘汰 | | mysqld_safe | 手动启动/调试 | 自动重启,日志记录 | 需要手动管理 | | 直接运行mysqld | 调试/特殊配置 | 完全控制参数 | 无监控,易崩溃 | | Docker容器 | 容器化环境 | 快速部署,隔离性好 | 需要Docker环境 | | Windows服务 | Windows服务器 | 作为后台服务运行 | 仅限Windows | ### 常见问题解决 如果启动失败,可参考以下步骤排查: 1. **检查错误日志**:MySQL错误日志通常位于`/var/log/mysql/error.log`或`/var/log/mysqld.log`。 2. **检查端口占用**:使用`netstat -tulnp | grep 3306`查看3306端口是否被占用。 3. **检查配置文件**:确认`/etc/my.cnf`或`/etc/mysql/my.cnf`配置正确。 4. **检查数据目录权限**:确保MySQL用户(如mysql)对数据目录(如`/var/lib/mysql`)有读写权限[^2][^3]。 通过以上方法,你可以根据实际环境选择合适的MySQL启动方式。 §§相关问题§§ 1. 如何配置MySQL在系统启动时自动运行? 2. 使用`mysqld_safe`启动MySQL有什么优势? 3. 在Docker中运行MySQL需要注意哪些配置? [^1]: 通过以上步骤,你可以轻松地在Linux系统上配置MySQL服务为开机自启动。 [^2]: MySQL服务启动失败的处理方法。 [^3]: MySQL启动失败的解决方法。</think>### MySQL 多种启动方法详解 MySQL 提供了多种启动方式,适用于不同场景和操作系统环境。以下是主要启动方法的分类与操作指南: #### 一、Linux 系统启动方式 1. **Systemd 服务管理(推荐)** 适用于现代 Linux 发行版(Ubuntu 16.04+/CentOS 7+): ```bash # 启动服务 sudo systemctl start mysql # 设置开机自启 sudo systemctl enable mysql # 查看状态 sudo systemctl status mysql ``` 优势:集成系统日志、支持服务依赖管理[^1]。 2. **SysVinit 脚本(旧版系统)** 适用于 CentOS 6 等旧系统: ```bash # 启动服务 sudo service mysql start # 设置开机自启 sudo chkconfig mysql on ``` 3. **mysqld_safe 守护进程** 安全启动模式(自动重启崩溃的服务): ```bash mysqld_safe --user=mysql & ``` 特点:自动记录错误日志到 `hostname.err`,适合调试[^3]。 #### 二、Windows 系统启动方式 1. **Windows 服务管理** ```cmd :: 安装服务 mysqld --install :: 启动服务 net start mysql :: 设置自启 sc config mysql start=auto ``` 2. **命令行直接启动** ```cmd mysqld --console ``` 特点:实时输出日志到控制台,适合调试[^2]。 #### 三、通用启动方法 1. **指定配置文件启动** ```bash mysqld --defaults-file=/etc/mysql/my.cnf ``` 适用场景:多实例部署时使用不同配置。 2. **安全模式启动(跳过权限验证)** ```bash mysqld_safe --skip-grant-tables & ``` 用途:密码重置等紧急修复[^3]。 3. **Docker 容器启动** ```bash docker run --name mysql01 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:8.0 ``` #### 四、启动方法对比表 | 方法 | 适用场景 | 优点 | 缺点 | |--------------------|-------------------------|-------------------------|-------------------| | systemctl | 生产环境 | 完整服务管理,日志完善 | 仅限现代Linux | | mysqld_safe | 调试/崩溃恢复 | 自动重启,错误日志清晰 | 需手动管理进程 | | Windows服务 | Windows服务器 | 集成系统服务管理 | 配置较复杂 | | Docker启动 | 快速测试/多版本隔离 | 环境隔离,秒级启动 | 数据持久化需额外配置 | #### 五、启动问题排查 若启动失败,按顺序检查: 1. **查看错误日志**: ```bash tail -f /var/log/mysql/error.log ``` 2. **检查端口占用**: ```bash netstat -tulnp | grep 3306 ``` 3. **验证配置文件语法**: ```bash mysqld --verbose --help | grep -A1 "Default options" ``` 4. **检查数据目录权限**: ```bash chown -R mysql:mysql /var/lib/mysql ``` 常见错误:权限不足、配置文件冲突、端口占用[^2][^3]。 > **提示**:生产环境推荐始终通过 `systemd` 或 Windows 服务管理,确保服务可监控、可自愈。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值