我正在尝试从deb软件包在ubuntu 14.04上安装MySQL。我在启动mysql服务器时遇到问题,看起来像是一个权限问题。我按照here概述的步骤进行了操作。下载/解压缩/安装deb tar bundle。
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
下。
我创建了一个mysql组和用户:
groupadd mysql
useradd -r -g mysql mysql
我将mysql脚本的所有权更改为mysql(根据说明,但怀疑这是必要的)
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
同样,如果我尝试以root身份启动服务器:
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
显然,我应该在很多地方更改权限,这看起来不像是要走的路。三个问题:
是否有一些明显的问题我错了,或者我应该卸载并轻松获取所有内容?
我是否应该为服务器需要更新的所有文件拥有mysql和group mysql?
这些文件的位置是否全面?
答案 0 :(得分:3)
您无法创建/var/log/mysql/error.log。首先创建目录(如果它不存在)
sudo mkdir -p /var/log/mysql
接下来,更改所有权
sudo chown -R mysql /var/log/mysql
然后再次尝试以root身份启动服务器:
sudo mysqld_safe --user=mysql &
如果服务器没有开始粘贴错误消息