mysql的root用戶沒法建庫的問題

解決方案

  1. 打開/etc/my.cnf

    [mysqld] 中找到兩個信息:mysql

    1. datadir —— 這是你的數據庫存取數據的地方 , 例如個人是 datadir = /www/server/data/www/server/data 就是個人數據目錄;sql

    2. log-bin —— 這是存在日誌的地方,不過有可能只看到 log-bin=mysql-bin ,這裏默認沒有修改的話,mysql-bin 是在上面的 datadirshell

  2. 先看錯誤日誌

    打開到你的 datadir 文件夾位置 , 有一個 ***.err 的文件,這是 MySQL 的一個錯誤日誌,你可使用 vim 打開查看是否有什麼錯誤的信息;數據庫

下面是關鍵的兩步,也是致使出現上面兩個問題的緣由:vim

  • MySQL每次開始服務的時候要先在 DATADIR 中建立一個 ****.pid 文件,關閉服務的時候就會刪除它;由於上次這裏面整個文件夾(包括文件夾中的內容)的全部者被我不當心修改成root了,所以 MySQL 沒有權限往其中新建一個 ****.pid 文件 ,所以報了第二個的錯誤;
  • 另外,爲何我一開始能夠登錄 MySQL ,卻在root用戶的時候竟然沒法進行新建數據庫的操做呢?我猜測多是由於,我以前的文件夾的權限是755,文件的是644的緣由;也就是用戶組和公共組均可以讀取,但沒法寫入,因此纔會報第一個錯誤!
  1. 修改的 datadir 的全部者

    $ sudo chown -R mysql:mysql YOUR_DATADIR 複製代碼

    **注意:**記得把 YOUR_DATADIR 就是咱們剛纔找到 datadirbash

  2. 修改 datadir 裏面文件以及文件夾的權限:

    建議數據庫數據目錄的權限爲 700 ,文件的爲660post

  • 文件夾權限修改成700 :spa

    $ sudo find YOUR_DATADIR -type d -exec chmod 700 {} \; 複製代碼
  • 文件權限修改成660 :rest

    $ sudo find YOUR_DATADIR -type f -exec chmod 660 {} \; 複製代碼
  1. 重啓MySQL服務

    到這裏,咱們就能夠從新再試試日誌

    $ sudo /etc/init.d/mysqld restart 複製代碼

    若是出現 [OK] ,就快大功告成啦!!

  2. 從新登錄 MySQL

參考:http://www.javashuo.com/article/p-zvifnofv-dk.html

相關文章
相關標籤/搜索