centos mysql 1146,mysql1054
各位老铁们好,相信很多人对centos mysql 1146都不是特别的了解,因此呢,今天就来为大家分享下关于centos mysql 1146以及mysql1054的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!
求助centos7,mysql 启动服务出错的问题
一、my.cnf配置文件datadir项配置错误或被启动脚本篡改
这个问题不太说讲,主要是mysql自带的启动文件(/etc/init.d/mysqld)中会自动检测mysql的数据存储目录,若mysql新装,尚未初始化系统表,那么配置文件中的datadir项写不写无所谓,出现这种情况主要是在更改了mysql的数据存储目录,今天我出现的这个问题就在于此。
我的mysql安装后的配置文件中关于datadir项目的配置如下,而该配置文件存储于/etc/my.cnf,今儿不知动了什么东西,查来查去都没找着原因,后来打开该配置文件才发现,其中的datadir项目被篡改成/var/mysql/data了.....
[mysqld] datadir=/data/mysql socket=/tmp/mysql.sock user=mysql
二、进程里已经存在mysql进程
这种情况我很少遇到,若存在mysql进程但有不提供mysql服务(表现为其他客户端连接不上mysql服务器,例如php连接mysql时提示“连接失败”),这个时候就要看看有没有存在的mysql僵尸进程了,命令如下:
ps-ef|grep mysql
若存在,该命令执行后会列出存在的僵尸进程,kill-9 `pid`掉即可。
三、mysql的数据存储目录权限不足
这种情况发生于mysql第一次安装或升级,配置文件中的datatdir目录的权限要设定好,一般来说运行mysql的用户以及组就是mysql.mysql,那么解决权限不足问题的方法如下:
chown-R mysql.mysql/data/mysql##该命令仅为示例,其中/data/mysql就是mysql配置文件中datadir的目录##若为空,则默认为mysql安装目录下的data文件夹下
四、覆盖安装或升级mysql后,残余数据的影响
这种情况发生于mysql被覆盖安装或升级后,当然mysql无故宕机后也会有这种情况,可能会影响mysql启动的数据文件,一般存在于mysql的数据存储目录(这个目录依据my.cnf配置文件中的datadir而异),也就是存在于mysql数据存储目录下的mysql-bin.index文件,删除之即可。
五、selinux的问题,centos下最容易出现
selinux不甚了解,直接关掉。
##方法1:永久关闭seliux##修改 vi/etc/selinux/config#文件中设置SELINUX=disabled,然后重启服务器##方法2:暂时关闭seliux setenforce 0##如需每次开机都铃声关闭seliux,则可以在/etc/rc.d/rc.local文件中添加该命令
六、mysql运行状态下删除binary日志后重启失败
这是今天在群里的一个朋友出现的,特汇总于此;当mysql开启了二进制日志并且mysql在运行状态下用rm命令删除过mysql的binary日志文件的话,下次重启mysql你就悲剧了。
什么是binary日志?说白了就是mysql的数据目录下的mysql-bin.000001、mysql-bin.000002的文件。
解决方法就是修改配置文件临时关闭binary-log,然后删除mysql数据目录下的所有类似mysql-bin.000001、mysql-bin.000002的文件后再次重启,mysql即可启动成功。
#mysql配置关闭二进制日志找到如下语句注释掉即可#log-bin=mysql-bin#binlog_format=mixed
此步骤操作完毕之后,若还需要启用二进制日志,那么就要先停掉mysql服务,然后修改msyql的配置文件,再次重启即可。
另外再附上正确删除mysql二进制日志文件的方法(绝对不是rm-rf命令直接删这些文件):
#第一步通过shell或cmd登录进mysql这步没什么好说的 msyql-u root-p***#第二步在mysql下直接执行清理binary日志命令 mysql> reset master#注意:此处仅针对单台mysql而言,若有互备mysql则执行该命令有风险。
解决centos的mysql服务3306端口无法远程连接10038问题
在上一篇文章中,我们探讨了如何在CentOS环境中安装宝塔控制面板并创建数据库。然而,当尝试在Windows上使用Navicat for MySQL远程连接时,却遇到了10038错误。此刻,我找到了一个有效的解决方案,让我们一起梳理这个问题的解决过程。
我们的服务器环境是基于CentOS 7.5.1804,一个强大而稳定的操作系统:
LSB Version:</ core-4.1-amd64:core-4.1-noarch
Distributor ID:</ CentOS
Description:</ CentOS Linux release 7.5.1804(Core)
Codename:</ Core
以下是问题出现的步骤:
在宝塔控制面板中新建数据库,并为新用户分配适当权限。
尝试使用Navicat连接,但本地连接极其缓慢,最终出现10038错误。
问题的关键在于,虽然我们最初以为是MySQL用户组的远程连接设置问题,但实际上问题出在MySQL的默认端口3306被服务器防火墙阻止了。
首先,确保服务器上安装了端口扫描工具nmap,如果没有,可以使用以下命令安装:
sudo yum install nmap
接下来,通过nmap检查3306端口状态:
nmap
如果结果显示为"filtered",说明可能被防火墙拦截。
确认防火墙状态,CentOS 7.5.1804使用firewalld服务:
sudo systemctl status firewalld
如果"active(running)",说明防火墙已启用。为了开放3306端口,我们可以执行以下命令以永久生效:
sudo firewall-cmd--zone=public--add-port=3306/tcp--permanent
或者,直接编辑firewalld配置文件(public.xml):
sudo nano/etc/firewalld/zones/public.xml
添加完毕后,重载防火墙以应用更改:
sudo firewall-cmd--reload
再次使用nmap检查3306端口,确认其状态是否变为"open",表示连接已成功。
如果需要删除之前开放的特定端口,可以使用以下命令:
sudo firewall-cmd--zone=public--remove-port=80/tcp--permanent
最后,如果需要调整MySQL用户权限,包括root用户,可以按照以下步骤操作:
登录数据库:mysql-uroot-p
为指定IP(如202.11.10.253)和用户名(如root)分配权限:GRANT ALL PRIVILEGES ON*.* TO'root'@'%' IDENTIFIED BY'youpassword' WITH GRANT OPTION;
刷新权限:FLUSH PRIVILEGES;
现在,你应该已经成功解决了CentOS服务器上MySQL 3306端口的远程连接问题,可以愉快地在Windows上使用Navicat进行操作了。
centos6 mysql数据库启动问题
ERROR 2002(HY000): Can't connect to local MySQL server through socket'/var/lib/mysql/mysql.sock'(2)
这个报错指的是不能通过/var/lib/mysql/mysql.sock这个socket文件来连接数据库,后面的2表是这个文件不存在。
可能的原因是:
1、数据库没启动,因此没有这个文件
解决的办法是启动数据库即可
2、这个socket文件可能被删除了
解决的办法是通过tcp/ip来连接,而不是socket文件来连接,或者重启数据库。