CentOS7 安装 MySQL mysql Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock

1.下载mysq的repo源
  wget http://repo.mysql.com/mysql-community-release-e17-5.noarch.rpmhtml

2.安装mysql-community-release-e17-5.noarch.rpm包
  sudo rmp -ivh mysql-community-release-e17-5.noarch.rpmpython

安装这两个包后,会得到两个MySQL的yum repo源:
  /etc/yum.repos.d/mysql-community.repo
  /etc/yum.repos.d/mysql-community-source.repomysql

3.安装MySQLsql

  sudo yum install mysql-server mysql-client libmysqlclient-dev mysql-devel shell

  MySQL-python(与上面那一行连着写)服务器

若是上面遇到问题:
  看下服务开没 systemctl status mysqld网络

4.初始化:
  mysql_install_dbsocket

5.设置密码
  方式一(SET PASSWORD 命令):
    mysql -u root
    SET PASSWORD FOR 'root'@'localhost'=PASSWORD('新密码');tcp

  方式二(使用mysqladmin):
    mysqladmin -u root password '新密码'
    若是root已经设置过密码,采用如下方法:
    mysqladmin -u root password 旧密码 '新密码'

  方式三(使用update直接编辑user表):
    mysql -u root
    use mysql
    UPDATE user SET PASSWORD = PASSWORD('新密码') WHERE user = 'root';post

  忘记密码:
    mysql_safe --skip-grant-tables
    mysql -u root myql
    UPDATE user SET PASSWORD = PASSWORD('新密码') WHERE user = 'root';
    FLUSH PRIVILEGES;

设置utf-8编码:
  在 vi/etc/my.cnf:
    # 在文件中[mysqld]下面增长一行:
    character_set_server = utf8
  # 重启生效
    systemctl restart mysqld

重启命令:

  server mysqld restart

MySQL服务:

  1.启动命令:

    /bin/systemctl start mysqld.service

  2.关闭命令

    /bin/systemctl stop mysqld.service

  3.重启命令

    /bin/systemctl restart mysqld.service

  4.查看状态

    /bin/systemctl status mysqld.service

查看系统配置文件:

  cat etc/my.cnf

 

报错:

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

错误缘由:/var/lib/mysql目录中socket文件不存在。
链接mysql服务器有两种方式:tcp链接,经过socket文件链接。经过socket文件,启动mysql服务,mysql服务会自动生成一个sock文件,生成的sock文件默认放在 --datadir=/var/lib/mysql,mysql默认从/var/lib/mysql目录读取sock文件。

解决办法:
一、看看/var/lib/mysql/mysql 有没有mysql.sock文件
二、没有mysql.sock,重启mysql服务,看看有没有。
三、没有的话,ps aux|grep mysql|grep -v 'grep' 查看mysql服务生成的sock在哪一个目录,看看这个目录有没有。
四、若是mysql服务生成在其余目录,解决办法有:
方法1、修改mysql服务生成的目录,在my.cnf 中[mysqld] socket
方法2、mysql从/var/lib/mysql/读取sock文件,创建一个软链接,或者copy过来
方法3、修改mysql读取的目录,在my.cnf 中[mysql] socket
方法4、启动指定socket,mysql -uroot -p123456 --socket='/var/lib/mysql/mysql.sock'

注意:
一、经过socket,只能在本地机器上链接。
二、使用-hlocalhost就是通过socket,不通过网络,经过netstat 看不到tcp链接,能够认为mysql与mysql.sock文件交互,向里面写数据,从里面读取数据。
三、使用-h127.0.0.1就是通过tcp,经过netstat 能够看到链接。

 

启动mysql 报错:

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

一、先查看 /etc/rc.d/init.d/mysqld status 看看m y s q l 是否已经启动.
另外看看是否是权限问题.

二、肯定你的mysql.sock是否是在那个位置,
mysql -u 你的mysql用户名 -p -S /var/lib/mysql/mysql.sock

三、试试:service mysqld start

四、若是是权限问题,则先改变权限 #chown -R mysql:mysql /var/lib/mysql

[root@localhost ~]# /etc/init.d/mysqld start
启动 MySQL: [ 肯定 ]
[root@localhost ~]# mysql -uroot -p

 

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
   缘由是,/var/lib/mysql 的访问权限问题。

shell> chown -R mysql:mysql /var/lib/mysql

接着启动服务器

shell> /etc/init.d/mysql start

服务器正常启动后察看 /var/lib/mysql 自动生成mysql.sock文件。

 

 

 

chown -R mysql:mysql ./及chown详解

当咱们在不经过yum(CentOS<redhat>)、apt-get(Ubuntu<debian>)来安装MySQL的时候,一般执行如下命令来改变目录的拥有者:

[root@localhost ~]# chown -R  mysql:mysql ./
那?这两个mysql谁是用户名谁是用户组呢?见chown详解

     chown将指定文件的拥有者改成指定的用户或组,用户能够是用户名或者用户ID;组能够是组名或者组ID;文件是以空格分开的要改变权限的文件列表,支持通配符。系统管理员常用chown命令,在将文件拷贝到另外一个用户的名录下以后,让用户拥有使用该文件的权限。 

  1.命令格式:

    chown [选项]... [全部者][:[组]] 文件...

  2.命令功能:

    经过chown改变文件的拥有者和群组。在更改文件的全部者或所属群组时,可使用用户名称和用户识别码设置。普通用户不能将本身的文件改变成其余的拥有者。其操做权限通常为管理员。

  3.命令参数:

  必要参数:

    -c 显示更改的部分的信息

    -f 忽略错误信息

    -h 修复符号连接

    -R 处理指定目录以及其子目录下的全部文件

    -v 显示详细的处理信息

    -deference 做用于符号连接的指向,而不是连接文件自己

  选择参数:

    --reference=<目录或文件> 把指定的目录/文件做为参考,把操做的文件/目录设置成参考文件/目录相同拥有者和群组

    --from=<当前用户:当前群组> 只有当前用户和群组跟指定的用户和群组相同时才进行改变

    --help 显示帮助信息

    --version 显示版本信息

相关文章
相关标签/搜索