王新阳

wangxinyang

linux中启动mysql

1. 使用systemctl启动MySQL(推荐)
如果系统使用Systemd,并且MySQL已安装为系统服务,可以使用以下命令:

# 启动MySQL
sudo systemctl start mysql

# 或者,有些系统上服务名可能是mysqld
sudo systemctl start mysqld

# 设置开机自启
sudo systemctl enable mysql

# 查看状态
sudo systemctl status mysql

# 停止MySQL
sudo systemctl stop mysql

# 重启MySQL
sudo systemctl restart mysql

2. 使用service命令(SysVinit系统)对于使用SysVinit的系统,可以使用service命令:

# 启动MySQL
sudo service mysql start

# 或者,有些系统上服务名可能是mysqld
sudo service mysqld start

# 查看状态
sudo service mysql status

# 停止MySQL
sudo service mysql stop

# 重启MySQL
sudo service mysql restart

3. 使用mysqld_safe启动
mysqld_safe是一个脚本,用于启动MySQL服务器,并在发生错误时自动重启。通常,它位于MySQL安装目录的bin目录下。

# 进入MySQL安装目录,假设在/usr/local/mysql
cd /usr/local/mysql

# 使用mysqld_safe启动,并指定配置文件(如果需要)
sudo bin/mysqld_safe --defaults-file=/etc/my.cnf &

# 或者,如果已经将MySQL的bin目录添加到PATH,可以直接运行
sudo mysqld_safe &

注意:使用mysqld_safe启动时,可能需要指定--user选项来指定运行MySQL的用户,通常为mysql。

4. 手动启动MySQL服务器
你也可以直接调用mysqld来启动,但这通常不推荐,因为它不会提供自动重启等保护。

# 指定配置文件启动
sudo /usr/sbin/mysqld --defaults-file=/etc/mysql/my.cnf &

# 或者,如果知道MySQL的数据目录和socket文件等位置,可以指定选项
sudo /usr/sbin/mysqld --datadir=/var/lib/mysql --socket=/var/lib/mysql/mysql.sock --user=mysql &

5. 使用MySQL安装包中的启动脚本
如果你使用二进制包或源码编译安装,可能提供了启动脚本。例如,在源码编译安装后,可以使用support-files/mysql.server脚本。

# 假设在MySQL安装目录下
sudo support-files/mysql.server start

6. 检查MySQL是否启动
无论使用哪种方式启动,都可以通过以下方法检查MySQL是否正在运行:

# 检查进程
ps aux | grep mysqld

# 检查端口(默认3306)
netstat -tlnp | grep 3306
ss -tlnp | grep 3306

# 尝试连接
mysql -u root -p -e "SHOW DATABASES;"

1. systemctl 启动(Systemd 系统,推荐)

# 1.1 启动 MySQL
sudo systemctl start mysql
# 或(某些发行版使用 mysqld)
sudo systemctl start mysqld

# 1.2 停止 MySQL
sudo systemctl stop mysql
sudo systemctl stop mysqld

# 1.3 重启 MySQL
sudo systemctl restart mysql
sudo systemctl restart mysqld

# 1.4 查看状态
sudo systemctl status mysql
sudo systemctl status mysqld

# 1.5 设置开机自启
sudo systemctl enable mysql
sudo systemctl enable mysqld

# 1.6 禁用开机自启
sudo systemctl disable mysql
sudo systemctl disable mysqld

# 1.7 重新加载配置文件
sudo systemctl reload mysql
sudo systemctl reload mysqld

# 1.8 查看日志
sudo journalctl -u mysql
sudo journalctl -u mysqld
sudo journalctl -u mysql -f  # 实时监控日志

2. service 启动(SysVinit 系统)

# 2.1 启动 MySQL
sudo service mysql start
sudo service mysqld start

# 2.2 停止 MySQL
sudo service mysql stop
sudo service mysqld stop

# 2.3 重启 MySQL
sudo service mysql restart
sudo service mysqld restart

# 2.4 查看状态
sudo service mysql status
sudo service mysqld status

# 2.5 设置开机自启
sudo chkconfig mysql on       # RHEL/CentOS 6
sudo update-rc.d mysql defaults # Debian/Ubuntu

# 2.6 禁用开机自启
sudo chkconfig mysql off
sudo update-rc.d mysql remove

3. 直接启动 MySQL 守护进程

# 3.1 使用 mysqld_safe(推荐)
sudo mysqld_safe --defaults-file=/etc/my.cnf &

# 3.2 直接启动 mysqld
sudo /usr/sbin/mysqld --defaults-file=/etc/my.cnf --user=mysql &

# 3.3 使用 MySQL 启动脚本
sudo /etc/init.d/mysql start
sudo /etc/init.d/mysqld start

# 3.4 使用 mysql.server(MacOS/部分Linux)
sudo /usr/local/mysql/support-files/mysql.server start

检查系统中安装的 MySQL

# 查看 MySQL 版本
mysql --version
mysql -V

# 查看 MySQL 安装位置
which mysql
whereis mysql

# 查看 MySQL 服务状态
systemctl list-units | grep -i mysql
systemctl list-units | grep -i mariadb

# 查看 MySQL 进程
ps aux | grep mysql
ps aux | grep mysqld

# 查看 MySQL 端口
sudo netstat -tlnp | grep mysql
sudo ss -tlnp | grep mysql
sudo lsof -i :3306

配置文件位置

# 常见配置文件位置
/etc/my.cnf
/etc/mysql/my.cnf
/usr/local/mysql/my.cnf
~/.my.cnf

# MariaDB 配置文件
/etc/my.cnf
/etc/my.cnf.d/
/etc/mysql/my.cnf
/etc/mysql/mariadb.conf.d/
2026-01-07
2026-01-09 星期五 农历冬月二十一