Linux下MySQL 5.0启动错误排查与解决

需积分: 47 3 下载量 8 浏览量 更新于2024-09-12 收藏 8KB TXT 举报
"排查Linux环境下MySQL启动错误的指南" 在Linux系统中,MySQL数据库服务的启动问题可能是由多种因素引起的。本资源将介绍一些常见的错误及其解决方法,主要针对CentOS 5.2版本,MySQL 5.0.45的环境。 首先,确认MySQL的相关软件包是否已经正确安装。在提供的内容中,可以看到以下MySQL相关的软件包: - mysql-5.0.45-7.el5 - mysql-server-5.0.45-7.el5 - php-mysql-5.1.6-20.el5_2.1 - mysql-devel-5.0.45-7.el5 - mysql-test-5.0.45-7.el5 - mysql-bench-5.0.45-7.el5 这表明MySQL的基础组件和服务端都已经安装,但需要检查它们的状态以确保无误。 其次,检查MySQL服务是否正在运行,可以使用`service mysql status`或`systemctl status mysql.service`命令(取决于系统的初始化系统)。如果MySQL没有启动,可能需要尝试手动启动它,使用`service mysql start`或`systemctl start mysql.service`。 如果启动时遇到错误,查看错误日志是非常重要的步骤。日志通常位于 `/var/log/mysqld.log` 或 `/var/log/mysql/error.log`。在这些文件中查找错误信息,以便定位问题。 在提供的内容中,提到了SELinux的设置。SELinux是一种强制访问控制机制,可能会阻止MySQL正常运行。通过`sestatus -b | grep mysql`可以查看MySQL相关的SELinux策略。如果发现策略设置不正确,如 `allow_user_mysql_connect off`,可能需要调整策略或临时关闭SELinux以测试是否由此引起的问题。可以使用`setenforce 0`暂时禁用SELinux,但请注意,这不是长期解决方案,生产环境中应正确配置安全策略。 此外,检查`/etc/my.cnf`配置文件也是关键。此文件包含MySQL服务器的配置选项。在提供的内容中,看到了一些配置项,例如: - back_log:定义等待连接队列的最大长度。 - bind-address:指定MySQL监听的IP地址。 - innodb_buffer_pool_size:InnoDB存储引擎的缓冲池大小。 如果配置不当,可能导致MySQL无法启动或性能问题。例如,如果`bind-address`设置错误,MySQL可能只监听了错误的网络接口。应根据实际需求调整这些参数,并确保所有配置都是有效的。 最后,检查系统资源,如内存、磁盘空间等。不足的资源可能导致MySQL无法启动。可以通过`free -m`检查内存,`df -h`查看磁盘空间。 排查MySQL启动错误需要综合分析日志、配置文件、系统状态以及SELinux策略。每个环节都可能成为问题的根源,因此需要耐心细致地检查和调试。
2012-07-14 上传
LINUX重启MYSQL的命令 . 分类: Linux 2010-06-25 10:21 6367人阅读 评论(0) 收藏 举报 如何启动/停止/重启MySQL 一、启动方式 1、使用 service 启动:service mysqld start 2、使用 mysqld 脚本启动:/etc/inint.d/mysqld start 3、使用 safe_mysqld 启动:safe_mysqld& 二、停止 1、使用 service 启动:service mysqld stop 2、使用 mysqld 脚本启动:/etc/inint.d/mysqld stop 3、 mysqladmin shutdown 三、重启 1、使用 service 启动:service mysqld restart 2、使用 mysqld 脚本启动:/etc/inint.d/mysqld restart 提问 编辑摘要 如何启动/停止/重启MySQL 一、启动方式 1、使用 service 启动:service mysqld start 2、使用 mysqld 脚本启动:/etc/inint.d/mysqld start 3、使用 safe_mysqld 启动:safe_mysqld& 二、停止 1、使用 service 启动:service mysqld stop 2、使用 mysqld 脚本启动:/etc/inint.d/mysqld stop 3、 mysqladmin shutdown 三、重启 1、使用 service 启动:service mysqld restart 2、使用 mysqld 脚本启动:/etc/inint.d/mysqld restart 刚开始学 mysql时都是用redhat自带的。启动是什么 /rc.d/init.d/ start 这很简单,但是后来越学越多,系统自带的 mysql,有的是版本太低,有的是与 自己想要装的web服务需要的低版本的mysql 后来自己学着以tar的方式安装 mysql,我的mysql装在/usr/local/mysql目录下启 动碰到过很多问题。最常见的是: ERROR 2002: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (111) 解决办法: [root@test mysql]# /usr/local/mysql/bin/mysqladmin -u root / > -S /var/lib/mysql/mysql.sock password 'your.passwd' 或者做个连接 ln -s /var/lib/mysql/mysql.sock /tmp 其实提示找不到 /tmp/mysql.sock有时也并不是/tmp目录下没这个文件,是启动 命令不对,我碰到过 常见的几种启动方式,自己也不是记得很清楚,如果你确定tmp下有mysql.sock这 个文件不妨试试另外的几个命令 /usr/local/mysql/bin/mysql -u root -p /usr/local/mysql/bin/mysqld --user=mysql& /usr/local/mysql/bin/mysqld --user=root& /usr/local/mysql/bin/mysqld_safe --user=root& /usr/local/mysql/bin/mysqld_safe --user=mysql& /usr/local/mysql/bin/safe_mysqld--uer=root&(注意 safe_mysqld与mysqld_safe是不同的,&表示mysql在后台运行)我的就会报错了 STOPPING server from pid file /usr/local/mysql/data/localhost.localdomain.pid 060304 11:46:21 mysqld ended 这是权限问题,我的mysql目录属于root用户,也属于root群组,改用 mysqld_safe启动就没问题了, 大家只要注意这几个 mysql,safe_mysqld,mysqld_safe,mysqld,mysqladmin.多试 几次 其实有时mysql已经正常启动了,查看mysql是否启动命令 ps -aux | grep mysqld 会看到如下类似内容 mysql 6394 0.0 1.5 10528 992 pts/3 S 16:16 0:00 /usr/local/mysql/ mysql 6395 0.0 1.5 10528 992 pts/3 S 16:16 0:00 /usr/local/mysql/ mysql 6396 0.0 1.5 10528 992 pts/3 S 16:16 0:00 /usr/local/mysql/ root 6422 0.0 1.1 2408 732 pts/3 S 16:20 0:00 grep mysql 查看mysql是否在监听端口命令 netstat -tl | grep mysql 会看到如下类似内容 tcp 0 0 *:mysql *:* LISTEN