1、首先解释下,启动mysql时为何会调用mysql_safe脚本来启动mysql

  1. [root@localhost ~]# /etc/init.d/mysqld start
  2. 正在启动 mysqld [确定]
  3. [root@localhost ~]# ps -ef | grep mysql
  4. root : pts/ :: /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql --socket=/var/lib/mysql/mysql.sock --pid-file=/var/run/mysqld/mysqld.pid --basedir=/usr --user=mysql
  5. mysql : pts/ :: /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --user=mysql --log-error=/var/log/mysqld.log --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/lib/mysql/mysql.sock
  6. root : pts/ :: grep mysql
  7. [root@localhost ~]#

mysql_safe:mysql服务启动脚本

  1. [root@localhost ~]# cat /etc/init.d/mysqld
  2. #!/bin/sh
  3. #
  4. # mysqld This shell script takes care of starting and stopping
  5. # the MySQL subsystem (mysqld).
  6. exec="/usr/bin/mysqld_safe"
  7. prog="mysqld"
  8. $exec --datadir="$datadir" --socket="$socketfile" \
  9. --pid-file="$mypidfile" \
  10. --basedir=/usr --user=mysql >/dev/null >& &
  11. safe_pid=$!

解释:因为/etc/init.d/mysqld是一个shell启动脚本,启动后最终会调用mysqld_safe脚本,最后请用mysqld脚本启动mysql,如下:/etc/init.d/mysqld脚本中调用mysqld_safe的程序。

2、mysql.sock文件

  mysql.sock文件是用来服务器与本地客户端进行通信的Unix套接字文件,它比tcp快。通常遇到这个问题的原因就是你的mysql server没运行起来。

  1. [root@localhost ~]# mysql -p
    Enter password:
  2. ERROR (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
  3. [root@localhost ~]# service mysqld start
  4. 正在启动 mysqld: [确定]
  5. [root@localhost ~]# mysql -p
  6. Enter password:
  7. Welcome to the MySQL monitor. Commands end with ; or \g.
  8. Your MySQL connection id is
  9. Server version: 5.6. MySQL Community Server (GPL)
  10.  
  11. Copyright (c) , , Oracle and/or its affiliates. All rights reserved.
  12.  
  13. Oracle is a registered trademark of Oracle Corporation and/or its
  14. affiliates. Other names may be trademarks of their respective
  15. owners.
  16.  
  17. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
  18.  
  19. mysql>

mysql.sock文件所处位置:一般为:

  1. [root@localhost ~]# cat /etc/my.cnf
  2. [mysqld]
  3. socket=/var/lib/mysql/mysql.sock

Mysql有两种连接方式: 
(1)TCP/IP 
(2)socket

 对mysql.sock来说,其作用是程序与mysqlserver处于同一台机器,发起本地连接时可用。 不需要自定义host。因此,即使你改变mysql的外部port也是一样可能正常连接。 因为你在my.ini中或my.cnf中改变端口后,mysql.sock是随每一次 mysql server启动生成的。已经根据你在更改完my.cnf后重启mysql时重新生成了一次,信息已跟着变更。 那么对于外部连接,必须是要变更host才能连接的。

3、mysql_install_db:初始化MYSQL数据库目录.

  1. [root@localhost ~]# mysql_install_db --datadir=/var/lib/mysql/
  2. Installing MySQL system tables...-- :: [Warning] TIMESTAMP wi

mysql脚本mysql_safe解释、mysql.sock文件、mysql_install_db的更多相关文章

  1. mysql小白系列_02 mysql源码安装标准化

    问题: 1.为什么数据目录和日志目录需要分开? 2.如何标准化配置多实例?(例如:一台物理主机上部署3306与3307两个实例) 3.详细描述MySQL编译安装的过程(截图安装步骤) 1.为什么数据目 ...

  2. linux系统执行mysql脚本:Can't connect to local MySQL server through socket '/tmp/mysql.sock'

    问题原因:系统找不到临时文件夹下的.sock文件了 解决办法:看一下是不是其他目录下有mysl的.sock文件,使用命令指定到该文件 mysql --socket=/home/mysql/mysql- ...

  3. mysql.sock文件丢失被删除解决方法

    Mysql有两种连接方式: (1),TCP/IP (2),socket 对mysql.sock来说,其作用是程序与mysqlserver处于同一台机器,发起本地连接时可用. 例如你无须定义连接host ...

  4. MySQL笔记-最简单的方法来解决找不到mysqld.sock文件的问题

    首先,环境:ubuntu 14.04,采用apt-get的方式安装的,手动安装可能路径设置稍有区别. 1.安装MySQL后,用命令行首次启动时发现找不到Mysqld.sock文件,提示: ERROR ...

  5. Error: Linux下 mysql.sock文件丢失被删除解决方法

    在默认情况下,Mysql安装以后会在/tmp目录下生成一个mysql.sock文件,如该文件丢失则Mysql将不能够正常启动,解决方法:使用mysqld_safe 启动即可解决: #basedir:m ...

  6. Mysql启动找不到mysql.sock文件问题(Centos7)

    刚装完Mysql5.7,将Mysql添加到开机自启.reboot之后mysql服务却没启动起来, 直接输入mysql –uroot –p ,出现如下错误,找不到mysql.sock文件.用servic ...

  7. MySQL命令行下执行sql文件(sql脚本)

    在mysql命令行下执行sql文件(sql脚本) mysql> source    sql文件完整路径 如: mysql> source   D:\\MySQL\\create.sql 文 ...

  8. mysql安装后找不到sock文件

    mysql rpm安装方式之后,启动找不到sock文件,经排查是之前安装的由mysql, 需要时yum list installed mysql 或者  rpm -qa |grep -i mysql ...

  9. mysql.sock文件的作用

    mysql.sock应该mysql的主机和客户机在同一host上的时候,使用unix domain socket做为通讯协议的载体,它比tcp快.Mysql有两种连接方式: (1)TCP/IP  (2 ...

随机推荐

  1. Java之sleep和wait的区别

    这个问题在面试线程方面的知识时,基本上属于必问的问题.因此这里有必要做一个较为详细的总结. 区别一 首先需要明白的是这两个方法根本来自不同的类,sleep来自Thread,wait来自Object类. ...

  2. 阿里云数加平台——BI报表使用概述和总结

    先声明一点,本人写此文章初衷只为对前段时间的工作做些总结,并做个记录,以备日后查用,此外也顺便与他人分享一下.当然间接上也为阿里云的大数据平台做了个免费广告.以下开始正文. 首先进入数加服务的控制面板 ...

  3. 关于SharePoint 2010体系架构的几个话题

    转:http://www.cnblogs.com/chenxizhang/archive/2011/12/18/2291658.html?ADUIN=85650109&ADSESSION=13 ...

  4. Android 实用代码七段(三)

    前言 终于又攒了一篇出来,本系列以实用为主,欢迎和我分享和推荐好用的代码段~~ 声明 欢迎转载,但请保留文章原始出处:)  博客园:http://www.cnblogs.com 农民伯伯: http: ...

  5. HDOJ 1879

    思路:求最小生成树(最小生成树就是权值之和最小的极小连通子图) ,注意将已修过的边的权值置为0: 数据结构:由于数据量小,可以用临接矩阵直接存储图 #include<stdio.h> #i ...

  6. 【HTML】Beginner7:Image

    1.Image     The web is not just about text,it is a multi-media extravaganza and the most common form ...

  7.  VS2012 C#调用C++ dll

    VS2012 C#调用C++ dll 调试方法:[dll工程和调用dll的exe工程在同一个解决方案中]dll工程,属性-配置属性-调试-把 命令 为 调用该dll的exe工程的bin\Debug\* ...

  8. HW4.46

    import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner i ...

  9. vi / vim 删除以及其它命令

    删除一行:dd 删除一个单词/光标之后的单词剩余部分:dw 删除当前字符:x 光标之后的该行部分:d$ 文本删除 dd 删除一行 d$ 删除以当前字符开始的一行字符 ndd 删除以当前行开始的n行 d ...

  10. go语言与所谓的包

    import后面接的是目录的名字,而不是所谓包的名字,并且如果一个目录下面还有目录的话都必须要写进去,比如: import "MyPackage" import "MyP ...