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 顯示版本信息

相關文章
相關標籤/搜索