2014-07-27 81 views
0

我想從deb包安裝ubuntu 14.04上的MySQL。我在啓動mysql服務器時遇到問題,它看起來像一個權限問題。我遵循了概述here的步驟。下載/解壓/安裝deb tar包。從deb安裝MySQL,權限問題

sudo apt-get install libaio1 
tar -xvf mysql-server_5.7.4-m14-2ubuntu14.04_amd64.deb-bundle.tar 
md5sum mysql-server_5.7.4-m14-2ubuntu14.04_amd64.deb-bundle.tar 
sudo dpkg -i mysql-common_5.7.4-m14-2ubuntu14.04_amd64.deb 
sudo dpkg -i mysql-community-server_5.7.4-m14-2ubuntu14.04_amd64.deb 
sudo dpkg -i mysql-community-client_5.7.4-m14-2ubuntu14.04_amd64.deb 
sudo dpkg -i libmysqlclient18_5.7.4-m14-2ubuntu14.04_amd64.deb 

這裏就是文件安裝在我的系統: 所有配置文件(如my.cnf)是/etc下。 所有二進制文件,庫,頭文件等都在/usr之下。 數據目錄在/var之下。

these instructions

我創建MySQL組和用戶:

groupadd mysql 
useradd -r -g mysql mysql 

我改變mysql的腳本來mysql的所有權(按照指示,但懷疑這是necesssary)

cd /usr/bin 
sudo chown mysql mysq* 
sudo chgrp mysql mysq* 

我運行mysql_install_db設置授權表

sudo mysql_install_db --user=mysql 

我切換回root的所有權和mysql腳本組。

cd /usr/bin 
sudo chown root mysq* 
sudo chgrp root mysq* 

我將/data的所有權和組更改爲mysql。位置是/var/lib/mysql

cd /var/lib 
ls -l mysql 
total 122896 
-rw-rw-rw- 1 mysql mysql  56 Jul 26 10:17 auto.cnf 
-rw-rw-rw- 1 mysql mysql 12582912 Jul 26 10:17 ibdata1 
-rw-rw-rw- 1 mysql mysql 50331648 Jul 26 10:17 ib_logfile0 
-rw-rw-rw- 1 mysql mysql 50331648 Jul 24 17:36 ib_logfile1 
-rw-rw---- 1 mysql mysql 12582912 Jul 26 10:17 ibtmp1 
drwxrwxrw- 2 mysql mysql  4096 Jul 24 17:36 mysql 
drwxrw-rw- 2 mysql mysql  4096 Jul 24 17:36 performance_schema 
drwxrw-rw- 2 mysql mysql  4096 Jul 24 17:36 test 

現在,當我嘗試啓動mysql服務器,我得到許可的錯誤:

mysqld_safe --user=mysql & 
[4] 5680 
/var/lib$ 140727 00:42:17 mysqld_safe Logging to '/var/log/mysql/error.log'. 
cat: /var/run/mysqld/mysqld.pid: Permission denied 
rm: cannot remove ‘/var/run/mysqld/mysqld.pid’: Permission denied 
140727 00:42:17 mysqld_safe Fatal error: Can't remove the pid file: 
/var/run/mysqld/mysqld.pid 
Please remove it manually and start /usr/bin/mysqld_safe again; 
mysqld daemon not started 
/usr/bin/mysqld_safe: 129: /usr/bin/mysqld_safe: cannot create /var/log/mysql/error.log: Permission denied 

同樣,如果我嘗試啓動服務器根:

mysqld_safe -p -u root 
140727 00:54:08 mysqld_safe Logging to '/var/log/mysql/error.log'. 
140727 00:54:08 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql 
/usr/bin/mysqld_safe: 129: /usr/bin/mysqld_safe: cannot create /var/log/mysql/error.log: Permission denied 
/usr/bin/mysqld_safe: 1: eval: cannot create /var/log/mysql/error.log: Permission denied 
140727 00:54:08 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended 
/usr/bin/mysqld_safe: 129: /usr/bin/mysqld_safe: cannot create /var/log/mysql/error.log: Permission denied 

顯然有很多地方我應該改變權限,這看起來不像路要走。三個問題:

  1. 是否有一些明顯的問題出現在我出錯的地方,還是應該卸載並安裝所有內容?

  2. 我應該爲服務器需要更新的所有文件擁有所有者mysql和組mysql嗎?

  3. 是否有這些文件位置的綜合列表?

回答

2

您無法創建/var/log/mysql/error.log。首先創建目錄,如果它不存在

sudo mkdir -p /var/log/mysql 

接下來,改變所有權

sudo chown -R mysql /var/log/mysql 

,然後再次嘗試啓動服務器根:如果服務器不

sudo mysqld_safe --user=mysql & 

這裏沒有開始粘貼錯誤信息

+0

更改服務器啓動權限後。 error.log包含幾百個這樣的警告:'[錯誤] InnoDB:無法鎖定./ibdata1,錯誤:11','[錯誤] InnoDB:無法打開或創建系統表空間.'' [錯誤]插件'InnoDB'初始化函數返回error.','[錯誤]插件'InnoDB'註冊爲存儲引擎失敗.',[錯誤]未知/不支持的存儲引擎:InnoDB',[錯誤]正在中止。請注意,啓動服務器後,我無法停止它,使用'mysqladmin -u root shutdown'通過調用任何根目錄,密碼等變體。 – nikosd

+0

此外,在啓動時,mysql服務器嘗試自動啓動並失敗(可能是因爲它不是以linux root身份啓動?)。我真的很感謝這樣一個解釋:mysql用戶需要擁有哪些文件[this](http://dev.mysql.com/doc/refman/5.6/en/unix-postinstallation.html)只聲明'/ data '需要它,以及爲什麼我只能以linux root身份啓動mysql服務器(並非所有權改變都不必這麼做?) - 謝謝! – nikosd

+0

啓動時,所有進程都以root身份啓動(即像'sudo mysqld_safe --user = mysql')。這些錯誤也可以在/ var/log/messages文件中看到。但在大多數情況下未能鎖定ibdata1意味着您已經啓動了mysql服務器。看[這裏:](http://forums.mysql.com/read.php?22139843,139843#msg-139843) – LHristov