ubuntu 源碼MySQL 5.6安裝後連接不上mysql.sock的問題

###問題### 在ubuntu上經過源碼安裝了MySQL 5.6,結果按照文檔裝完怎麼也不能鏈接上。mysql

在啓動了mysqld_safe以後,使用文檔中介紹的 mysqladmin version 查看服務啓動狀況,會獲得一條錯誤sql

error: 'Can't connect to local MySQL server through socket '/opt/mysql/mysql.sock'shell

經過查看日誌,發現這是因爲MySQL的運行賬戶沒有權限向mysql的安裝目錄(我這裏是/opt/mysql)寫入文件致使的。也就是說mysqld沒有權限建立mysql.sock,固然也就連接不了了。ubuntu

###解決方案### 解決這個問題的方法有不少種socket

####1. 修改安裝目錄用戶#### 能夠把mysql安裝目錄的owner設置爲MySQL的運行賬戶。好比使用 /bin/mysqld_safe --user=mysql 啓動的MySQL服務。能夠經過下面的命令將MySQL的安裝目錄的用戶修改成 mysql工具

cd MYSQLDIR
 chown -R mysql .

####2. 修改安裝my.cnf#### 也能夠經過修改mysql的配置文件來解決。 mysql的服務端和客戶端工具均可以讀取 /etc/mysql/my.cnf 來獲取全局的配置信息。經過修改配置文件裏的socket 選項,將mysql.sock文件定位到一個mysql運行用戶能夠訪問的文件夾去就能夠了。例如個人:this

[mysql]
socket=/opt/mysql/data/mysql.sock
port=3306

[mysqladmin]
socket=/opt/mysql/data/mysql.sock
port=3306

[mysqld]
basedir=/opt/mysql
datadir=/opt/mysql/data
port=3306
socket=/opt/mysql/data/mysql.sock

這裏mysql, mysqladmin是對客戶端工具mysql, mysqladmin的配置,mysqld是對服務端的配置日誌

###吐槽###code

這個問題是因爲文檔的安裝步驟中有個小bug。文檔裏說運行 mysql_install_db 以後,能夠把mysql安裝目錄的用戶再設置成 rootserver

Most of the MySQL installation can be owned by root if you like. The exception is that the data directory must be owned by mysql. To accomplish this, run the following commands as root in the installation directory:

shell> chown -R root .<br /> shell> chown -R mysql data

但你作了這一步以後,若是啓動 mysql的時候是使用的是一個非root賬戶(如: mysql),就沒有權限向你的mysql安裝目錄寫入文件了,也就會致使這個問題。若是是嚴格按照文檔來的話就會產生這個問題,坑死爹了

相關文章
相關標籤/搜索