我对使用 sudo apt-get install mysql-server 在 Ubuntu 12.04 lts 上安装 mysql 的结果有几个疑问。
1)我注意到配置文件安装在以下位置:
/etc/mysql/my.cnf
根据 mysql 文档(http://dev.mysql.com):
“如果存储在 /etc/my.cnf 中,这些设置将被视为所有 MySQL 服务器的全局设置。如果位于存储 MySQL 数据库的目录中(对于二进制安装,为 /usr/local/mysql/data;对于源安装,为 /usr/local/var),它将是特定服务器的全局设置。”
看到它没有安装在这些位置,我的设置是针对特定服务器还是所有 mysql 服务器的全局设置(不确定“全部”是什么意思)。
2)my.cnf指向mysql套接字,但是它执行了三次:
[client]
socket = /var/run/mysqld/mysqld.sock
[mysqld_safe]
socket = /var/run/mysqld/mysqld.sock
[mysqld]
socket = /var/run/mysqld/mysqld.sock
客户端、mysqld_safe 和 mysqld 之间有什么区别?
3) var/lib/mysql 是存储数据库数据的地方。但默认情况下只能以 root 身份访问:
ls -l | grep mysql
drwx------ 5 mysql
它是否只能由 root 访问?
答案1
- Debian/Ubuntu 将 my.cnf 放在非标准位置。这完全没问题
[client]
[mysqld]
由客户端、服务器以及[mysqld_safe]
充当看门狗的 mysql 服务器周围的包装器读取。- 不,它不是。它仅可由 mysql 用户访问,您的 ls 输出不完整。