记一次纠错大战

本来今天开开心心地部署nginx和uwsgi到我的Django服务器,刚想给老师演示一遍我这项目如何酷炫时,一登陆就出现mysql连接不上了

(2003, "Can't connect to MySQL server on 'localhost' ([Errno 111] Connection refused)")

这可把我急坏了,然后到服务器上看(用的时百度云BCC),发现mysql连接时一直报:

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

我去这个目录下发现有这个sock文件啊,为啥连不上呢?上网查了发现说是加权限,我也一顿操作:

chown -R root:root /var/lib/mysql   (别人都用mysql用户,就我直接弄root用户来搞)

结果还是不行,着急啊。那我就重装一下mysql,肯定后面可以的吧。

于是花了15分钟重装配置好,接着,再打开服务:

service mysql start

日常连接 mysql -u root

OK,连上了

quit;

再连一次,failed,又是这个

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

头大!!看了一下这个目录,又没有sock文件了。这个sock文件是每次mysql服务启动都会生成一次,看来mysql有点问题。

看了网上的解决方法:

1.#su mysql

2.$/usr/bin/mysql_install_db     //重建授权表

3.$/usr/bin/mysqld_safe &

4.$/usr/local/bin/mysql                //测试

mysq>bye;

我在第二步还是很顺利的执行,到了第三步就卡死了

[root@ bin]# mysqld_safe &

[1] 38305

[root@ bin]# 190315 20:49:20 mysqld_safe Logging to '/var/log/mysqld.log'.

190315 20:49:20 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql

190315 20:49:20 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended

我靠,这个法子也不行啊。

后面想了想,既然你这个sock每次启动都会生成一次,那么是不是/var/lib/mysql/下面的文件都是每启动一次mysql就会生成一次?

于是有了个大胆的想法,嘿嘿嘿

我先执行service mysqld stop (停止mysql服务),,然后再rm -rf /var/lib/mysql/* (删除/var/lib/mysql下的所有文件)

再service mysql start (启动mysql服务。)这次很顺畅,不像之前的启动就会卡住

执行mysql -u root(顺利执行,舒服)

mysql的log查看 /var/log/mysqld.log(启动一次服务就会写入log,但是连接mysql的不写入)


20190322更新 作死想写爬虫爬自己的网站,结果搞了mysql又出现上面的问题。

上面的方法治标不治本,建议多查日志。

老问题,在连接mysql报错:

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

但是我们这个目录下确实没有mysql.sock,这回不要删除mysql目录下的文件了,因为我们的数据库文件也会一并删除,所以我们要找一下这个问题的本源了。先看看服务是否开启,命令 :systemctl start mysqld.service

打开mysqld发现一直卡住,肯定有问题,到/var/log/mysqld.log查看日志:

2019-03-22 10:41:08 8176 [Note] InnoDB: Initializing buffer pool, size = 50.0M

InnoDB: mmap(53657600 bytes) failed; errno 12

2019-03-22 10:41:08 8176 [ERROR] InnoDB: Cannot allocate memory for the buffer pool

2019-03-22 10:41:08 8176 [ERROR] Plugin 'InnoDB' init function returned error.

2019-03-22 10:41:08 8176 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.

2019-03-22 10:41:08 8176 [ERROR] Unknown/unsupported storage engine: InnoDB

2019-03-22 10:41:08 8176 [ERROR] Aborting

之前有在my.conf中设置这个InnoDB的缓冲区大小为50M,现在发现说是缓存分配失败。

查看缓存

free或者swapon –s

如果swap中为0       0   0的话就是没有分配缓存,那我们要分配一下。

一.添加swap分区

使用dd命令创建名为swapfile 的swap交换文件(文件名和目录任意):

1.  dd  if=/dev/zero  of=/swapfile  bs=1024  count=1024

[root@instance-xglfp5i0 etc]# dd if=/dev/zero of=/swapfile bs=1M count=1024

记录了1024+0 的读入

记录了1024+0 的写出

1073741824字节(1.1 GB)已复制,18.2569 秒,58.8 MB/秒

二.对交换文件格式化并转换为swap分区

mkswap /swapfile

[root@instance-xglfp5i0 etc]# mkswap /swapfile

正在设置交换空间版本 1,大小 = 1048572 KiB

无标签,UUID=e0a5c821-0bd2-4a90-984c-4125d20e1173

三.挂载并激活分区

1.  swapon /swapfile

[root@instance-xglfp5i0 etc]# swapon /swapfile

swapon: /swapfile:不安全的权限 0644,建议使用 0600。

执行以上命令可能会出现:“不安全的权限 0644,建议使用 0600”类似提示,不要紧张,实际上已经激活了,可以忽略提示,也可以听从系统的建议修改下权限:

chmod -R 0600 /swapfile

四.修改 fstab 配置,设置开机自动挂载该分区:

1.  vim    /etc/fstab

在fstab文件末尾追加/swapfile swap swap defaults 0 0

利用free查看swap分配情况

[root@instance-xglfp5i0 etc]# free –h

              total        used        free      shared  buff/cache   available

Mem:         995548      675548      124184       16968      195816      119248

Swap:       1048572         776     1047796

这样缓存分配完成,重新打开mysqld服务systemctl start mysqld.service

[root@instance-xglfp5i0 course]# systemctl status mysqld.service

● mysqld.service - MySQL Community Server

   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)

   Active: active (running) since 五 2019-03-22 11:20:00 CST; 5min ago

 Main PID: 22117 (mysqld_safe)

   CGroup: /system.slice/mysqld.service

           ├─22117 /bin/sh /usr/bin/mysqld_safe --basedir=/usr

           └─22319 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugi...

3月 22 11:19:58 instance-xglfp5i0 systemd[1]: Starting MySQL Community Server...

3月 22 11:19:59 instance-xglfp5i0 mysqld_safe[22117]: 190322 11:19:59 mysqld_safe Logging to '/var/log/mysq...g'.

3月 22 11:19:59 instance-xglfp5i0 mysqld_safe[22117]: 190322 11:19:59 mysqld_safe Starting mysqld daemon wi...sql

3月 22 11:20:00 instance-xglfp5i0 systemd[1]: Started MySQL Community Server.

Hint: Some lines were ellipsized, use -l to show in full.

正常运行,接下来进行数据库连接也正常,mysql.sock也正常产生。搞定

Centos7 登录mysql 出现mysql.sock不存在的更多相关文章

  1. centos7 服务器安装nginx,mysql,php

    一.概述 项目的需要,今天在虚拟机上基于Centos安装配置了服务器运行环境,web服务用 nginx,数据库存储在mysql,动态脚本语言是php. 二.步骤 首页保证Centos7已经安装完毕,正 ...

  2. CentOS7的yum安装mysql

    CentOS7的yum源中默认好像是没有mysql的.为了解决这个问题,我们要先下载mysql的repo源. 1. 下载mysql的repo源 $ wget http://repo.mysql.com ...

  3. centos7 通过yum安装mysql

    但是CentOS7的yum源中默认好像是没有mysql的.为了解决这个问题,我们要先下载mysql的repo源. 1.下载mysql的repo源 $ wget http://repo.mysql.co ...

  4. 【转】CentOS7 64位安装mysql教程

    从最新版本的linux系统开始,默认的是 Mariadb而不是mysql!这里依旧以mysql为例进行展示 1.先检查系统是否装有mysql rpm -qa | grep mysql 这里返回空值,说 ...

  5. CentOS7 服务器 JDK+TOMCAT+MYSQL+redis 安装日志

    防火墙配置(参考 CentOS7安装iptables防火墙) 检查是否安装iptables #先检查是否安装了iptables service iptables status #安装iptables ...

  6. Centos7源码安装mysql及读写分离,互为主从

       Linux服务器 -源码安装mysql 及读写分离,互为主从   一.环境介绍: Linux版本: CentOS 7 64位 mysq版本: mysql-5.6.26 这是我安装时所使用的版本, ...

  7. Linux centos7环境下安装MySQL的步骤详解

    Linux centos7环境下安装MySQL的步骤详解 安装MySQL mysql 有两个跟windows不同的地方 1).my.ini 保存到/etc/my.ini 2).用户权限,单独用户执行 ...

  8. centos7 minimal版本下mysql的安装

    最近第一次尝在虚拟机上安装mysql,由于是centos7 minimal版本,很多安装包或命令必须自己添加,遇到很多问题. 首先是执行# yum install mysql-server 报错: 打 ...

  9. centos7.2环境nginx+mysql+php-fpm+svn配置walle自动化部署系统详解

    centos7.2环境nginx+mysql+php-fpm+svn配置walle自动化部署系统详解 操作系统:centos 7.2 x86_64 安装walle系统服务端 1.以下安装,均在宿主机( ...

  10. centos7.2下安装Mysql笔记

    centos7.2下安装Mysql笔记 安装 MySQL 适用于 CentOS 7.0 或以后版本: yum install mariadb mariadb-server 适用于 CentOS 6.8 ...

随机推荐

  1. Eclipse使用Maven创建Web时错误:Could not resolve archetype

    请检查maven的setting 是否有问题.window->Perfenence->maven->User Settings里 看 Gloal Setting和User Setti ...

  2. 修复windows通过局域网文件共享访问失败的问题

    参考链接1:https://blog.csdn.net/lmlmopenrtion/article/details/84378163 参考链接2:https://answers.microsoft.c ...

  3. MySQL复制相关技术的简单总结

    MySQL有很多种复制,至少从概念上来看,传统的主从复制,半同步复制,GTID复制,多线程复制,以及组复制(MGR).咋一看起来很多,各种各样的复制,其实从原理上看,各种复制的原理并无太大的异同.每一 ...

  4. 用word发布CSDN文章

    目前大部分的博客作者在用Word写博客这件事情上都会遇到以下3个痛点: 1.所有博客平台关闭了文档发布接口,用户无法使用Word,Windows Live Writer等工具来发布博客.使用Word写 ...

  5. Docker中使用Tomcat并部署war工程

    准备 首先从远程仓库拉取Tomcat镜像到本地. docker pull tomcat 使用images命令查看是否拉取成功. 创建镜像文件并将war包上传到同级目录下.(本文是在/usr/local ...

  6. centos7 安装 transmission

    貌似官方文档 注意:是centos7才能用此方法 Step 1. First, you need to enable EPEL repository on your system. yum insta ...

  7. 29. Divide Two Integers (JAVA)

    Given two integers dividend and divisor, divide two integers without using multiplication, division ...

  8. 记一次win10+oracle11.2安装

    下载安装文件,地址:链接:https://pan.baidu.com/s/1gObmWv5_w2Y4Jlf2-RkBYA 密码:1rx9 安装手册参考:链接:https://pan.baidu.com ...

  9. NET CORE 2.0发布在IIS上提示502.5错误

    在装了WindowsHosting和NET CORE SDK后,如果没有重启服务器,访问站点报以上错误,解决办法要么重启,要么执行以下两条命令: net stop was /y net start w ...

  10. python抓取网页数据处理后可视化

    抓取文章的链接,访问量保存到本地 #coding=utf-8 import requests as req import re import urllib from bs4 import Beauti ...