linux上mysql启动失败问题解决

服务器升级迁移导致的mysql重启遇到的问题:

问题一:
linux启动mysql报错误如下:

"/lib64/libc.so.6: version `GLIBC_2.18' not found (required by /lib64/libstdc++.so.6)"


解决 "/lib64/libc.so.6: version `GLIBC_2.18' not found (required by /lib64/libstdc++.so.6)"

curl -O http://ftp.gnu.org/gnu/glibc/glibc-2.18.tar.gz 
tar zxf glibc-2.18.tar.gz 
cd glibc-2.18/ 
mkdir build 
cd build/ .
./configure --prefix=/usr 
make -j2 
make install

问题二:
1.使用命令查看mysql状态 

service mysqld status

报错如下:

Unit mysqld.service could not be found.


解决MySQL问题-Unit mysqld.service could not be found.

[root@ldy ~]$ find / -name mysql.server
/usr/local/mysql-5.7/support-files/mysql.server

复制mysql.server到etc下的init.d文件下下:

[root@ldy ~]$ cp /usr/local/mysql-5.7/support-files/mysql.server /etc/init.d/mysqld


问题三:
mysql服务启动成功,,但是连接不上,解决如下:

1、登录

root@localhost:~# mysql -u root -p

Enter password:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

2、提示连接不到mysql.sock

解决方案一,定位问题:
1)、查找mysql.sock在哪里

root@localhost:~# find / -name mysql.sock
/usl/local/mysql/mysql.sock


2)、使用-S参数关联mysql.sock 再次尝试登录

root@localhost:~# mysql -u root -p -S /usl/local/mysql/mysql.sock

Enter password:

见到如下信息表示成功

Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>


说明是mysql.sock问题,使用方案二永久解决:


解决方案二,永久解决:

编辑my.cnf文件:

root@localhost:~# vi /etc/my.cnf

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql


# 加上下面的这段代码即可
[mysql]
socket=/tmp/mysql.sock
# 加上上面的这段代码即可

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid


再次成功登录:

root@localhost:~# mysql -u root -p
Enter password:

Welcome to the MySQL monitor. Commands end with ; or \g.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>


问题四:
内网可以访问数据库了,但是外网访问不了,这种情况一般是防火墙问题,

1、使用ping ip可是通
2、使用 telnet ip port
结果:telnet: connect to address ip: Connection timed out


解决方法:开通防火墙的端口:

1、查看防火墙是否已开放3306端口

firewall-cmd --query-port=3306/tcp


 
2、设置3306端口为永久开放

firewall-cmd --add-port=3306/tcp --permanent


 
3、查看firewalld状态,发现当前是dead状态,即防火墙未开启

systemctl status firewalld
 


(设置了新的端口记得先关闭,再重启)
4、关闭防火墙

systemctl stop firewalld

5、开启防火墙(设置了新的端口记得先关闭,再重启)

systemctl start firewalld

 
6、查看防火墙

systemctl status firewalld


7、查看已经开启的防火墙端口

firewall-cmd --list-all

### 回答1: 可能的原因有很多,以下是一些可能的解决方法: 1. 检查mysql配置文件是否正确,特别是datadir和socket路径是否正确。 2. 检查mysql日志文件,查看是否有错误信息,例如权限问题、端口冲突等。 3. 检查系统资源是否足够,例如内存、磁盘空间等。 4. 尝试使用命令行启动mysql,查看是否有更详细的错误信息。 5. 如果是新安装的mysql,可以尝试重新安装或卸载重装。 6. 如果是升级mysql导致启动失败,可以尝试回滚到之前的版本或者等待官方修复。 希望以上方法能够帮助您解决问题。 ### 回答2: 在Linux下,MySQL启动失败可能是由于各种原因引起的。以下是一些可能的解决方法: 1. 检查MySQL的日志文件:首先,你可以查看MySQL的错误日志文件,通常位于/var/log/mysql/error.log。打开该文件,查找关于启动失败的错误信息,如数据库文件损坏、端口被占用等。根据日志中的错误信息,采取相应的措施来解决。 2. 检查端口是否被占用:使用命令netstat -tunlp | grep 3306(假设MySQL默认端口为3306)来检查MySQL监听的端口是否被其他进程占用。如果发现端口被占用,可以尝试使用不同的端口来启动MySQL,或者终止占用该端口的进程。 3. 修改MySQL的配置文件:有些情况下,MySQL启动失败可能是由于配置文件中的错误引起的。可尝试检查/etc/mysql/my.cnf(或/etc/my.cnf)配置文件的正确性,并进行相应的修改。特别是注意数据库文件存放路径、日志文件路径、用户权限等配置项。 4. 检查文件权限:MySQL的启动需要有正确的文件权限设置。检查MySQL相关文件的权限是否正确,包括数据库文件、日志文件和配置文件等。通常,MySQL的文件属主应该是mysql用户,具有相应的读写权限。 5. 重置MySQL用户密码:有时候,MySQL启动失败可能是因为用户密码丢失或不正确导致的。可以尝试使用mysqladmin命令重置MySQL用户的密码,具体操作可以查阅相关文档或在线资源。 6. 重新安装MySQL:如果以上方法都无法解决问题,可以考虑重新安装MySQL。使用适合你Linux发行版的软件包管理工具,从官方源或其他可靠源安装最新版本的MySQL。 总之,MySQLLinux启动失败可能是由于多种原因引起的,需要仔细检查错误日志、配置文件、文件权限以及其他可能的问题,并根据错误信息采取相应的解决方法。 ### 回答3: 在LinuxMySQL启动失败的原因可能有很多,下面是一些常见的可能原因和解决方法: 1. 查看错误日志:MySQL的错误日志通常存储在/var/log/mysql/error.log或/var/log/mysqld.log文件中。通过查看错误日志可以找到导致启动失败的具体错误信息,根据错误信息来采取相应措施。 2. 确保与之前的MySQL实例没有冲突:有时候,在之前运行的MySQL实例没有正确关闭的情况下,再次启动MySQL会导致失败。可以通过执行"sudo service mysql stop"命令来确保之前的MySQL实例已经关闭。 3. 端口被占用:MySQL默认使用3306端口。如果该端口被其他应用程序占用,MySQL无法启动。可以通过执行"sudo netstat -tlnp | grep 3306"命令来检查是否有进程正在使用该端口。如果有,可以尝试更改MySQL的端口。 4. 磁盘空间不足:如果磁盘空间不足,MySQL无法启动。可以通过执行"df -h"命令来检查磁盘空间使用情况。如果发现空间不足,可以清理不必要的文件或者扩展磁盘空间。 5. 权限问题MySQL的数据文件通常存储在/var/lib/mysql目录下。确保该目录和文件拥有正确的权限。可以通过执行"sudo chown -R mysql:mysql /var/lib/mysql"命令来更改所属用户和组。 6. MySQL配置文件错误:检查MySQL配置文件(通常位于/etc/mysql/my.cnf)中的配置项是否正确,特别是数据库目录和日志文件路径等。确保这些路径存在并且有正确的权限。 7. 数据库损坏:如果MySQL数据库文件损坏,也可能导致启动失败。可以尝试修复数据库文件或者使用备份文件恢复数据。 如果以上方法仍然无法解决问题,可以尝试在MySQL命令行下执行"mysql_upgrade"命令来修复数据库。如果问题依然存在,可能需要重新安装MySQL解决问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值